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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 33232|回复: 27

[教程] 马克斯程序MaxCMS整合CMP4教程【支持显示多集列表】

[复制链接]
发表于 2011-5-26 23:03:20 | 显示全部楼层 |阅读模式
官方QQ群:102348392 | 捐赠CMP
马克斯程序(MaxCMS)是一套采用ASP+MSSQL/ACCESS架构的CMS系统,具有开源免费、安全强大、模板众多等优势
支持视频,新闻,模板,广告,留言评论等在线管理
本帖教大家整合CMP4播放器,增多一种播放选择,轻松架设自己的视频音乐站,有声小说连载站等

一,安装MaxCMS和CMP4

MaxCMS去官方下载即可:
http://www.maxcms.net/download.html
安装和运行的环境为IIS,需支持ASP+MSSQL/ACCESS
安装时请选择使用站内播放器,也可以在后台设置:系统-播放器设置-播放器选择-站内

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

二,整合CMP4到MaxCMS

1,为MaxCMS新增CMP的播放类型:
打开播放器类型配置文件inc/playerKinds.xml,按原有格式增加一行:

  1. <player open="1" sort="100" flag="cmp" des="mp3/flv/mp4"><intro><![CDATA[<a href="http://bbs.cenfun.com" target="_blank">需要下载CMP4播放器</a>]]></intro></player>
复制代码
打开admin/admin_inc.asp,找到函数Function getReferedId(str)按原有格式增加一行:

  1. if instr(str,"cmp")>0 then getReferedId = "cmp": exit function
复制代码
打开admin/imgs/main.js,找到函数function getReferedId(str)按原有格式增加一行:

  1. if(str.indexOf('cmp')>-1) return "cmp"
复制代码
至此,添加数据时的播放来源选项里就有CMP类型了

2,添加CMP载入脚本到模版页面
分别打开模版template/default/html/play.htmltemplate/default/html/openplay.html文件
按格式增加CMP的js脚本载入行:

  1. <script src="/{maxcms:sitepath}cmp/cmp.js"></script>
复制代码
3,添加CMP类型时的播放代码
分别打开admin/admin_makehtml.aspvideo/index.asp文件,找到viewplay函数名并替换为checkplay
然后打开js/play.js文件,添加这个函数以及CMP相关逻辑代码:

  1. var cmpo,nexturl;
  2. function cmp_loaded(key) {
  3.         cmpo = CMP.get("cmp");
  4.         if (cmpo) {
  5.                 cmpo.addEventListener("model_state", "cmp_model_state");
  6.         }
  7. }
  8. //状态完成事件,自动播放下一页
  9. function cmp_model_state(state) {
  10.         if (state == "completed") {
  11.                 if (nexturl) {
  12.                         window.location = nexturl;       
  13.                 }
  14.         }
  15. }
  16. function checkplay(n, m) {
  17.         n = parseInt(n);
  18.         m = parseInt(m);
  19.         var htm = "";
  20.         var list = VideoListJson;
  21.         var data = [];
  22.         var iscmp = false;
  23.         if(list.length > 0) {
  24.                 var subs = list[Math.min(n, list.length - 1)][1];
  25.                 data = subs[Math.min(m, subs.length - 1)].split('$');
  26.                 if (data[2] == "cmp") {
  27.                         iscmp = true;
  28.                         if (m + 1 < subs.length) {
  29.                                 //获取下一页地址
  30.                                 nexturl = urlinfo.replace("<from>", n).replace("<pos>", m + 1);
  31.                         }
  32.                         //多个时显示列表
  33.                         var arr1 = [];
  34.                         for (var i = 0; i < list.length; i ++) {
  35.                                 var suba = list[i];
  36.                                 var arr2 = [];
  37.                                 var urls = suba[1];
  38.                                 for (var j = 0; j < urls.length; j ++) {
  39.                                         var adda = urls[j].split('$');
  40.                                         var href = urlinfo.replace("<from>", i).replace("<pos>", j);
  41.                                         var str = adda[0];
  42.                                         if (n == i && m == j) {
  43.                                                 str = '<b>' + str + '</b>';
  44.                                         }
  45.                                         arr2.push('<a href="'+href+'" style="border:1px solid #cccccc;padding:5px 5px;">' + str + '</a>');
  46.                                 }
  47.                                 arr1.push('<div><div style="background:#f5f5f5;padding:0px 5px;"><b>' + suba[0] + '</b></div><div style="margin:5px 2px;">' + arr2.join(' ') + '</div></div>');
  48.                         }       
  49.                         htm = '<div>' + arr1.join('') + '</div>';
  50.                 }
  51.         }
  52.         if (iscmp) {
  53.                 //CMP类型加载CMP播放器
  54.                 document.write('<div id="cmparea" style="width:'+playerw+'px;height:'+playerh+'px"></div>' + htm);
  55.                 //CMP全局配置
  56.                 var flashvars = {
  57.                         //播放地址
  58.                         src : data[1],
  59.                         //自动播放
  60.                         auto_play : "1",
  61.                         //不加载默认配置和列表
  62.                         url : "",
  63.                         lists : "",
  64.                         //名称链接
  65.                         label : "",
  66.                         name : "CMP4",
  67.                         link : "http://bbs.cenfun.com/",
  68.                         //启用取样播放,如果mp3无需跨域可以关闭此项
  69.                         sound_sample : "1",
  70.                         //插件设置
  71.                         plugins : "plugins/sharing.swf",
  72.                         //皮肤
  73.                         skin : "skins/mini/vplayer.zip",
  74.                         api : "cmp_loaded"
  75.                 };
  76.                 var htm = CMP.create("cmp", "100%", "100%", "../cmp/cmp.swf", flashvars);
  77.                 document.getElementById("cmparea").innerHTML = htm;
  78.         } else {
  79.                 //其他播放器类型,调用原有函数
  80.                 viewplay(n, m);
  81.         }
  82. }
复制代码
以上代码已经实现多集自动连播,也就是播放完自动判断是否有下一集而进行跳转
更多CMP全局配置说明见:http://cmp.cenfun.com/cmp4/doc/config.htm
其中显示的多集列表,可以自己添加样式,更多功能可以自行二次开发

最后,更新系统缓存,CMP4就已经基本完成整合了,在后台添加CMP支持的音乐地址即可

其他相关CMP整合教程:
http://bbs.cenfun.com/thread-15124-1-1.html
发表于 2011-5-27 01:19:42 | 显示全部楼层
谢过!
发表于 2011-5-29 16:46:50 | 显示全部楼层
谢谢晨风老大 已经用上了
发表于 2011-5-29 18:16:25 | 显示全部楼层
好像没有加栽列表哦!
发表于 2011-5-29 21:34:29 | 显示全部楼层
本帖最后由 operchen 于 2011-5-29 21:53 编辑

我已经添加,列表好像不管用啊!再说换皮肤也不管用!!

希望与MAX联合开发,这样的话,可以互相学习,资源共享!更多让站长们有更多的受益
发表于 2011-6-18 18:27:19 | 显示全部楼层
本帖最后由 scand 于 2011-6-18 18:28 编辑

嘿嘿 老大发现个小错误
  1. if (m + 1 < list.length) {
  2.                                 //获取下一页地址
  3.                                 nexturl = urlinfo.replace("<from>", n).replace("<pos>", m + 1);
  4.                         }
复制代码
应该是这样吧
  1. if (m + 1 < subs.length) {
  2.                                 //获取下一页地址
  3.                                 nexturl = urlinfo.replace("<from>", n).replace("<pos>", m + 1);
  4.                         }
复制代码
list.length是不对的呀

点评

谢谢,已经修正  发表于 2011-7-31 21:47
发表于 2011-7-31 21:44:12 | 显示全部楼层
scand 发表于 2011-6-18 18:27
嘿嘿 老大发现个小错误应该是这样吧list.length是不对的呀

老大的的确弄错了~~  不能连播~ 这位兄弟改了下 可以连播了~ 我刚整合的~ 愁了 没土豆代理!
发表于 2011-8-1 10:02:13 | 显示全部楼层
也需要土豆代理 楼上的我们可以一起找个写个
发表于 2011-10-28 21:06:44 来自手机 | 显示全部楼层
很不错的00
发表于 2011-10-29 10:35:03 | 显示全部楼层
1m678 发表于 2011-5-27 01:19
谢过!

最后的,添加这个函数以及CMP相关逻辑代码: 这个放哪里呢,菜鸟啊,希望老大指点

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

GMT+8, 2018-10-23 14:06 , Processed in 0.066962 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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