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初学者的编写开发的七个细节
Jan 11 Javascript
如何确保JavaScript的执行顺序 之实战篇
Mar 03 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
Mar 22 Javascript
jQuery后代选择器用法实例
Dec 23 Javascript
javascript数组去重的方法汇总
Apr 14 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
May 31 Javascript
微信小程序自定义带价格显示日历效果
Dec 29 Javascript
vue.js 2.0实现简单分页效果
Jul 29 Javascript
JS数组方法concat()用法实例分析
Jan 18 Javascript
jquery实现直播视频弹幕效果
Feb 25 jQuery
js中switch语句的学习笔记
Mar 25 Javascript
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
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 adodb介绍
2009/03/19 PHP
php数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
php设计模式小结
2013/02/15 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
2014/04/01 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
全新Mac配置PHP开发环境教程
2016/02/03 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
兼容ie和firefox js关闭代码
2008/12/11 Javascript
jQuery autocomplete插件修改
2009/04/17 Javascript
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
常用一些Javascript判断函数
2012/08/14 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
Vue不能观察到数组length的变化
2018/06/08 Javascript
JS使用正则表达式提交页面验证的代码
2019/10/16 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
2020/04/21 Javascript
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
日本小田急百货官网:Odakyu
2018/07/19 全球购物
销售提升方案
2014/06/07 职场文书
护士自荐信范文
2015/03/25 职场文书
营业员岗位职责范本
2015/04/14 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
青年联谊会致辞
2015/07/31 职场文书
python爬不同图片分别保存在不同文件夹中的实现
2021/04/02 Python
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers