基于Python怎么实现音乐播放器
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,本篇内容主要讲解"基于Python怎么实现音乐播放器",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"基于Python怎么实现音乐播放器"吧!一、环境设置第一
千家信息网最后更新 2024年11月30日基于Python怎么实现音乐播放器
本篇内容主要讲解"基于Python怎么实现音乐播放器",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"基于Python怎么实现音乐播放器"吧!
一、环境设置
第一步引入必须的各类包
import osimport tkinterimport tkinter.filedialogimport randomimport timeimport threadingimport pygame
特别是pygame需要手动安装
pip install pygame
二、播放功能
首先选择音乐目录,然后创建播放现成,播放音乐。
# 播放按钮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' buttonNext['state'] = 'disabled' global folder folder = ''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': pygame.mixer.music.pause() pause_resume.set('Resume') elif pause_resume.get() == 'Resume': pygame.mixer.music.unpause() pause_resume.set('Pause')
五、关闭
先结束现成,然后关闭窗体。
# 关闭程序时执行的代码def closeWindow(): # 修改变量,结束线程中的循环 global playing playing = False time.sleep(0.3) try: # 停止播放,如果已停止, # 再次停止时会抛出异常,所以放在异常处理结构中 pygame.mixer.music.stop() pygame.mixer.quit() except: pass root.destroy()
六、完整代码
#!/usr/bin/python# -*- coding: UTF-8 -*-"""@author:livingbody@file:music_play.py@time:2022/04/19"""import osimport tkinterimport tkinter.filedialogimport randomimport timeimport threadingimport pygamefolder = ''def play(): # folder用来表示存放MP3音乐文件的文件夹 global folder musics = [folder + '\' + music for music in os.listdir(folder) \ if music.endswith(('.mp3', '.wav', '.ogg'))] # 初始化混音器设备 pygame.mixer.init() while playing: if not pygame.mixer.music.get_busy(): # 随机播放一首歌曲 nextMusic = random.choice(musics) musicName.set('playing....' + nextMusic) pygame.mixer.music.load(nextMusic.encode()) # 播放一次 pygame.mixer.music.play(1) else: time.sleep(0.3)root = tkinter.Tk()root.title('音乐播放器v1.0')root.geometry('280x70+400+300')root.resizable(False, False)# 关闭程序时执行的代码def closeWindow(): # 修改变量,结束线程中的循环 global playing playing = False time.sleep(0.3) 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' buttonNext['state'] = 'disabled' global folder folder = ''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': pygame.mixer.music.pause() pause_resume.set('Resume') elif pause_resume.get() == 'Resume': 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=270, height=20)if __name__ == '__main__': # 启动消息循环 root.mainloop()
到此,相信大家对"基于Python怎么实现音乐播放器"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
音乐
按钮
线程
播放器
功能
文件
代码
文件夹
循环
选择
两个
内容
再次
变量
情况
状态
用户
程序
结构
一首
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
浙江云软件开发是做什么的
税务局网络安全手册
怎么连接我的世界电脑版服务器
苏州电脑软件开发
软件开发文件命名
云端服务器能用换ip软件吗
知网往年数据库
学生网络安全新闻报道
北大网络安全研究院
软件开发屏幕分辨率多少合适
中国对网络安全有什么措施
网络安全跨区互联的危害
同花顺 服务器地址
互联网科技圈发生的大事
超级宝宝怎样连接服务器
贵阳网络安全事件
华为网络安全三授权六禁令
徐州hpe塑合型服务器哪家好
方舟服务器管理员衣服代码
acm数据库收录项目
诚信云智能互联网科技
心电数据库支持容量
mysql快速导出数据库
江苏浪潮服务器续保价格
北大网络安全研究院
数据库技术中脏数据
办公室网络安全保障制度
bcs2020网络安全
数据库追加元组用什么参数
万方数据库中文献的题录信息