这篇文章主要为大家展示了“如何利用Python编写本地音乐播放器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何利用Python编写本地音乐播放器”这篇文章吧。
先上完整代码:
修改文件夹路径即可运行
# -*- encoding: utf-8 -*-'''@Description: :@Date :2022/03/24 17:43:26@Author :骤&雨@version :1.0'''#导入相关库文件import osimport tkinterimport tkinter.filedialogimport randomimport timeimport threadingimport pygamefrom asyncio.base_tasks import _task_print_stackfrom cProfile import labelfrom email import headerfrom functools import total_orderingfrom importlib import find_loaderfrom logging import rootfrom mimetypes import initfrom re import Xfrom turtle import widthfrom matplotlib.pyplot import pausefrom scipy import rand#设置文件夹路径folder = r'C:\Users\Administrator\Desktop\Python\Python Code\TiquMusicFromVedio'"""@description : 音乐播放,默认播放文件夹内的所有mp3文件---------@param :-------@Returns :-------"""def play(): global folder music =[folder+'\\'+music for music in os.listdir(folder)\ if music.endswith(('.mp3','.wav','.ogg'))] total = len(music) #初始化混音器设备 pygame.mixer.init() while playing: if not pygame.mixer.music.get_busy(): #随机播放一首歌曲 nextMusic = random.choice(music) pygame.mixer.music.load(nextMusic.encode()) #播放一次 pygame.mixer.music.play(1) musicName.set('playing.......'+nextMusic) else: time.sleep(0.3)root = tkinter.Tk()root.title('音乐播放器')root.geometry('700x80+400+300')root.resizable(False,False)#关闭程序时执行的代码def closeWindow(): global playing playing = False try: pygame.mixer.music.stop() pygame.mixer.quit() except: pass root.destroy()root.protocol('WM_DELETE_WINDOW',closeWindow)pause_resume=tkinter.StringVar(root,value = 'NotSet')playing = False#播放按钮def buttonPlayClick(): global folder if not folder: folder = tkinter.filedialog.askdirectory() if not folder: return global playing playing = True #创建一个线程来播放音乐 t = threading.Thread(target=play) t.start() #根据情况禁用或启用相应按钮 buttonPlay['state'] = 'disabled' buttonStop['state'] = 'normal' buttonPause['state'] = 'normal' buttonNext['state'] = 'normal' pause_resume.set('Pause')buttonPlay = tkinter.Button(root,text = 'Play',command=buttonPlayClick)buttonPlay.place(x=20,y=10,width=50,height=20)#终止按钮def buttonStopClick(): global playing playing = False pygame.mixer.music.stop() musicName.set('暂时没有播放音乐') buttonPlay['state'] = 'normal' buttonStop['state'] = 'disabled' buttonPause['state'] = 'disabled'buttonStop = tkinter.Button(root,text='Stop',command=buttonStopClick)buttonStop.place(x=80,y=10,width=50,height=20)buttonStop['state']='disabled'#暂停与恢复 复用按钮def buttonPauseClick(): global playing if pause_resume.get()=='Pause': #playing = False pygame.mixer.music.pause() pause_resume.set('Resume') elif pause_resume.get()=='Resume': #playing = True pygame.mixer.music.unpause() pause_resume.set('Pause')buttonPause = tkinter.Button(root,textvariable=pause_resume,command=buttonPauseClick)buttonPause.place(x=140,y=10,width=50,height=20)buttonPause['state']='disabled'#下一首def buttonNextClick(): global playing playing = False pygame.mixer.music.stop() pygame.mixer.quit() buttonPlayClick()buttonNext = tkinter.Button(root,text='Next',command=buttonNextClick)buttonNext.place(x=200,y=10,width=50,height=20)buttonNext['state']='disabled'musicName = tkinter.StringVar(root,value='暂时没有播放音乐!')labelName = tkinter.Label(root,textvariable=musicName)labelName.place(x=0,y=40,width=700,height=20)#启动消息循环root.mainloop()
运行结果如下:
以上是“如何利用Python编写本地音乐播放器”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!