飞道的博客

python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)

347人阅读  评论(0)


一.前言

传送门:
1.python3GUI–打造一款音乐播放器By:PyQt5(附下载地址)

2.python3GUI–音乐播放器第二弹By:PyQt5(附下载地址)

3.python3GUI–音乐播放器第三弹By:PyQt5(附下载地址)

本次在前面三个版本上进行代码删减,去掉冗余功能,注重提升用户体验,更换API,提高播放成功率。

二.预览

1.主界面


主界面延续之前的风格,对部分内容进行删减。

增加了歌单推荐,每张歌单都有30首歌曲

模仿web版x易云的banner,点击banner后,就会对banner推荐内容进行搜索

2.歌单页


上图为本地(下载)歌单

上图为在线歌单 or 搜索结果页

3.歌词页


本次优化了歌词页的歌词逻辑,增加了交互动画

增加了歌词页切换动画

4.播放列表

播放列表风格不变

5.mini


mini仿照x易云的mini窗口,做了相关交互动画

6.设置

本次重新绘制了设置窗口,设置窗口分为基本设置、搜索下载设置、高级设置。


三.心得

1.解耦

解耦思路不仅仅应用在逻辑代码设计过程中,应该用在软件开发的各个环节当中,举个例子:通过设置多个QTableWidget将同类的不同数据区别展示,通过设置QStackedWidget的索引,展示相应的table,能够有效地在UI代码上解耦。

2.体验优化

如果您下载了本次我打包好的exe文件,就能够明显体验到,本次的软件启动、响应有了明显的提升,本次在UI设计上使用了缓存思路,把可能重复使用的资源文件(如:banner、歌手图片)缓存到本地,以提升整个UI响应速度,通过QThread配合信号和槽机制,让耗时的操作在子线程中进行,避免阻塞UI主线程,其中,在线音乐的源、歌词、歌图、歌手图、搜索结果、歌单图等数据都是在子线程中进行的。

3.歌词显示

记得前面笔者单独说了下歌词的显示机制,虽然简单实现了歌词的显示,并且能够和当前播放歌词匹配,但是仔细的话能够发现还是存在bug,比如歌词进度对不上、最后一局歌词无法渲染。本次重新调整了歌词显示逻辑,仍然使用正则切割出指定格式的歌词item,但是歌词的改变是通过QTimer实现的,并不是和player绑定,这样做提高了歌词的同步性、能够显示所有歌词。

四.总结

本次对音乐播放器进行了精简代码,约用了5500行代码,其中七分之三为UI代码,七分之三为逻辑代码,七分之一为引擎代码。本次提升了软件的稳定性、流畅性,打包好放在了这里,大家自取。


转载:https://blog.csdn.net/a1397852386/article/details/128430962
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场