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 相关文章推荐
基于JQuery制作的产品广告效果
Dec 08 Javascript
Javascript 多物体运动的实现
Dec 24 Javascript
jquery实现的横向二级导航效果代码
Aug 26 Javascript
浅析js中substring和substr的方法
Nov 09 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
Jan 14 Javascript
DropDownList实现可输入可选择(两种版本可选)
Dec 07 Javascript
老生常谈的跨域处理
Jan 11 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
Feb 22 Javascript
微信小程序图片宽100%显示并且不变形
Jun 21 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
Sep 12 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
Jul 04 Javascript
小程序自动化测试的示例代码
Aug 11 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控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
JS 实现获取打开一个界面中输入的值
2013/03/19 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
jQuery中队列queue()函数的实例教程
2016/05/03 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
解决vue的变量在settimeout内部效果失效的问题
2018/08/30 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
Python中的is和id用法分析
2015/01/26 Python
整理Python最基本的操作字典的方法
2015/04/24 Python
python实现数独算法实例
2015/06/09 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
如何通过python实现全排列
2020/02/11 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
巴西购物网站:Onofre Agora
2020/06/08 全球购物
掌上明珠Java程序员面试总结
2016/02/23 面试题
车工岗位职责
2013/11/26 职场文书
护理实习自我鉴定
2013/12/14 职场文书
新年晚会主持词
2014/03/24 职场文书
护士长竞聘书
2014/03/31 职场文书
保护环境的标语
2014/06/09 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书