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下的keyCode键码值表
Apr 10 Javascript
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
Mar 01 Javascript
详谈JavaScript 匿名函数及闭包
Nov 14 Javascript
javascript的tab切换原理与效果实现方法
Jan 10 Javascript
jQuery中dom元素上绑定的事件详解
Apr 24 Javascript
JavaScript中SetInterval与setTimeout的用法详解
Nov 10 Javascript
一道常被人轻视的web前端常见面试题(JS)
Feb 15 Javascript
浅谈Vue Element中Select下拉框选取值的问题
Mar 01 Javascript
Vue实现自定义下拉菜单功能
Jul 16 Javascript
jQuery cookie的公共方法封装和使用示例
Jun 01 jQuery
addEventListener()和removeEventListener()追加事件和删除追加事件
Dec 04 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
基于mysql的论坛(2)
2006/10/09 PHP
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
2009/09/05 PHP
fleaphp crud操作之findByField函数的使用方法
2011/04/23 PHP
php和javascript之间变量的传递实现代码
2012/12/19 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
php中current、next与reset函数用法实例
2014/11/17 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
基于Jquery实现表单验证
2020/07/20 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
Python open()文件处理使用介绍
2014/11/30 Python
Python做文本按行去重的实现方法
2016/10/19 Python
python列表list保留顺序去重的实例
2018/12/14 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
python3.7添加dlib模块的方法
2020/07/01 Python
python else语句在循环中的运用详解
2020/07/06 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
奥地利领先的在线药房:SHOP APOTHEKE
2019/10/07 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
小学教育毕业生自荐信
2013/11/18 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
python实现简易名片管理系统
2021/04/11 Python
MySQL性能指标TPS+QPS+IOPS压测
2022/08/05 MySQL