基于Python怎么实现音乐播放器
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容主要讲解"基于Python怎么实现音乐播放器",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"基于Python怎么实现音乐播放器"吧!一、环境设置第一
千家信息网最后更新 2025年01月20日基于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安全错误
数据库的锁怎样保障安全
上海奥鹰网络技术有限公司
网络安全课程介绍
如何更改考勤机数据库
如何在服务器中刷东西
access数据库评测
聊天软件开发的语言
中学生网络安全大赛英语作文
数据库技术与gis
数据库丢失
淘宝互动神器软件开发
网络安全 税务机关
数据库1405
江苏省网络安全与信息化
Hana数据库查询库中表
mdb数据库文件下载
最关心的网络安全问题是什么
ktv服务器怎么加歌
查询很慢数据库性能问题
索尼无法连接到服务器
工业网络技术多少钱一个月
大数据库保存时间
linux软件开发经典书籍
网络安全板报
杭州有没有要招工软件开发6
怎么使用GO数据库
学生网络安全课程教学视频
效率高视频会议软件开发
微信同步数据库
700m广电网络技术
手机上搭建私有即时通讯服务器