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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] 修改默认音频播放器为自定义样式cmp播放器支持DX1.5-3.1版本

[复制链接]
hhb121 发表于 2014-4-1 22:36:59 | 显示全部楼层 |阅读模式
本帖最后由 hhb121 于 2014-4-6 10:53 编辑

    分享给大家一个简单的关于cmp播放器的应用,这里说的“修改dx3.1默认音频播放器,替换为cmp播放器。”是指通过附件上传功能上传的音频文件,程序默认的播放器样式有点怪怪的,感觉不咋好看。

播放器演示效果:
http://www.wuyouzhijia.com/td-2-1-1.html

首先下载cmp播放器源码 大家自己百度吧。

我们需要修改的文件为 根目录/source/function/function_discuzcode.php 这个文件。

步骤1
首先打开 function_discuzcode.php 查找 如下代码

  1. <FONT size=3 face=新宋体>function parseaudio($url, $width = 400) {
  2. $url = addslashes($url);
  3.         if(!in_array(strtolower(substr($url, 0, 6)), array('http:/', 'https:', 'ftp://', 'rtsp:/', 'mms://')) && !preg_match('/^static\//', $url) && !preg_match('/^data\//', $url)) {
  4.   return dhtmlspecialchars($url);
  5. }</FONT>
复制代码

在这个代码上面添加:

  1. <FONT size=3 face=新宋体>function parsecmp($url, $width, $height, $autostart) {

  2. $id = 'player_'.random(3);

  3. $str = '<div id="'.$id.'" style="width:'.$width.'px;height:'.$height.'px;"></div>';

  4. $str .= '<script type="text/javascript" src="cmp/cmp.js"></script>';

  5. $str .= '<script type="text/javascript">';

  6. $str .= 'var flashvars = {';

  7. //不加载默认配置和列表

  8. $str .= 'url : "", lists : "", ';

  9. //皮肤

  10. $str .= 'skin : "skins/mini/vplayer.zip", ';

  11. //插件

  12. $str .= 'plugins : "plugins/sharing.swf", ';

  13. //是否自动播放

  14. $str .= 'auto_play : "'.$autostart.'", ';

  15. //单曲地址

  16. $str .= 'src : "'.$url.'" ';

  17. $str .= '};';

  18. $str .= 'var htm = CMP.create("cmp_'.$id.'", "100%", "100%", "cmp/cmp.swf", flashvars);';

  19. $str .= 'document.getElementById("'.$id.'").innerHTML = htm;';

  20. $str .= '</script>';

  21. return $str;

  22. }
  23. </FONT>
复制代码

步骤2
修改原来的parseaudio音乐标签解析函数::
  1. <FONT size=3 face=新宋体>function parseaudio($url, $width = 400) {
  2. $url = addslashes($url);
  3. if(!in_array(strtolower(substr($url, 0, 6)), array('http:/', 'https:', 'ftp://', 'rtsp:/', 'mms://')) && !preg_match('/^static\//', $url) && !preg_match('/^data\//', $url)) {
  4. return dhtmlspecialchars($url);
  5. }
  6. $ext = fileext($url);
  7. switch($ext) {
  8. case 'mp3':
  9. $randomid = 'mp3_'.random(3);
  10. return '<span id="'.$randomid.'"></span><script type="text/javascript" reload="1">$(\''.$randomid.'\').innerHTML=AC_FL_RunContent(\'FlashVars\', \'soundFile='.urlencode($url).'\', \'width\', \'290\', \'height\', \'24\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', \''.STATICURL.'image/common/player.swf\', \'quality\', \'high\', \'bgcolor\', \'#FFFFFF\', \'menu\', \'false\', \'wmode\', \'transparent\', \'allowNetworking\', \'internal\');</script>';
  11. case 'wma':
  12. case 'mid':
  13. case 'wav':
  14. return '<object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="'.$width.'" height="64"><param name="invokeURLs" value="0"><param name="autostart" value="0" /><param name="url" value="'.$url.'" /><embed src="'.$url.'" autostart="0" type="application/x-mplayer2" width="'.$width.'" height="64"></embed></object>';
  15. case 'ra':
  16. case 'rm':
  17. case 'ram':
  18. $mediaid = 'media_'.random(3);
  19. return '<object classid="clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" width="'.$width.'" height="32"><param name="autostart" value="0" /><param name="src" value="'.$url.'" /><param name="controls" value="controlpanel" /><param name="console" value="'.$mediaid.'_" /><embed src="'.$url.'" autostart="0" type="audio/x-pn-realaudio-plugin" controls="ControlPanel" console="'.$mediaid.'_" width="'.$width.'" height="32"></embed></object>';
  20. }
  21. }</FONT>
复制代码
替换为:
  1. <FONT size=3 face=新宋体>function parseaudio($url, $width = 400, $autostart = 0) {

  2. $autostart = $autostart !== '' ? 1 : 0;

  3. return parsecmp($url, $width, "240", $autostart);

  4. }</FONT>
复制代码
这里的高度为240px 你可以根据自己引用的播放器样式自由调整。
需要注意的是 调整 $width = 400 是无效的。

需要调整播放器的高度function_discuzcode.php中这里的400
  1. <FONT size=3 face=新宋体>if(strpos($msglower, '[/audio]') !== FALSE) {
  2. $message = preg_replace("/\[audio(=1)*\]\s*([^\[\<\r\n]+?)\s*\[\/audio\]/ies", $allowmediacode ? "parseaudio('\\2', 400)" : "bbcodeurl('\\2', '<a href="{url}" target="_blank">{url}</a>')", $message);
  3. }</FONT>
复制代码

大家可以自行查找。

注意其中调用路径cmp/cmp.js和cmp/cmp.swf默认是使用相对论坛根目录的相对路径,也可使用绝对路径
这里其实就是根据传入的音乐地址,以及宽高是否自动播放参数,生成一个CMP的插入脚本。




送大家一个已经修改好的懒人包,记得改后缀名,测试完整无误。这个是针对dx3.1的懒人包,其他的稍有不同,大家自行修改。




加价格了10金币。。。









本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
混世天尊 发表于 2014-4-5 19:14:02 | 显示全部楼层
破演示半天打不开
回复

使用道具 举报

 楼主| hhb121 发表于 2014-4-6 10:51:49 | 显示全部楼层
混世天尊 发表于 2014-4-5 19:14
破演示半天打不开

这种人,没有人叫你回帖。
回复

使用道具 举报

混世天尊 发表于 2014-4-6 21:02:25 | 显示全部楼层
hhb121 发表于 2014-4-6 10:51
这种人,没有人叫你回帖。

我三实话实说赫和 是有点慢嘛 我也没说什么啊
回复

使用道具 举报

 楼主| hhb121 发表于 2014-4-7 16:12:32 | 显示全部楼层
混世天尊 发表于 2014-4-6 21:02
我三实话实说赫和 是有点慢嘛 我也没说什么啊

是吗?原来是这样呀,那是网站的服务器不行。我得联系空间商了。。
回复

使用道具 举报

混世天尊 发表于 2014-4-8 02:08:45 | 显示全部楼层
能不能把你那播放器的背景分享下?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 21:53 , Processed in 0.037503 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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