用QT实现的网易云音乐,目前实现的功能有:
1.本地音乐扫描与播放。
2.使用的Binaryify/NeteaseCloudMusicApi作为api,链接部署在本地的网易云音乐服务器,通过API播放网络音乐。
注:本软件仅供学习使用,不可用于商业用途,本人不拥有网易云音乐版权,此软件所有UI,界面框架版权全归网易所有,侵权联系本人,收到将立即删除。
一、主界面
因为目前主要实现了两个功能:
一、是本地音乐扫描与播放,所以点击本地音乐便可跳转至本地音乐播放界面。
二、是网络音乐播放,在导航栏输入对应的关键字,便可以搜索网易云库里的音乐(本程序使用Node js版 API作为服务器,如果想使用网络音乐播放,需要安装对应API详细请见:GitHub - Binaryify/NeteaseCloudMusicApi: 网易云音乐 Node.js API service)
二、本地播放界面
本地音乐播放界面可以展示所有扫描到的本地音乐,点击右上角的选择目录,便可以扫描对应目录下的.mp3文件,然后将扫描到的音乐显示在列表栏中。
点击播放全部按钮,便可以将音乐全部放入右下角的播放栏中,并开始播放对应音乐
点击选择目录后,便弹框提示需要扫描的目录,点击添加文件夹,便可以选择添加自己想要扫描的目录。点击确定开始扫描目录列表中的.mp3文件。弹窗的阴影特效是当初在linux在开发做的,但是移植到windows下后,便丢失,目前不知道
三、播放列表界面
点击主界面右下角的播放列表按钮,便可以弹窗显示当前正在播放的列表。对列表的歌曲点击右键便可以更换当前播放的歌曲。并且本地播放和网络播放的歌曲都可以在该列表中显示并切换想听的歌曲。
四、网络音乐播放查找
在导航栏上搜索关键字,便可以从音乐库中搜索到对应关键字的音乐。接受到API反馈的音乐后,将显示在下方展示栏中,点击下面的页码可以切换不同页码的歌曲。对音乐列表中的歌曲点击右键可以将歌曲放入播放列表中,然后在线播放。
因为我用的是网易云的API,所以可以从网易云音乐库中搜索对应的音乐(但是VIP歌曲只能听30s,除非登录,但是由于是第三方提供的库,所以没有进一步做登录功能)
五、音乐播放界面
点击左下角的歌曲专辑图片按钮便可以弹出这个界面,再次点击该按钮便可以返回之间的界面。在这个界面显示正在播放的音乐信息,左边会通过API获取音乐专辑,然后显示并跟随黑胶CD旋转,播放唱杆也会跟随播放停止切换而旋转,右边会通过API获取歌曲的专辑名,歌手信息等。
歌词部分,网络音乐播放会通过API获取完整的歌词整篇显示,并且跟随播放的进度自动切换当前播放的歌词并加粗提示。
下方中间的播放进度条会跟随歌曲播放的进度走动,并且播放歌曲的总时间会通过API获取并显示。点击进度条便可以将歌曲跳转到对应播放进度。
六、总结
本项目除了初始界面的轮播找了一个大佬的UI,其他界面都是本人通过代码的方式构建的。本因是为了自我学习,但是忽略了移植性和复杂度。并且整个项目跨度有点大,导致部分代码不一致。请各位小伙伴勿喷。接下来贴上整个项目的代码仓库。如果本人有空会慢慢优化整个项目。
整个项目本来只是用来学习CSS界面优化的(本人是个新手qt爱好者,这个算是第二个项目,所以部分代码比较幼稚),但是慢慢做着做着就把部分功能做进去了,本来想写个小项目练练手的。所以部分没有大局观,导致代码非常乱。。。