Skip to content

zhu-kyo/Online-Music-Player

Repository files navigation

基于Qt Quick的在线音乐播放器

简要说明

​ 本项目是一个在线音乐播放器的简单练习项目,主要使用Qt Quick和少量的javascript,实现了搜索歌曲,查看最新的推荐音乐列表和播放控制等基础功能。

本项目使用的接口已失效,现在可以搜索歌曲但无法播放。

工具

Qt Creator 4.14.0 + Qt 5.15.2

界面和逻辑

界面使用QML编写,使用的控件都是经常用的。逻辑使用javascript,主要是网络请求需要用到javascript,也可以在C++中实现网络功能后导入到QML中,本项目通过javascript实现网络请求。

音乐接口

音乐接口使用的是QQ音乐API,下面列出用到的接口:

新歌排行榜:用来获取最新的Top100音乐

https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_cp.fcg?g_tk=5381&uin=0&format=json&inCharset=utf-8"
        + "&outCharset=utf-8¬ice=0&platform=h5&needNewCode=1&tpl=3&page=detail&type=top&topid=27&_=1519963122923

随机推荐:获取随机推荐列表

https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_cp.fcg?g_tk=5381&uin=0&format=json&inCharset=utf-8"
        + "&outCharset=utf-8¬ice=0&platform=h5&needNewCode=1&tpl=3&page=detail&type=top&topid=36&_=1520777874472

搜索:其中%1需换成请求的页数,%2需换成请求的数量,%3需换成搜索关键字,该请求在测试时每页最多返回60首歌曲信息,故项目中搜索时每页请求数最多为60

https://c.y.qq.com/soso/fcgi-bin/client_search_cp?p=%1&n=%2&w=%3

专辑图片:通过以上三个接口可以获得歌曲信息,其中有个albumid属性,将下面地址的%1换成albumid % 100%2换成albumid即可获取专辑图片。

http://imgcache.qq.com/music/photo/album_300/%1/300_albumpic_%2_0.jpg

歌曲地址:将%1换成歌曲信息中的songmid属性即可。

https://api.zsfmyz.top/music/song?songmid=%1&guid=126548448

关于接口的更多描述可以参考:

https://www.siediyer.cn/?p=1165

https://github.com/lunhui1994/node-music-api

http://www.bubuko.com/infodetail-3480251.html

其中有些接口已经失效

问题

​ 在使用https请求时很可能出现TLS initialization failed或类似错误,解决方法在这里可以找到。在获取到歌曲地址后传递给播放器时可能出现[DirectShowPlayerService::doRender: Unresolved error code 0x80040266 ()]或类似错误,好像是由于无法解码,如果会用一些音频库的话应该可以解决,或者下载 K-lite codecs并安装也可解决,可参考这里

About

基于Qt Quick的在线音乐播放器

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages