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 相关文章推荐
javascript 文件的同步加载与异步加载实现原理
Dec 13 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
Jun 24 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
Jun 12 Javascript
JS实现一个列表中包含上移下移删除等功能
Sep 24 Javascript
浅谈javascript中字符串String与数组Array
Dec 31 Javascript
详解JavaScript中的blink()方法的使用
Jun 08 Javascript
常见的javascript跨域通信方法
Dec 31 Javascript
jQuery3.0中的buildFragment私有函数详解
Aug 16 Javascript
JS实现漂亮的时间选择框效果
Aug 20 Javascript
vue+swiper实现组件化开发的实例代码
Oct 26 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
Jan 22 Javascript
Vue Router history模式的配置方法及其原理
May 30 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+javascript模拟Matrix画面
2006/10/09 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
php使用GD创建保持宽高比缩略图的方法
2015/04/17 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
js Html结构转字符串形式显示代码
2011/11/15 Javascript
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
2011/11/15 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
深入理解bootstrap框架之入门准备
2016/10/09 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
2018/01/08 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
TypeScript的安装、使用、自动编译的实现
2020/04/10 Javascript
Python简单实现安全开关文件的两种方式
2016/09/19 Python
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
浅析python继承与多重继承
2018/09/13 Python
Python文件如何引入?详解引入Python文件步骤
2018/12/10 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
2019/07/17 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
Pytorch to(device)用法
2020/01/08 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
实习生单位鉴定意见
2013/12/04 职场文书
继电保护工岗位职责
2014/01/05 职场文书
运动会广播稿30字
2014/01/21 职场文书
公证书标准格式
2014/04/10 职场文书
职工培训工作总结
2015/08/10 职场文书
终止合同协议书范本
2016/03/22 职场文书
一文教你快速生成MySQL数据库关系图
2022/06/28 Redis