jQuery JSON jPlayer实现QQ空间音乐查询

news/2024/7/10 23:49:44 标签: jQuery
  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接口

 

我们来解析音乐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"
  });
}

http://www.niftyadmin.cn/n/1732342.html

相关文章

Aptana Studio 介绍

1.Aptana 介绍 Aptana是一个非常强大、开源的专注于Ajax开发的开发工具。 它的特性包括&#xff1a; *JavaScript,JavaScript函数,HTML,CSS语言的Code Assist功能。 *Outliner(大纲)&#xff1a;显示JavaScript,HTML和CSS的代码结构。 *支持JavaScript&#xff0c;HTML&…

js中prompt()的用法

alert() 弹出个提示框 &#xff08;确定&#xff09; confirm() 弹出个确认框 &#xff08;确定&#xff0c;取消&#xff09; prompt() 弹出个输入框 让你输入东西 使用消息框 使用警告、提示和确认 可以使用警告、确认和提示消息框来获得用户的输入。这些消息框是 window…

jQuery复制节点实例

<script type"text/javascript">$(function(){$("ul li").click(function(){$(this).clone().appendTo("ul"); // 复制当前点击的节点&#xff0c;并将它追加到<ul>元素}) });</script> <script type"text/javascri…

如何让div总是显示在最上层,而不致于被其他div遮挡

若有多个div层&#xff0c;某个层一直在最上面可以在最上面的层加上样式&#xff1a;&#xff1a;position:absoulte;z-index:5555; 把它的位子给设置一下就可以了&#xff01; flash图层置于最上面&#xff1a; 自己&#xff1a;将<param name"wmode" value&quo…

jQuery中该如何防止冒泡事件

冒泡事件就是点击子节点&#xff0c;会向上触发父节点&#xff0c;祖先节点的点击事件。 下面是html代码部分&#xff1a;<body><div id"content">外层div元素<span>内层span元素</span>外层div元素</div><div id"msg"&g…

jQuery中的mouseleave和mouseout区别

$("li").each(function(i) {//删除的鼠标划过的显示与隐藏$(this).mouseover(function() {$(this).find(".del").fadeIn(10);})$(this).mouseleave(function() {$(this).find(".del").fadeOut(10);})})上面的代码如果不是用的mouseleave而是mous…

JQuery实现突破滑动效果实例

parents([expr])取得一个包含着所有匹配元素的祖先元素的元素集合&#xff08;不包含根元素&#xff09;。可以通过一个可选的表达式进行筛选。获取的是集合。 HTML 代码:<html><body><div><p><span>Hello</span></p><span>He…

Jquery 中has()方法以及与find()方法以及filter()方法的区别详解

has(selector选择器或DOM元素) 将匹配元素集合根据选择器或DOM元素为条件&#xff0c;检索该条件在每个元素的后代中是否存在&#xff0c;将符合条件的的元素构成新的结果集。 下面举一个例子&#xff1a;<ul><li>list item 1</li><li>list item 2&l…