最近看到kugou有一个在线听歌的api,然后手痒写了一个app,为什么kugou的api用QQ音乐的皮肤呢,因为电脑只装了QQ音乐。所以图方便就直接用了。
1、总体感觉功能没什么技术难点。
2、UI基本都是自绘的,有些样式设置麻烦,就干脆自绘算了。
3、支持歌曲在线听,歌词同步。
4、支持歌曲
下载。但是音质是默认的。
没有找到高清的接口。
5、当然也支持本地音乐播放。


贴几个api的代码:
歌曲搜索的
- QString strUrl = QString("http://mobilecdn.kugou.com/api/v3/search/song?format=json&keyword=%1&page=1&pagesize=15").arg(_name);
- QNetworkRequest request;
- request.setUrl(strUrl);
- m_http->get(request);
歌曲在线试听
- QString strUrl = QString("https://www.kugou.com/yy/index.php?r=play/getdata&hash=%1&album_id=%2&_=1497972864535").arg(_hash).arg(_albumId);
- QNetworkRequest request;
- request.setUrl(strUrl);
- request.setRawHeader("Cookie", "kg_mid=233");
- m_http->get(request);
歌曲下载:
- DownloadItem item = m_downTask.first();
- QNetworkRequest request;
- request.setUrl(item.url());
- m_file.setFileName(item.filePath());
- if (!m_file.open(QIODevice::ReadWrite))
- {
- qDebug() << "file open failed" << m_file.fileName();
- return;
- }
- m_reply = m_http->get(request);
- connect(m_reply, &QNetworkReply::readyRead, this, &QHttpDownload::sltReadyRead);
- connect(m_reply, &QNetworkReply::finished, this, &QHttpDownload::sltFinished);
- connect(m_reply, &QNetworkReply::downloadProgress, this, &QHttpDownload::downloadProgress);
代码后续考虑放出,目前功能很单一就不放出来了。
先上传个体验包:(论坛上传大小限制了,只能百度网盘了)
链接:https://pan.baidu.com/s/1uxwn-x5baQfAn3wLmC896g
提取码:bvml