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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 13241|回复: 2

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

[复制链接]
发表于 2011-6-6 11:47:44 | 显示全部楼层 |阅读模式
官方QQ群:102348392 | 捐赠CMP
PHPWind是和Discuz同样优秀的论坛社区程序,整合方法也差不多

一, 下载和安装最新CMP4:
http://bbs.cenfun.com/thread-9895-1-1.html
下载安装包,解压和上传其中的cmp目录到PHPWind根目录即可

二,进入论坛管理,设置自定义标签代码

进入“全局” - “编辑器” - “自定义代码” - “添加代码格式”

标签代码:
  1. cmp
复制代码
标题:
  1. 插入mp3/flv/mp4
复制代码
图标文件名:
  1. cmp.gif
复制代码
自己找个图标,或下载这个图片保存到images/post/c_editor中即可
http://bbs.cenfun.com/static/image/common/cmp/cmp.gif
搜索模式:
  1. [tag={1},{2}]{3}[/tag]
复制代码
选第3个,因为要宽/高/地址3个参数,其实还需要更多,但它仅支持3个没办法
参数类型:默认
替换规则:

  1. <script type="text/javascript" src="cmp/cmp.js"></script>
  2. <script type="text/javascript">
  3. CMP.write("cmp","{1}","{2}","cmp/cmp.swf","skin=skins/mini/vplayer.zip&url=&lists=&context_menu=2&src={3}");
  4. </script>
复制代码
提示语言:

  1. 宽度
  2. 高度
  3. 音乐地址
复制代码
最后在“编辑器” - “基本设置” - “自定义代码格式” 选择开启
至此就可以在发表和编辑帖子时使用cmp标签插入音乐或视频了

这里还有热心朋友写的教程:
http://bbs.cenfun.com/thread-14434-1-1.html

================================================================
上面的整合是最基本最快的,但PHPWind在自定义这一点上做得不尽人意:
1,自定义标签按钮在编辑器上很隐蔽,还加上over下拉菜单,这是严重排外整合的表现(可对比DZ)
2,自定义标签参数填写是采用弹出脚本提示窗口一个个接受数据,这是极差的用户体验(可对比DZ和PW它自己的标签按钮)
每次填写浏览器都会拦截,要手动允许,然后再点第二遍
这种弹出是中断型,填写同时无法进行任何其他操作,只能取消和继续
填写时上下参数无法查看和修改,等等

其他不多说,有这“2”个问题就够了,所以推荐使用以下方式
直接使用PW它本身的媒体标签,只是把播放器替换成CMP即可
================================================================

ps:
发现用最新版PW它自己的媒体标签,在一个帖同时发MP3和flv,还有脚本错误解析不出来
把顺序调一下才正常(此处省略一些文字),而且发flv他是直接插入一个flash,根本无法播放
修正需要打开require/bbscode.php文件,找到function wplayer函数,它里面有
  1. (++$player_id == 1 ? "<script id="js_player" src="js/player.js"></script>" : '')
复制代码
也就是id为1才加载那脚本,但上面的问题是他这第一的位置之前也可能会调用,或者说他这里面逻辑有问题
不多说直接改为:
  1. (++$player_id >= 0 ? "<script id="js_player" src="js/player.js"></script>" : '')
复制代码
让它每次都加载,然后我们通过修改和优化js/player.js去实现去重复和性能优化(浏览器缓存不会重复加载,而判断是否定义过即可去重复)
还有PW里的自动播放,他不是设置自动播放,是设置是否显示,否则就显示一按钮
而且flash标签永远不支持自动播放,就算你设置了为1,他也自动改回0(本来想修正这个,找了半天还是...)


尽管诸如此类问题很多,但只要你按下面步骤进行修改,一样能实现flv的直接播放,以及CMP丰富多彩的皮肤和插件功能
PW自身媒体标签解析和播放的方法都在脚本文件js/player.js中,下面是修改步骤:

1,首先复制cmp/cmp.js文件并改名为player.js,然后覆盖pw原来的js/player.js文件(自己做备份)
2,打开它,在原来的代码后面添加以下代码即可:

  1. if(typeof window.player == "undefined") {
  2.         var player = function(id,url,width,height,type) {
  3.                 if (!IsElement('p_' + id)) {
  4.                         //CMP全局配置
  5.                         var flashvars = {
  6.                                         //播放地址
  7.                                         src : url,
  8.                                         //自动播放
  9.                                         auto_play : "1",
  10.                                         //不加载默认配置和列表
  11.                                         url : "",
  12.                                         lists : "",
  13.                                         //名称链接
  14.                                         label : "",
  15.                                         name : "",
  16.                                         link : "http://bbs.cenfun.com/",
  17.                                         //启用取样播放,如果mp3无需跨域可以关闭此项
  18.                                         sound_sample : "1",
  19.                                         //插件设置
  20.                                         plugins : "plugins/sharing.swf",
  21.                                         //皮肤
  22.                                         skin : "skins/mini/vplayer.zip"
  23.                         };
  24.                         if (type == "rm") {
  25.                                 flashvars.type = "3";
  26.                         } else if (type == "wmv") {
  27.                                 width = 600;
  28.                                 height = 200;       
  29.                         }
  30.                         var player = document.createElement('div');
  31.                         player.id  = 'p_' + id;
  32.                         player.style.width = width + "px";
  33.                         player.style.height = height + "px";
  34.                         player.style.margin = "3px 0px";
  35.                         player.innerHTML = CMP.create("cmp_" + id, "100%", "100%", "cmp/cmp.swf", flashvars, {wmode : "transparent"});
  36.                         setTimeout(function(){getObj(id).appendChild(player)},200);
  37.                 } else {
  38.                         try {
  39.                                 CMP.remove("cmp_" + id);
  40.                         } catch (e){
  41.                         }
  42.                         var p = getObj(id);
  43.                         p.removeChild(p.lastChild);
  44.                 }
  45.         };
  46. };
复制代码
其中更多CMP全局配置说明见:http://cmp.cenfun.com/cmp4/doc/config.htm
如果是rm格式这里不支持,上面是改为wmp类型去播放了,安装rm的wmp插件才可以播放
如果是mp3标签时,由于原始写死的宽高太小,这里自动将宽高设置改为了600和200
注意,测试时请先清理下浏览器缓存

至此,CMP4就已经基本完成整合了,不管使用自定义代码标签,还是原始的pw媒体标签,都能使用CMP进行播放


其他相关CMP整合教程:
http://bbs.cenfun.com/thread-15124-1-1.html
发表于 2011-6-6 12:03:45 | 显示全部楼层
沙发!
发表于 2011-6-7 12:55:20 | 显示全部楼层
强呀,呵收下了谢谢板凳!!

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

GMT+8, 2018-11-15 05:36 , Processed in 0.057138 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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