QQ音乐API整理


由于在网上看过很多音乐API都是一半可以用不是很全,有的API有经过改动,造成无法访问,今天来个大家总结一下QQ音乐的API,可能还不是很全,仅供参考,但亲测可用,数据获取方式用的都是jquery的jsonp形式获取数据,歌词除外:

## 歌曲信息搜索:

var songName='青花瓷';//歌曲或者歌手名字

$.ajax({
          url:"http://s.music.qq.com/fcgi-bin/music_search_new_platform?t=0& n=5&aggr=1&cr=1&loginUin=0& inCharset=GB2312&outCharset=utf-8&notice=0& platform=jqminiframe.json&needNewCode=0&p=1&catZhida=0& remoteplace=sizer.newclient.next_song&w="+songName,
          type:"get",
          // async:false,
          dataType:'jsonp',
          jsonp: "jsonpCallback",
          success: function(data){
            var json=data.data.song;
            root.song=json.list;

          },
          error:function (e) {
            console.log('error');
          }
        });

## 跨域成功后会看到跨域接受到的数据其中有个f属性:

f:"410316|青花瓷 (;)|4558|周杰伦|33021|我很忙|1942555|239|8|1|0|9573872|3836490|320000|0|25541938|26237796|5414428|5617369|0|002qU5aY3Qu24y|0025NhlN2yWrP4|002eFUFm2XYZ7z|0|4009"

f属性中以“|”为分隔符索引为0位置为歌曲id用来获取歌曲和歌词,索引为4位置为albumId获取对应的专辑图片,例子如下:

## 歌曲mp3获取

var id = "410316";
var src = "http://ws.stream.qqmusic.qq.com/"+id+".m4a?fromtag=0";

## 可以直接听到音乐

<audio src="http://ws.stream.qqmusic.qq.com/410316.m4a?fromtag=0"  controls="controls" ></audio>

## 歌曲专辑图片获取,图片尺寸300*300,jpg格式

var albumId="33021";
        var src="http://imgcache.qq.com/music/photo/album_300/"+(albumId%100)+"/300_albumpic_"+albumId+"_0.jpg";

## 歌词获取,这部分比较不同由于获取的数据格式不是json而是xml格式,网上看到的方法是另写一个php进行获取,但我们是写纯前端可以用另一种方法,例子如下:

var id = "410316";
var txt="http://music.qq.com/miniportal/static/lyric/"+id%100+"/"+id+".xml";
var YqlUrl='http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D"'+txt+'"&format=json&diagnostics=true&callback=?'
        $.getJSON(YqlUrl,function(data) {
            console.log(data);//获取的xml数据
        });

## 歌曲排行、新歌推荐信息获取url如下:

// 新歌推荐:http://music.qq.com/musicbox/shop/v3/data/hit/hit_newsong.js
// 歌曲排行:http://music.qq.com/musicbox/shop/v3/data/hit/hit_all.js

## 同样用jquery的jsonp可以很容易获取到,如果要进一步获取这些歌曲信息的歌曲mp3、歌词以及专辑图片方法和上面一样,获取的json数据中就带有id和albumId。

albumId:"139643"
albumLink:"/musicbox/shop/v3/album/43/album_139643.htm"
albumName:"身边的故事"
id:"1913719"
playtime:"268"
singerId:"12770"
singerName:"关喆"
songName:"想你的夜"
type:3
url:"http://stream3.qqmusic.qq.com:0/1913719.wma"
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
调用 QQ 音乐官方 API 可以实现在安卓应用中播放、搜索音乐等功能。下面是一个简单的示例来演示如何调用 QQ 音乐官方 API: 1. 首先,在你的安卓项目中添加网络访问权限,可以在 AndroidManifest.xml 文件中添加以下代码: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 2. 在你的项目中创建一个类来处理网络请求,可以使用 OkHttp 库来简化网络请求的过程。你可以在 build.gradle 文件中添加以下依赖: ```groovy implementation 'com.squareup.okhttp3:okhttp:4.9.0' ``` 3. 在你的代码中,使用以下代码发送网络请求调用 QQ 音乐官方 API: ```java import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; // ... OkHttpClient client = new OkHttpClient(); String url = "https://c.y.qq.com/soso/fcgi-bin/client_search_cp?p=1&n=10&w=歌曲名"; Request request = new Request.Builder() .url(url) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { // 请求失败处理 } @Override public void onResponse(Call call, Response response) throws IOException { // 请求成功处理 String responseData = response.body().string(); // 解析返回的数据,并进行相应的操作 } }); ``` 以上代码是一个简单的搜索音乐的示例,你可以根据 QQ 音乐官方 API 的文档,调用其他接口实现更多功能。记得根据官方文档获取正确的 API 地址和参数。 请注意,这只是一个简单的示例,并不能涵盖所有的细节和错误处理。在实际应用中,你需要考虑到网络请求的安全性、错误处理、线程管理等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hhzzcc_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值