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 相关文章推荐
基于SVG的web页面图形绘制API介绍及编程演示
Jun 28 Javascript
JS对象转换为Jquery对象实现代码
Dec 29 Javascript
jQuery实现html元素拖拽
Jul 21 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
Sep 20 Javascript
微信小程序 自定义消息提示框
Aug 06 Javascript
angularjs 动态从后台获取下拉框的值方法
Aug 13 Javascript
浅谈webpack4 图片处理汇总
Sep 12 Javascript
详解微信小程序支付流程与梳理
Jul 16 Javascript
webpack 如何解析代码模块路径的实现
Sep 04 Javascript
微信小程序加载机制及运行机制图解
Nov 27 Javascript
HTML+VUE分页实现炫酷物联网大屏功能
May 27 Vue.js
关于React Native 无法链接模拟器的问题
Jun 21 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
PHP开发文件系统实例讲解
2006/10/09 PHP
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
PHP中如何调用webservice的实例参考
2013/04/25 PHP
PHP_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
在网页中控制wmplayer播放器
2006/07/01 Javascript
javascript document.compatMode兼容性
2010/02/23 Javascript
Javascript 中的 &amp;&amp; 和 || 使用小结
2010/04/25 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
分享Angular http interceptors 拦截器使用(推荐)
2019/11/10 Javascript
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
python中join()方法介绍
2018/10/11 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
Python实现最常见加密方式详解
2019/07/13 Python
简单了解django索引的相关知识
2019/07/17 Python
QML使用Python的函数过程解析
2019/09/26 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
大学生优秀的自我评价分享
2013/10/22 职场文书
养殖行业的创业计划书
2014/01/05 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
面试复试通知单
2015/04/24 职场文书