文章目录
一.前言
本次继续对音乐播放器进行更新,更新到V2.0,加入了一些新元素,修复了一些BUG。本次是第三弹,前两弹为:
python3GUI–打造一款音乐播放器By:PyQt5(附下载地址)
python3GUI–音乐播放器第二弹By:PyQt5(附下载地址)
,其中音乐播放器和轮播图的下载地址我放在了文末,大家自取。
二.变化(文字版)
1.UI
1.主界面加入轮播图
2.主界面加入推荐歌单
3.主界面加入音乐周边
4.主界面加入直播推荐
5.加入音乐评论数量显示
6.支持自定义注意颜色啦
7.加入搜索历史
8.加入热门搜索推荐
9.歌词界面加入歌手写真轮播图
2.体验:
1.可以看直播了~
2.记录搜索历史,之前搜的啥都能查到~
3.支持查看歌手介绍,很详细哦~
4.优化右击菜单,支持多种搜索方式~
5.优化歌曲收藏逻辑,让你的小红心不会点错~
三.变化(图片版)
变化较大的是主页,加入了一些新的组件。
1.首页-轮播图
首页加入了轮播图,轮播图每3秒自动更新到下一个,也可以将鼠标放置在图片下面按钮上或者单击按钮,改变当前轮播图。单击轮播图,就会对所选内容进行歌曲搜索。
动图一:
来一张动图展示轮播图
动图二:
展示一下新版歌词界面
PS:轮播图是会随网络进行更新的,数据源取自酷我
2.首页-歌单推荐
歌单推荐也是随着网络进行推荐的,每个歌单的歌曲数量为20首
3.首页-音乐周边&直播推荐
点击直播推荐就能够进入直播间,播放器支持播放、暂停、音量调节、数据源切换、全屏…直播源为酷狗。
举个例子~
4.更改主题颜色
更改主题颜色:
5.搜索历史&热歌推荐
记录了搜索历史,显示了热歌搜索推荐
6.歌手写真:
再播放歌曲时,会根据当前歌手加载歌手写真,每10秒更换歌手写真图片
7.歌手介绍:
本次引入了歌手介绍,右击歌曲条目-查看歌手,即可查看歌手的信息,数据取自酷我。
四.本次更新技术点
轮播图
轮播图是指在一个模块或者窗口,通过鼠标点击或手指滑动后,可以看到多张图片。这些图片统称为轮播图,这个模块叫做轮播模块。轮播图常见于电商类、资讯类应用、功能首页、功能模块主页面,还有网易云音乐App的发现模块主页。
本次研究轮播图确实花费了一些时间,本次只是做了个初稿,实现了轮播图基本功能。
软件启动时,自动加载轮播图片到本地,用一个列表存储,图片用一个label展示,每次仅需将图片二进制加载到label中,就能够实现图片的切换,此label重写于QLable,将mousePressEvent函数加入clicked信号,实现在图片上单击执行搜索操作;将enterEvent函数加入hovered信号,实现鼠标进入图片主窗口定时器停止;将leaveEvent函数加入left信号,实现鼠标离开图片主窗口定时器启动。
仅仅做到上面还是不够的,比如我们要做图片的自动切换呢?答案:使用定时器,定时器设置好超时函数以及间隔时间,每隔3秒调用一次超时函数,超时函数对当前图片索引进行判断,索引最大值如果大于等于图片总数,则将当前索引置为0(即从最后一张跳到第一张),最后根据当前索引展示图片。
上面说的是轮播图自动切换原理,我们要手动切换轮播图怎么做呢?这样,根据图片总数创建一组按钮(QPushButton),设置他们的样式并且setCheckable(True),这样,按钮组每次只能有一个按钮是“按下”状态,能够手动切换轮播图是因为我重写了button的enterEvent函数,每次鼠标进入button都会发出一个hovered的信号,主窗口收到这个信号后,会计算按钮所属索引,继而改变轮播图。
样式一:
样式二:
样式三:
样例二、三加入了左右切换按钮,是用同一个类实现的。
五.总结
- 本次是音乐播放器的第三弹,不知道还会不会有第四弹、第五弹…最近再做别的,Qt5可能做的比较少了。本次修复了一些BUG,但是仍然有些BUG,这是和软件的功能呈正相关的,欢迎大家帮我测试、指正!最后感谢大家一直的关注,谢谢!
播放器体验地址:
蓝奏云
轮播图体验地址:
轮播图-样例一
轮播图-样例二
轮播图-样例三
六.附:改进过程
1.设置窗口关闭了,主程序就退出了
2.下载的歌曲没有后缀(.mp3) 不涉及此问题
3. 点击我喜欢的音乐 提示此歌单为空 已加入
4.主题颜色更改,没有功能 已加入
5.左上角刷新,设置仅在搜索页面和主页刷新 已修复
6.加入一些推荐歌单、音乐而不仅仅是排行 加入了一些推荐歌单
7.顺序歌单播放,没有版权不会自动跳过,还是会提示,要做到只有双击播放没版权才提示
8.点击搜索框显示推荐歌曲 已加入
9.评论tab点击、hover样式改变 已修改
10.搜索-播放-收藏-收藏红心不改变 已修改
11.加载多个歌手图片 已加入
12.修改歌词按钮tooltip 已加入
13.mini模式下去掉边框 已去除
14.mini模式下,去除“退出”按钮 已去除
15.加入歌手介绍界面 已加入(KuGou接口)
16.使用新界面展示用户评论信息
17.加入歌曲评论数量显示 已加入(通过调整宽度)
18.加入热歌推荐 已加入
19.加入搜索历史记录 已加入
20.mini不透明度设置 已加入
21.加入音乐周边(酷我) 已加入
22.新歌推荐 列表推荐 特殊推荐 已加入
newDiscShelves playList newSingleSong
23.加入直播推荐与视频播放器(酷狗繁星) 已加入
23.作者头像、用户头像变成圆角 已改变
24.未播放音乐时,点击收藏会产生显示错误 已修复
25.主窗口背景设置,还没想好思路
26.修复歌曲收藏id存储失败 已修复 定义id为字符串类型,统一了存储格式
27.主界面加入轮播图 已加入
28.鼠标放在轮播图,轮播图停止轮播 已加入
29.在线直播无法真正全屏 已修复
30.对原始UI进行精简 已精简 去除了相关无用
31.歌曲评论数量显示问题 已修复
32.去除主窗口四周间距 已去除
33.设置了背景图片,播放在线音乐,会导致背景图片消失
34.改变播放列表背景颜色、进度条槽颜色 已加入
35.mini还原后,hover样式会消失
36.搜索以后右击事件会消失
37.从直播间退出来后,UI显示问题 已修复