Qt/C++ 网易云api 在线播放音乐
之前用了一個(gè)私人的api,沒用到1個(gè)月就沒了,實(shí)在煩惱~無意間通過wireshark抓到網(wǎng)易云音樂,然后解析了一下就Okay。解包里有mp3url,就okay了。然后通過加載就okay。
至于歌詞部分是被加密了的。。實(shí)在找不到方法解密。就又調(diào)用了一個(gè)酷狗音樂的歌詞api。
一.請(qǐng)求搜索歌曲:
???? QNetworkAccessManager*manger=newQNetworkAccessManager;
QNetworkRequest *request=new QNetworkRequest; request->setUrl(QUrl(http://music.163.com/api/search/pc)); request->setRawHeader("Cookie","os=pc"); request->setRawHeader("Host","music.163.com"); request->setRawHeader("MUSIC_U","5339640232"); request->setRawHeader("Referer",http://music.163.com/); manger->post(*request,"offset=0&total=true&limit=100&type=1&s="+byt); connect(manger,SIGNAL(finished(QNetworkReply*)),this,SLOT(workfinished(QNetworkReply*)));二.處理返回內(nèi)容:
QJsonDocument doc=QJsonDocument::fromJson(byt);
QJsonObject obj0=doc.object();
QJsonObject obj1=obj0.value("result").toObject();
QJsonArray arry=obj1.value("songs").toArray();
int arrycount=arry.count();
for(int i=0;i<arrycount;i++)
{
QJsonObject obj2=arry.at(i).toObject();
?QString songname=obj2.value("name").toString();//獲取音樂名字
QJsonArray arry1=obj2.value("artists").toArray();
QJsonObject obj3=arry1.at(0).toObject();
QString author= obj3.value("name").toString();//獲取歌手名字
connect(addnetplaybtn,SIGNAL(clicked()),this,SLOT(addplaynetListslot()));
connect(downbtn,SIGNAL(clicked()),this,SLOT(downloadnetsong()));
??}
?
powered by:小烏龜在大烏龜背上
總結(jié)
以上是生活随笔為你收集整理的Qt/C++ 网易云api 在线播放音乐的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 随笔-1031
- 下一篇: API文档工具-Swagger的集成