晨风交流论坛_CMP_CChat_Flash_音乐_视频_播放器_live直播_聊天室

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 28319|回复: 32

[教程] Discuz整合CMP进行附件音乐或视频播放

[复制链接]
发表于 2011-4-27 14:18:05 | 显示全部楼层 |阅读模式
官方QQ群:102348392 | 捐赠CMP
Discuz支持附件媒体上传并用audio或media标签进行插入播放
但默认采用的是WMP播放器,仅Windows下且仅IE浏览器才支持,不能跨平台在其他浏览器使用
而视频播放采用的是老版JW,功能比较简单
这里介绍一个方法将默认播放器替换到CMP,以解决上面的跨平台问题,同时拥有CMP的强大自定义功能
比如皮肤,插件,频谱,歌词等等
整合后可以很轻松的架设一个基于Discuz+CMP的音乐站

一,首先在后台管理中设置附件上传环境和播放支持
1,进入“用户”管理中设置附件上传权限,“管理组”“用户组”里都有“附件相关”设置:
比如要允许查看、下载、发布附件,允许附件的最大尺寸,类型等
2,进入“全局”设置中的“上传设置”,打开“论坛附件”,开启“附件 URL 地址、媒体附件播放”

至此,论坛已经支持附件上传和播放了,例如:
上传附件后,我们可以使用attach标签进行附件下载
开启了附件URL地址后,可以在内容“添加附件地址”,如:
  1. attach://1.mp3
复制代码
后面是附件id和类型后缀,附件地址可以设置对应用户的下载权限

有了附件URL地址,就可以调用播放器进行播放了,如系统默认的插入音乐或视频标签:
  1. [audio]attach://1.mp3[/audio]
  2. [media=flv,400,300]attach://1.flv[/media]
复制代码
如果编辑器里没有这些标签,则需要在后台开启或设置权限

二,修改相关代码整合CMP进行播放
1, 安装CMP,下载最新CMP安装包:
http://bbs.cenfun.com/thread-9895-1-1.html
解压缩其中的cmp目录并上传到站点根目录
纯绿色静态文件,上传即可使用

2, 修改论坛默认的播放代码到调用CMP播放
打开DZ代码解析程序文件:
  1. source/function/function_discuzcode.php
复制代码
添加一个cmp解析函数:

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

修改原来的parseaudio音乐标签解析函数为:
  1. function parseaudio($url, $width = 400, $autostart = 0) {
  2.         $autostart = $autostart !== '' ? 1 : 0;
  3.         return parsecmp($url, $width, "240", $autostart);
  4. }
复制代码
其中高度是240,可以根据自己情况自定义

修改原来的parsemedia媒体标题解析函数里的flv部分为:
  1. case 'flv':
  2. case 'mp4':
  3.         return parsecmp($url, $width, $height, $autostart);
复制代码
其中的case 'mp4':是添加mp4类型支持

至此audio和media标签嵌入的音乐或视频将根据支持的后缀自动采用CMP进行播放
如果要自定义CMP的各种参数,可以修改parsecmp函数,设置相关参数即可
比如指定其他skin皮肤,添加一些plugins插件等等

其他相关CMP整合教程:
http://bbs.cenfun.com/thread-15124-1-1.html

发表于 2011-4-27 15:01:14 | 显示全部楼层
支持老大教程
发表于 2011-4-27 15:11:42 | 显示全部楼层
谢谢老大的享
发表于 2011-4-27 15:22:30 | 显示全部楼层
╭ ﹌╮╭ ∽╮ oοО○
(o"."o)(o-.-o)
(~~﹊︸ ̄︸ ̄︸)
( ◆ ◆囍◆ ◆ )
( ◆ ◆  ◆ ◆ )
( ◆ ◆  ◆ ◆ )
强烈支持楼主!!!
发表于 2011-4-27 18:34:20 | 显示全部楼层
终于前排了,哈哈,我的站就是DZ1.5X
发表于 2011-4-28 21:39:37 | 显示全部楼层
本帖最后由 baifebbb 于 2011-4-28 22:41 编辑

的确强大,不知怎么调用歌词。
发表于 2011-4-28 23:18:03 | 显示全部楼层
顶!出来了,改天弄下!哈哈!
发表于 2011-4-29 23:22:12 | 显示全部楼层
哇这么牛这样都可以做到
发表于 2011-5-3 10:18:07 | 显示全部楼层
太好了
强烈支持
发表于 2011-5-12 11:48:14 | 显示全部楼层
本帖最后由 wangzhi9074 于 2011-5-12 11:48 编辑

老大已经成功使用了cmp4播放器,但是无法居中,代码是居中的,但是最后显示总是居左。如:http://lqgz.vicp.net:81/home/for ... &extra=page%3D1

QQ|客服QQ44023478|Archiver|手机版|小黑屋|晨风交流论坛 ( 粤ICP备05008793号 )

GMT+8, 2018-8-16 15:44 , Processed in 0.059556 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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