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


下载体验地址:https://wwt.lanzoul.com/iH6No1hltwyf


xian鱼地址:https://m.tb.cn/h.gWYbOAF?tk=AplaWvaZ3JI

一.前言

传送门:
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绑定,这样做提高了歌词的同步性、能够显示所有歌词。

4.双击歌曲后发生什么

本次代码对播放音乐的代码逻辑进行了重新设计,与前几个版本不同,本次通过继承QThread创建了任务线程类,即当双击在线歌曲后,软件会自动创建多个线程包括并不限于封面获取线程、歌词获取线程、歌手写真获取线程,当然最重要的是歌曲获取线程,此线程关乎我们能否播放音乐。

在这里插入图片描述

四.总结

本次对音乐播放器进行了精简代码,约用了5500行代码,其中七分之三为UI代码,七分之三为逻辑代码,七分之一为引擎代码。本次提升了软件的稳定性、流畅性,打包好放在了这里,大家自取。
在这里插入图片描述
软件包括但不限于上述功能

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值