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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

QQ音乐盒+baidu音乐盒

[复制链接]
yeakyang 发表于 2008-8-1 19:00:41 | 显示全部楼层 |阅读模式
1.QQ音乐盒和baidu 音乐盒都不是我做的,原地址见下面:
    https://discuz.dismall.com/thread-938308-1-3.html
      https://discuz.dismall.com/thread-964523-1-1.html
    我只是安装了这两个插件,用QQ音乐盒的播放器在个人主页听用baidu音乐盒里面的音乐
  呵呵,如果这两个插件的作者有意见的话,版主请删掉这个帖子吧

2.我对uch程序并不熟悉,php 程序也是刚接触不久。所以只是勉强把两个插件整合在了一起,但还是有问题(有时会乱码,点击QQ播放器的下一首好像没反应(好像是QQ播放器的问题),只能随机播放用户数据库中的音乐)。有人喜欢的话就自己整一整吧

3.想看效果就去http://www.lohas0756.com看看吧

4.制作方法
(1)先去最上面的地址安装这两个插件
(2)根目录space.php
   找到

  1. //处理
  2. include_once(S_ROOT."./source/space_{$do}.php");
复制代码
在它上面插入
  1. //权限判断
  2.         if(empty($_SGLOBAL['supe_uid']))
  3.         {
  4.                 echo "<script>window.parent.showmsg('请先登陆!');</script>";
  5.         }
  6.         else
  7.         {
  8.                 $uid = $_SGLOBAL['supe_uid'];
  9.                 $data = "";
  10.                 //检索当前用户
  11.                 $query = $_SGLOBAL['db']->query("SELECT data FROM ".tname('musiclist')." WHERE uid='$uid';");
  12.                 if($value = $_SGLOBAL['db']->fetch_array($query)) {
  13.                         $data = strip_tags($value['data']);
  14.                 }
  15.                 setcookie("musiclist", NULL);
  16.                 setcookie("musiclist", escape($data));        
  17.         }
  18.        
  19. function escape($str)  
  20. {      
  21.        preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);      
  22.        $ar    =    $r[0];   
  23.         foreach($ar   as   $k=>$v)      
  24.         {            
  25.            if(ord($v[0]) < 128)  
  26.                $ar[$k] = rawurlencode($v);

  27.             else   

  28.                $ar[$k]    =    "%u".bin2hex(iconv("GB2312","UCS-2",$v));   
  29.        }   
  30.        return    join("",$ar);   
  31. }
复制代码
功能是把baidu音乐盒放在用户数据库里面的音乐取出来,我不知道如何把这个数据传到space的模板里面去,所以就用了 cookie,escape是用来解决乱码问题的

(3)模板目录下的 headerr.htm(这个文件安装了QQ音乐盒才有)
把里面的function playerinit()改成如下样子,getCookie和GetRandomNum两个函数是新加进的
  1. function getCookie(objName){//获取指定名称的cookie的值
  2.     var arrStr = document.cookie.split("; ");
  3.     for(var i = 0;i < arrStr.length;i ++){
  4.      var temp = arrStr[i].split("=");
  5.      if(temp[0] == objName) return unescape(temp[1]);
  6.     }
  7. }
  8. function GetRandomNum(Min,Max){  
  9.          var Range = Max - Min;  
  10.          var Rand = Math.random();  
  11.          return(Min + Math.round(Rand * Range));  
  12. }
  13. function playerinit()
  14. {
  15. loop=true;
  16. userstop=false;
  17. var count=6;

  18. musiclist = unescape(getCookie('musiclist'));
  19. if(musiclist==""){

  20. }else{
  21.         var arry = musiclist.split("|_|_|");
  22.         count = arry.length;
  23.        
  24.         listURL = new Array(count);
  25.         RadioList = new Array(count);
  26.        
  27.         for(i=0;i<count;i++){
  28.                 var str = arry[i].split("|");
  29.                 listURL[i] = str[1];
  30.                 RadioList[i] = str[0];;
  31.         }
  32.         NowId=GetRandomNum(0,count-1);
  33.         musicSwf.SetVariable("musicName", RadioList[NowId]);
  34.         player.URL=listURL[NowId];
  35. }
  36. //音乐初始结束
  37. }
复制代码
(4)搞定
(5)
poplong 发表于 2008-8-1 20:59:32 | 显示全部楼层
没看明白,继续研究!
回复

使用道具 举报

jxdong 发表于 2008-8-1 21:03:41 | 显示全部楼层
回复

使用道具 举报

xy100200 发表于 2008-8-1 21:19:23 | 显示全部楼层
不错!
回复

使用道具 举报

lgms2008 发表于 2008-8-1 21:33:44 | 显示全部楼层
不错试用下
回复

使用道具 举报

 楼主| yeakyang 发表于 2008-8-2 16:51:38 | 显示全部楼层

..

插件还是用原来的那两个
单单只是把QQ播放器的音乐来源改成了数据库的而已.
回复

使用道具 举报

luring 发表于 2008-8-2 17:15:04 | 显示全部楼层























.
回复

使用道具 举报

yzc717 发表于 2008-8-14 14:34:53 | 显示全部楼层
期待早点解决所有问题。。。。
回复

使用道具 举报

aaaa54444 发表于 2011-12-14 23:33:06 | 显示全部楼层
我再顶下吧!呵呵!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 02:16 , Processed in 0.039772 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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