基于Python怎么实现音乐播放器
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"基于Python怎么实现音乐播放器",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"基于Python怎么实现音乐播放器"吧!一、环境设置第一
千家信息网最后更新 2026年11月01日基于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安全错误
数据库的锁怎样保障安全
互联网科技公司简介
江苏根荣互联网科技
科技股互联网
深圳天众互联网科技公司
广西互联网科技公司
人人互联网科技是培训
互联网金融监管科技
太原新华互联网科技学校怎么样
互联网教育科技公司vipkid
字节跳动和互联网科技
银川新华互联网科技职业技术培训学校图片
互联网科技项目计划书材料类
科技互联网海报
上海钢联属于互联网科技股吗
杭州披云加互联网科技有限公司
互联网科技数字货币
互联网科技平台产品运营
中国科技和美国互联网
唐山双旺合互联网科技产业园
前海云享互联网科技
疫情对互联网科技公司影响
互联网扶贫科技
互联网科技媒体
安徽鑫晟辉互联网科技
深圳天众互联网科技公司
广州紫鲸互联网科技
北京华百购互联网科技有限公司
佛山市翊博互联网络科技有限公司
华中科技大学互联网的牛人
互联网科技大佬云集