如何利用Python實(shí)現(xiàn)簡(jiǎn)易的音頻播放器
1. 需要用到的Python庫(kù)
- pygame
- tkinter
2. 簡(jiǎn)易UI設(shè)計(jì)
audio_player = Tk() audio_player.title('Audio Player v1.0') audio_player.geometry('100x100+570+200') audio_player.maxsize(height=110, width=220) audio_player.minsize(height=110, width=220)
3. 功能模塊實(shí)現(xiàn)
3.1 選擇音頻文件進(jìn)行播放
def selectFile(): ? ? file = filedialog.askopenfile(mode='r', filetypes=[('AudioFile', '*.mp3')]) ? ? global filePath ? ? filePath = str(file).split("'")[1] ? ? try: ? ? ? ? playAudio() ? ? except: ? ? ? ? pass
3.2 控制音頻播放、暫停
def changeText(text): ? ? if text == 'play': ? ? ? ? return 'pause' ? ? if text == 'pause': ? ? ? ? return 'play' def playStop(): ? ? playBtn.config(text=changeText(playBtn.config('text')[4])) ? ? if playBtn.config('text')[4] == 'pause': ? ? ? ? mixer.music.unpause() ? ? else: ? ? ? ? if playBtn.config('text')[4] == 'play': ? ? ? ? ? ? mixer.music.pause()
3.3 控制音頻音量大小
這里可以定義一個(gè)全局變量x,初始化為值0.5。
def audioINC(y): ? ? mixer.music.set_volume(y + 0.1) ? ? global x ? ? x += 0.1 def audioDEC(y): ? ? mixer.music.set_volume(y - 0.1) ? ? global x ? ? x -= 0.1
3.4 播放器初始化等細(xì)節(jié)
def playAudio(): ? ? try: ? ? ? ? mixer.init() ? ? ? ? mixer.music.load(filePath) ? ? ? ? mixer.music.set_volume(x) ? ? ? ? playBtn.config(text='pause') ? ? ? ? mixer.music.play() ? ? except: ? ? ? ? pass
4. 運(yùn)行
frame = Frame(app) frame.place(x=35, y=20) openBtn = Button(frame, text='OpenFile', command=selectFile, width=8).grid(row=0, column=1) audioDec = Button(frame, text='?', command=lambda: audioDEC(x)).grid(row=1, column=0) playBtn = Button(frame, text='...', command=playStop, width=8) playBtn.grid(row=1, column=1) audioInc = Button(frame, text='?', command=lambda: audioINC(x)).grid(row=1, column=2) restartBtn = Button(frame, text='Restart', command=playAudio, width=8).grid(row=2, column=1) app.mainloop()
5. 簡(jiǎn)易音頻播放器展示圖
- ①點(diǎn)擊“
OpenFile
”按鈕可以打開(kāi)本地音頻文件 - ②“?”和“?”分別控制音量的減小和增大
- ③點(diǎn)擊"
Restart
"按鈕可以重新播放當(dāng)前選中的音頻
6. 總結(jié)
本文僅僅是實(shí)現(xiàn)了一個(gè)簡(jiǎn)易的音頻播放器,UI極其簡(jiǎn)陋,為了僅僅是實(shí)現(xiàn)音頻播放的功能,僅供學(xué)習(xí)參考。
到此這篇關(guān)于如何利用Python實(shí)現(xiàn)簡(jiǎn)易的音頻播放器的文章就介紹到這了,更多相關(guān)Python實(shí)現(xiàn)簡(jiǎn)易音頻播放器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python手寫(xiě)回歸樹(shù)的實(shí)現(xiàn)
本文主要介紹了Python手寫(xiě)回歸樹(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06OpenCV中Canny邊緣檢測(cè)的實(shí)現(xiàn)
本文主要介紹了OpenCV中Canny邊緣檢測(cè)的實(shí)現(xiàn),邊緣檢測(cè)一般是識(shí)別目標(biāo)圖像中亮度變化明顯的像素點(diǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07python fabric實(shí)現(xiàn)遠(yuǎn)程操作和部署示例
這篇文章主要介紹了python使用fabric實(shí)現(xiàn)遠(yuǎn)程操作和部署示例,需要的朋友可以參考下2014-03-03Python數(shù)據(jù)結(jié)構(gòu)之遞歸可視化詳解
遞歸函數(shù)是直接調(diào)用自己或通過(guò)一系列語(yǔ)句間接調(diào)用自己的函數(shù)。遞歸在程序設(shè)計(jì)有著舉足輕重的作用,在很多情況下,借助遞歸可以優(yōu)雅的解決問(wèn)題。本文主要介紹了如何利用可視化方式來(lái)了解遞歸函數(shù)的執(zhí)行步驟,需要的可以參考一下2022-04-04Keras自動(dòng)下載的數(shù)據(jù)集/模型存放位置介紹
這篇文章主要介紹了Keras自動(dòng)下載的數(shù)據(jù)集/模型存放位置介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06