开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開APP
          userphoto
          未登錄

          開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

          開通VIP
          教程丨python 做一個(gè)簡(jiǎn)單的MP3

          來源丨速學(xué)Python

          https://mp.weixin.qq.com/s/C9doSoz0uHn2VAApBuGsNg

          本節(jié)將教大家如何做一個(gè)簡(jiǎn)單的mp3,希望大家能有所收獲,寫的不足之處望大家諒解。

          廢話少說,直接上代碼:

          #!/usr/bin/env python# -*- coding: utf-8 -*-
          import pygameimport osfrom tkinter import *root = Tk()root.title('老婆專用播放器')root.geometry('800x600')pygame.init()
          music_path = r'C:\Users\zlcao\Music'current_play = 'R3hab - Skydrop (Radio Edit).mp3'music_name = StringVar()
          def play(): music_name.set(current_play) pygame.mixer.music.load(os.path.join(music_path, current_play)) pygame.mixer.music.play()
          Label(root, textvariable=music_name, font=('宋體', 14), justify='center', bg='#ADD8E6').place(relx=0, rely=0.1, relwidth=1, relheight=0.3)Button(root, text='播放', command=play).place(relx=0, rely=0.5, relwidth=0.2, relheight=0.1)Button(root, text='暫停', command=lambda: pygame.mixer.music.pause()).place(relx=0.2, rely=0.5, relwidth=0.2, relheight=0.1)Button(root, text='恢復(fù)', command=lambda: pygame.mixer.music.unpause()).place(relx=0.4, rely=0.5, relwidth=0.2, relheight=0.1)Button(root, text='停止', command=lambda: pygame.mixer.music.stop()).place(relx=0.6, rely=0.5, relwidth=0.2, relheight=0.1)Button(root, text='重播', command=lambda: pygame.mixer.music.rewind()).place(relx=0.8, rely=0.5, relwidth=0.2, relheight=0.1)root.mainloop()

          代碼運(yùn)行效果

          先吐槽一下,代碼沒有粘貼出應(yīng)有的效果,不知道是不是我使用的姿勢(shì)不對(duì)。

          首先我們使用pygame庫(kù)來支持音頻處理,pygame是python的一個(gè)游戲庫(kù),有興趣的童鞋可以了解一下。

          pygame.init() 意思是初始化所有導(dǎo)入的pygame模塊

          music_name = StringVar() 這句話聲明了一個(gè)StringVar對(duì)象,他配合Label, Button的textvarable屬性來實(shí)現(xiàn)變量更新,界面顯示字符更新的功能。

          pygame.mixer.music.load(os.path.join(music_path, current_play))

          加載一個(gè)音頻文件

          pygame.mixer.music.play()

          播放加載的音頻文件

          Label(root, textvariable=music_name, font=('宋體', 14), justify='center', bg='#ADD8E6').place(relx=0, rely=0.1, relwidth=1, relheight=0.3)

          加載一個(gè)Label控件,該label控件的文字受StingVar類型的變量music_name 控制,可以通過music_name.set() 來改變label顯示的文字。font=('宋體', 14) 指定label控件的字體為宋體,字體大小為14號(hào)。justify屬性用來設(shè)置label控件的對(duì)齊方式,bg 是background的縮寫,指定label控件的背景色,如果要設(shè)置字體顏色,可以使用fg(foreground),用法同bg一樣。

          place是tk 的一種布局方式, tkinter共有三種布局方式,pack, grid, place

          relx和rely是相對(duì)父控件的位置。0是最左邊,0.5是正中間,1是最右邊

          relwidth, relheight是相對(duì)父控件的大小。例如 relwidth=0.1相當(dāng)于父控件寬度的0.1倍。

          lambda是匿名函數(shù),如果一個(gè)函數(shù)不想命名又沒有復(fù)雜的功能的情況下,可以使用匿名函 數(shù),可以讓代碼更為簡(jiǎn)潔。如何理解lambda呢,我舉個(gè)例子。

          比如func = lambda x: x+1 等同于

          def func(x): return(x+1)

          x是入?yún)?,x+1是函數(shù)體里的執(zhí)行語句并返回結(jié)果。

          有些人可能會(huì)說,這些我都懂了,我如何能豐富我的界面功能了,這個(gè)也太簡(jiǎn)陋了

          low

          這里我搜集了一些給大家提供一些參考

          pygame.mixer.music.load() —— 載入一個(gè)音樂文件用于播放pygame.mixer.music.play() —— 開始播放音樂流pygame.mixer.music.rewind() —— 重新開始播放音樂pygame.mixer.music.stop() —— 結(jié)束音樂播放pygame.mixer.music.pause() —— 暫停音樂播放pygame.mixer.music.unpause() —— 恢復(fù)音樂播放pygame.mixer.music.fadeout() —— 淡出的效果結(jié)束音樂播放pygame.mixer.music.set_volume() —— 設(shè)置音量pygame.mixer.music.get_volume() —— 獲取音量pygame.mixer.music.get_busy() —— 檢查是否正在播放音樂pygame.mixer.music.set_pos() —— 設(shè)置播放的位置pygame.mixer.music.get_pos() —— 獲取播放的位置pygame.mixer.music.queue() —— 將一個(gè)音樂文件放入隊(duì)列中,并排在當(dāng)前播放的音樂之后pygame.mixer.music.set_endevent() —— 當(dāng)播放結(jié)束時(shí)發(fā)出一個(gè)事件pygame.mixer.music.get_endevent() —— 獲取播放結(jié)束時(shí)發(fā)送的事件

          大家可以在我這個(gè)程序的基礎(chǔ)上繼續(xù)完善和改進(jìn),可以添加上一首下一首功能,也可以添加播放列表(treeview去做),感興趣的童鞋可以加我討論,一定知無不言言無不盡。最后通過pyinstaller打包成exe就好了,具體打包方法大家可以自行探索,另外希望大家多多支持。

          本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
          打開APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          Tkinter教程之Place篇
          用 Python 創(chuàng)建屬于自己的網(wǎng)易云音樂
          pygame播放音樂
          Pygame01之游戲開發(fā)
          從零開始學(xué)習(xí)python,寫一個(gè)mp3播放器!
          【硬創(chuàng)邦】跟hoowa學(xué)做智能路由(十三):網(wǎng)絡(luò)音箱之Android篇 | 雷鋒網(wǎng)
          更多類似文章 >>
          生活服務(wù)
          分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
          綁定賬號(hào)成功
          后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點(diǎn)擊這里聯(lián)系客服!

          聯(lián)系客服