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 相关文章推荐
JS在IE和FireFox之间常用函数的区别小结
Mar 12 Javascript
jQuery阻止冒泡和HTML默认操作
Nov 17 Javascript
JavaScript事件委托的技术原理探讨示例
Apr 17 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
Sep 06 Javascript
js实现背景图片感应鼠标变化的方法
Feb 28 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
Jan 05 Javascript
AngularJS基础 ng-selected 指令简单示例
Aug 03 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
Oct 26 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
Oct 28 jQuery
webpack项目调试以及独立打包配置文件的方法
Feb 28 Javascript
细说Vue组件的服务器端渲染的过程
May 30 Javascript
微信小程序基于高德地图查找位置并显示文字
Oct 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实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
用js+xml自动生成表格的东西
2006/12/21 Javascript
javascript 一些用法小结
2009/09/11 Javascript
jQuery对象与DOM对象之间的转换方法
2010/04/15 Javascript
JavaScript快速检测浏览器对CSS3特性的支持情况
2012/09/26 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
详解vue服务端渲染(SSR)初探
2017/06/19 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
Nuxt的路由动画效果案例
2020/11/06 Javascript
es5 类与es6中class的区别小结
2020/11/09 Javascript
分享一个常用的Python模拟登陆类
2015/03/29 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
python自动生成sql语句的脚本
2021/02/24 Python
HTML5+CSS3绘制锯齿状的矩形
2016/03/01 HTML / CSS
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
教师网络培训感言
2014/03/09 职场文书
银行主办会计岗位职责
2014/08/13 职场文书
2014年班组工作总结
2014/11/20 职场文书
大学生党性分析材料
2014/12/19 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书
python实现批量移动文件
2021/04/05 Python