jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例


Posted in Javascript onJune 17, 2013

jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
演示地址: http://bejson.com/demos/qqmusic/
代码下载:http://www.jqdemo.com/932.html
查询QQ音乐是很早前就出来的一个接口。
这里使用jQuery和jPlayer来实现QQ空间音乐的查询。
首先感谢bejson收集的各种有用的接口,当然也包含QQ空间音乐接口。
它的网址是:http://www.bejson.com/webInterface.php
我们要使用的接口位于bejson接口页面中的音乐接口栏里。
QQ音乐接口地址:
http://qzone-music.qq.com/fcg-bin/fcg_music_fav_getinfo.fcg?dirinfo=0&dirid=1&uin=QQ号&p=0.519638272547262&g_tk=1284234856
这里给出核心代码:
1.gtk参数的获取方式

function getGTK() { 
var str = "@HR3etVm80"; 
var hash = 5381; 
for (var i = 0, 
len = str.length; i < len; ++i) { 
hash += (hash << 5) + str.charAt(i).charCodeAt(); 
} 
var gtk = hash & 0x7fffffff; 
//document.getElementById("gtk").value = gtk; 
return gtk; 
}

2.请求QQ空间接口
function getMusicId() { 
var qqNo = document.getElementById("qqNo").value; 
var url = 'http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg?uin=' + qqNo + '&json=1&g_tk=' + getGTK(); 
$.getScript(url); 
}

3.回调拼装JSON
根据返回的JSON接口
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例 
我们来解析音乐JSON
function jsonCallback(data) { 
if(data.code==1){ 
alert(data.msg); 
return; 
} 
var songs = data.qqmusic.playlist.song; 
var dataStr = "["; 
for (var i = 0; i < songs.length; i++) { 
dataStr += "{"; 
dataStr += "title:'" + songs[i].xsong_name + "',"; 
dataStr += "mp3:'" + songs[i].xsong_url + "'"; 
dataStr += "}"; 
if (i < songs.length) { 
dataStr += ','; 
} 
} 
dataStr += ']'; 
eval("ds=" + dataStr); 
newPlayer(ds); 
}

最后我们调用jPlay播放器:
var playList; 
function newPlayer(data) { 
playList = new jPlayerPlaylist({ 
jPlayer: "#jquery_jplayer_1", 
cssSelectorAncestor: "#jp_container_1" 
}, 
data, { 
swfPath: "js", 
supplied: "mp3", 
wmode: "window" 
}); 
}
Javascript 相关文章推荐
setTimeout 不断吐食CPU的问题分析
Apr 01 Javascript
jQuery DOM操作小结与实例
Jan 07 Javascript
JS实现超简单的仿QQ折叠菜单效果
Sep 21 Javascript
jQuery滚动加载图片实现原理
Dec 14 Javascript
JS实现图片垂直居中显示小结
Dec 13 Javascript
Vue表单验证插件Vue Validator使用方法详解
Apr 07 Javascript
Vue实现动态显示textarea剩余字数
May 22 Javascript
vue实现点击当前标签高亮效果【推荐】
Jun 22 Javascript
vue router 配置路由的方法
Jul 26 Javascript
Vue.js图片预览插件使用详解
Aug 27 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
May 05 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
Jun 20 Javascript
JS图片无缝滚动(简单利于使用)
Jun 17 #Javascript
js二级地域选择的实现方法
Jun 17 #Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
Jun 17 #Javascript
JS控制文本框textarea输入字数限制的方法
Jun 17 #Javascript
一个简单的JS鼠标悬停特效具体方法
Jun 17 #Javascript
js特效,页面下雪的小例子
Jun 17 #Javascript
js弹出窗口之弹出层的小例子
Jun 17 #Javascript
You might like
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
JavaScript array常用方法代码实例详解
2020/09/02 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
让python在hadoop上跑起来
2016/01/27 Python
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
python删除文本中行数标签的方法
2018/05/31 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
Python交互环境下打印和输入函数的实例内容
2020/02/16 Python
python实现批量命名照片
2020/06/18 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
详解用selenium来下载小姐姐图片并保存
2021/01/26 Python
存储过程的优缺点是什么
2015/01/10 面试题
优秀应届毕业生自荐信
2013/11/16 职场文书
报社实习生自荐信
2014/01/24 职场文书
2014年电教工作总结
2014/12/19 职场文书
宇宙与人观后感
2015/06/05 职场文书
新闻稿格式范文
2015/07/18 职场文书
深入浅析React中diff算法
2021/05/19 Javascript
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL