文章目录
- 二.展示
- 1.启动
- 2.添加音乐&播放
- 3.软件风格
- 三.软件整体功能-览
- 四.实现原理
- 1.界面设计
- 2.音频播放
- 3.打包
- 五.总结
博客二连发,继续为大家带来我使用PyQt5开发的软件,本次为大家分享我写的一款本地音乐播放器,支持多种音乐格式包括不限于mp3、flac、aac,本篇尽量比较详细介绍每一部分开发思路,开始~
二.展示
1.启动
我们的音乐播放器只有一个页面,所有操作都是在这一个页面进行的,所以界面很简单
2.添加音乐&播放
本次是一款本地音乐播放器,支持播放的也都是本地文件,我们点击添加按钮添加本地音乐文件到播放列表中。
3.软件风格
本次使用QT内置的方法,内置了三种风格样式,下面仅演示一下Fusion样式
三.软件整体功能-览
四.实现原理
1.界面设计
为了开发效率,本次使用QtDesigner设计页面,使用pyuic将设计好的.ui文件转为.py文件,通过使用多继承的方式调用生成好的界面ui文件,这样保证了开发效率也进行了解耦,详细设计见下图
整体是一个垂直布局,上面是一个QListWidget,中间使用水平布局与弹簧设置QLabel居中用于显示当前状态,使用两个QLabel显示当前播放进度,中间使用QSlider给予用户一个调节播放进度的接口组件,最下方一排是QPushButton与QComboBox内部水平布局。
2.音频播放
下面介绍一下本软件实现音频播放的原理:
使用QMediaPlayer配合本机解码器对音频进行解析播放,使用
QMediaPlaylist用作播放列表,存储播放列表中的本地音频文件,调用其中的方法设置播放模式,上一曲与下一曲的实现也是通过调用QMediaPlaylist相关方法实现的。QMediaPlayer给我们提供了相当丰富的信号,我们可以连接到自己的槽函数来操作播放器,比如连接positionChanged信号,我们可以获取播放器的最新播放位置,将其格式化后展示到界面上,就能知道当前的播放进度,连接mediaStatusChanged信号,我们能获取到最新的播放列表索引继而更新界面上展示的文件信息。
3.打包
本次仍然使用Nuitka进行打包,使用NIS Edit制作成安装包,安装包大小为27.3M,大家可以自行下载体验一下,启动速度还是很快的。
下载地址:
https://wwt.lanzoul.com/i2VAu1wppx9g
五.总结
本次使用PyQt5制作了一款本地简易音乐播放器。