Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] [已发布]■■百度mp3歌词同步播放器■■-配套程序读取百度榜单歌曲列表

[复制链接]
 楼主| lonestone 发表于 2007-1-18 09:07:26 | 显示全部楼层
原帖由 传奇人物 于 2007-1-18 08:23 发表
楼主, 能改一下这个播放器吗?


看了吓,这个应该是早期版本,1.0的,代码不是很整齐,不过一样是可以兼容的,这个已经是经过了人家修改的,照我的修改了就不能使用搜索了。修改方法:

打开js/exobudpl.js,删除以下代码:
  1. //selectlist、、歌曲或歌手全名
  2. var requeststr=document.location.search;
  3. if(requeststr==""){
  4. document.write ("<script language="javascript" src="js\/29403940.js"><\/script>");

  5. }
  6. else if(requeststr=="?artist="){
  7. document.write ("<script language="javascript" src="js\/29403940.js"><\/script>");
  8. }
  9. else  //搜索清单
  10. {document.write ("<script language="javascript" src="http:\/\/hzau.131.tofor.com\/ll\/list1.asp" + requeststr +""><\/script>");}
复制代码

加入以下代码:
  1.    

  2. // ▽播放列表XML文件的地址,可以是url也可以是相对路径
  3. //用URL表示需要读取的百度音乐魔方的播放列表文件的地址
  4. //注意!!!!这里的xml只能放在bbs所在的同一个域名下,否则由于js的安全机制,是无法读取远程文件的
  5. var playListUrl = "../PlayList-Top500.xml";
  6. var maxTryTimes=20;//尝试20秒后即更换下一曲,以防止过慢的地址等待太长时间

  7. // check for XPath implementation
  8.     if( document.implementation.hasFeature("XPath", "3.0") )
  9.     {
  10.        // prototying the XMLDocument
  11.        XMLDocument.prototype.selectNodes = function(cXPathString, xNode)
  12.        {
  13.           if( !xNode ) { xNode = this; }
  14.           var oNSResolver = this.createNSResolver(this.documentElement)
  15.           var aItems = this.evaluate(cXPathString, xNode, oNSResolver,
  16.                        XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
  17.           var aResult = [];
  18.           for( var i = 0; i < aItems.snapshotLength; i++)
  19.           {
  20.              aResult[i] =  aItems.snapshotItem(i);
  21.           }
  22.           return aResult;
  23.        }

  24.        // prototying the Element
  25.        Element.prototype.selectNodes = function(cXPathString)
  26.        {
  27.           if(this.ownerDocument.selectNodes)
  28.           {
  29.              return this.ownerDocument.selectNodes(cXPathString, this);
  30.           }
  31.           else{throw "For XML Elements Only";}
  32.        }
  33.     }

  34.     // check for XPath implementation
  35.     if( document.implementation.hasFeature("XPath", "3.0") )
  36.     {
  37.        // prototying the XMLDocument
  38.        XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode)
  39.        {
  40.           if( !xNode ) { xNode = this; }
  41.           var xItems = this.selectNodes(cXPathString, xNode);
  42.           if( xItems.length > 0 )
  43.           {
  44.              return xItems[0];
  45.           }
  46.           else
  47.           {
  48.              return null;
  49.           }
  50.        }
  51.       
  52.        // prototying the Element
  53.        Element.prototype.selectSingleNode = function(cXPathString)
  54.        {   
  55.           if(this.ownerDocument.selectSingleNode)
  56.           {
  57.              return this.ownerDocument.selectSingleNode(cXPathString, this);
  58.           }
  59.           else{throw "For XML Elements Only";}
  60.        }
  61.     }



  62. var myDocument;
  63. if (document.implementation.createDocument){
  64. // Mozilla, create a new DOMParser
  65.         myDocument = new DOMParser();
  66.         myDocument = document.implementation.createDocument("","",null);

  67.         myDocument.async = false;
  68.         myDocument.load(playListUrl);
  69.         nodes = myDocument.documentElement.getElementsByTagName("Song");
  70.         for(var i=0; i<nodes.length; i++)
  71.         {
  72.                  var url = nodes[i].selectSingleNode("URL").textContent.split('|')[0];
  73.                  var name=nodes[i].selectSingleNode("Name").textContent;
  74.                  var artist=nodes[i].selectSingleNode("Artist").textContent;
  75.                  mkList(url,name+" - "+artist);   
  76.         }
  77. }
  78. else if (window.ActiveXObject){
  79.         // Internet Explorer, create a new XML document using ActiveX
  80.         // and use loadXML as a DOM parser.
  81.         myDocument = new ActiveXObject("Microsoft.XMLDOM")

  82.         myDocument.async = false;
  83.         myDocument.load(playListUrl);
  84.         nodes = myDocument.documentElement.childNodes;

  85.         for(var i=0; i<nodes.length; i++)
  86.         {
  87.                  var url = nodes[i].selectSingleNode("URL").text.split('|')[0];
  88.                  var name=nodes[i].selectSingleNode("Name").text;
  89.                  var artist=nodes[i].selectSingleNode("Artist").text;
  90.                  mkList(url,name+" - "+artist);   
  91.         }
  92. }

复制代码

打开js/exobud.js加入以下代码在最后:
  1. //播放智能控制,当缓冲时间过长,自动换曲
  2. var iTimeCount=0;
  3. function checkTryTimes()
  4. {
  5.         var ps = document.getElementById("Exobud").playState;
  6.         if(ps==6||ps==9)
  7.         {
  8.                 iTimeCount+=1;
  9.                 document.getElementById("disp2").innerHTML="已等待"+iTimeCount+"秒";
  10.         }

  11.         if(iTimeCount>maxTryTimes)
  12.         {
  13.                 playNext();
  14.                 iTimeCount=0;//重设状态检查计数
  15.                 document.getElementById("disp2").innerHTML="跳过无效地址";
  16.         }

  17. }
复制代码


打开index.htm,在</body>前加入:
  1. <script language="JavaScript">setInterval("checkTryTimes()",1000);</script>
复制代码


然后把列表PlayList-Top500.xml放在论坛根目录,就可以了吧。

[ 本帖最后由 lonestone 于 2007-1-18 11:34 编辑 ]
回复

使用道具 举报

coward 发表于 2007-1-18 09:34:17 | 显示全部楼层
樓主, 我對你既佩服有如滔滔江水連錦不絕,對你既欽敬亦有如黃河氾濫一發不可收拾!
回复

使用道具 举报

 楼主| lonestone 发表于 2007-1-18 15:46:30 | 显示全部楼层
欢迎大家到http://bbs.cnfdc.com.cn体验百度经典对唱250首的播放效果。

[ 本帖最后由 lonestone 于 2007-1-18 18:44 编辑 ]
回复

使用道具 举报

 楼主| lonestone 发表于 2007-1-18 19:16:22 | 显示全部楼层
原帖由 kybdragon 于 2007-1-18 08:35 发表
楼主的东东真是不错的   不过我现在的播放器是自己改的那个有点歌台  你的可以整合吗


我想是可以的,你分析下我的代码,修改的指示播放器的播放控制部分和列表读取部分。不影响业务逻辑部分。你可以试一下。
回复

使用道具 举报

xufeifly 发表于 2007-1-19 21:35:29 | 显示全部楼层
好贴 不得不收藏了阿
回复

使用道具 举报

奇跡の海 发表于 2007-1-19 21:37:23 | 显示全部楼层
好东西啊!太强了LZ
回复

使用道具 举报

dellha 发表于 2007-1-19 22:10:30 | 显示全部楼层
藏起来以后用,现在用的要自己加
回复

使用道具 举报

babyq 发表于 2007-1-19 22:13:12 | 显示全部楼层
回复

使用道具 举报

bingtaire 发表于 2007-1-19 22:23:24 | 显示全部楼层
你的论坛慢死了.
回复

使用道具 举报

kook12368 发表于 2007-1-19 22:24:52 | 显示全部楼层
收藏留用 :lol
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-5-17 11:29 , Processed in 0.099793 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表