小案例:用Python制作音乐播放器
以下是音乐播放器要实现的功能:
1.可以通过打开存放音频文件夹来添加音频
2.可以播放和暂停音频
3.可以设置播放音量
需要实现音频播放器的模块:
1.pygame的音频播放功能
2.easygui的fileopenbox函数与os的listdir函数
3.播放器的窗口和布局我们就是使用PySimpleGUI库来实现。
先给大家展示下程序:
首先,我们需要导入所有库:
from pygame import mixer
from PySimpleGUI import Window,Slider,B,T,LB,Frame
from easygui import diropenbox
from os import listdir
然后是pygame音频的初始化:
mixer.init()
mixer.music.set_volume(1) #设置音量(0 - 1)
要想选择播放的音频,我们就需要用列表来存储音频名称和路径
all_music = [] #所有音频的名称
all_music_path = [] #所有音频的路径
然后就是窗口布局:
layout = [[Frame('播放列表',[[T('音频播放列表',font = ('楷体',15))],[LB(all_music,size = (60,10),key = '-music_list-')],[T('正在播放: 空',font = ('楷体',12),key = '-playing-')]],font = ('楷体',16))],[T('音量设置',font = ('楷体',14)),Slider(range = (0,100),key = '-volume-',default_value = 100,orientation = 'h',enable_events = 1)],[B('添加音频',font = ('楷体',14)),B('开始播放',font = ('楷体',14)),B('暂停',font = ('楷体',14)),B('退出',font = ('楷体',14))]]
接下来就是窗口的事件处理:
window = Window('音乐播放器',layout)
pause = False #做一个音频是否暂停的标记while 1:event,values = window.read()if event in (None,'退出'):breakmixer.music.set_volume(values['-volume-'] / 100)if event == '开始播放':if pause:mixer.music.unpause() #继续播放else:music = values['-music_list-']if not len(music):continueelse:music = music[0]if len(music) > 30:window['-playing-'].update('正在播放: {}...'.format(music[:36]))else:window['-playing-'].update('正在播放: {}'.format(music))mixer.music.load(all_music_path[all_music.index(music)])mixer.music.play()choose_music = Trueelif event == '添加音频':music_file = diropenbox()all_music_path = all_music_path + [music_file + '\\' + i for i in listdir(music_file) if i.endswith('.mp3')]all_music = all_music + [i.split('\\')[-1] for i in all_music_path]window['-music_list-'].update(all_music)elif event == '暂停':if mixer.music.get_busy():mixer.music.pause() #暂停pause = Trueelse:continuewindow.close() #循环结束后就关闭窗口
最后是源代码:
from pygame import mixer
from PySimpleGUI import Window,Slider,B,T,LB,Frame
from easygui import diropenbox
from os import listdirmixer.init()
mixer.music.set_volume(1)all_music = []
all_music_path = []layout = [[Frame('播放列表',[[T('音频播放列表',font = ('楷体',15))],[LB(all_music,size = (60,10),key = '-music_list-')],[T('正在播放: 空',font = ('楷体',12),key = '-playing-')]],font = ('楷体',16))],[T('音量设置',font = ('楷体',14)),Slider(range = (0,100),key = '-volume-',default_value = 100,orientation = 'h',enable_events = 1)],[B('添加音频',font = ('楷体',14)),B('开始播放',font = ('楷体',14)),B('暂停',font = ('楷体',14)),B('退出',font = ('楷体',14))]]window = Window('音乐播放器',layout)
pause = Falsewhile 1:event,values = window.read()if event in (None,'退出'):breakprint(values)mixer.music.set_volume(values['-volume-'] / 100)if event == '开始播放':if pause:mixer.music.unpause() #继续播放print('继续播放')else:music = values['-music_list-']print(music)if not len(music):continueelse:music = music[0]if len(music) > 30:window['-playing-'].update('正在播放: {}...'.format(music[:36]))else:window['-playing-'].update('正在播放: {}'.format(music))mixer.music.load(all_music_path[all_music.index(music)])mixer.music.play()choose_music = Trueprint('重新播放')elif event == '添加音频':music_file = diropenbox()print(music_file)all_music_path = all_music_path + [music_file + '\\' + i for i in listdir(music_file) if i.endswith('.mp3')]all_music = all_music + [i.split('\\')[-1] for i in all_music_path]window['-music_list-'].update(all_music)elif event == '暂停':if mixer.music.get_busy():mixer.music.pause() #暂停pause = Trueelse:continuewindow.close()
以上就是全部内容,感谢大家的观看!
小案例:用Python制作音乐播放器相关推荐
- 用Python制作音乐播放器(下,含完整源代码)
哈喽,大家不知道是上午好还是中午好还是下午好还是晚上好! 音乐播放器,大家应该不陌生吧!今天我们一起来学习如何用python制作音乐播放器.之所开头有一个"下",是因为我们以前已经 ...
- 用Python制作音乐播放器(上)
用Python制作简单的音乐播放器 哈喽,大家不知道是上午好还是中午好还是下午好还是晚上好! 音乐播放器,大家应该不陌生吧!今天我们一起来学习如何用python制作音乐播放器.之所开头有一个" ...
- python制作音乐播放器_python实现音乐播放器 python实现花框音乐盒子
本文实例为大家分享了python实现音乐播放器的具体代码,供大家参考,具体内容如下 """这是一个用海龟画图模块和pygame的混音模块制作的简易播放器. 作者:李兴球, ...
- Python制作音乐播放器,帮你随时放飞心情~
最近网易云音乐闹出不少事情,甚至被各大应用商店下架.它的某些做法小笨聪也着实不敢苟同,但还是希望它整改后能够发展更好,当然不只是在故事式热评方面,还包括更为重要的版权问题. 由此,小笨聪也萌发了制作一 ...
- [附源码]计算机毕业设计Python+uniapp基于微信小程序平台开发的音乐播放器f0rrr(程序+lw+远程部署)
[附源码]计算机毕业设计Python+uniapp基于微信小程序平台开发的音乐播放器f0rrr(程序+lw+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置 ...
- Go语言案例(一)音乐播放器
Go语言案例(一)音乐播放器 一.GOPATH 与 Go Mod 二.常用的标准库 (一)ftm (二)os/exec 三.项目中涉及语法概念 (一)结构体 (二)接口 四.源码附录 参考文档 一.G ...
- winform制作音乐播放器
winform制作音乐播放器 本文利用C# 调用Windows自带的Windows Media Player 打造一款属于自己的音乐播放器,以供学习分享使用,如有不足之处,还请指正. 概述 Windo ...
- 基于python的音频播放器_基于python实现音乐播放器代码实例
基于python实现音乐播放器代码实例,一首,函数,按钮,布局,音乐 基于python实现音乐播放器代码实例 易采站长站,站长之家为您整理了基于python实现音乐播放器代码实例的相关内容. 核心播放 ...
- 树莓派3B qt+mplayer制作音乐播放器(10)
内容 树莓派3B qt+mplayer制作音乐播放器:播放.暂停.上一曲.下一曲,音量调节. 平台:树莓派+qt+mplayer 1.配置 qt安装见此: https://blog.csdn.net/ ...
最新文章
- OPENWRT中SSH免密钥登陆(具体步骤)
- 关于移动端架构的好的学习网站
- 【体验】18650锂电池充电器体验,功能测试,18650充电测试
- ActiveMQ broker 集群, 静态发现和动态发现
- TensorRT(3)-C++ API使用:mnist手写体识别
- [读书笔记] Effective C++
- rpm方式安装MySQL-5.6
- 深入理解javascript原型和闭包 1
- [LeetCode]Trapping Rain Water
- linux0.11 80386段
- CSS单行文本溢出显示省略号
- 谈EBOM 、PBOM 、MBOM 在PDM中的统一
- 基于PYTHON的艺术签名设置
- 医院信息系统源码 HIS源码
- python读取批量txt文件
- 微信小程序云开发导出CSV文件时出现乱码
- 区块链开发工程师和人工智能算法工程师,哪个会在未来 5 年收入更高?
- 【深度学习】Hinton 最新研究:神经网络的未来是前向-前向算法
- windows7英文版变成中文版教程
- html中导入文件并显示