由于本人正在搭建帝国CMS为基础的有声小说站点,打算使用CMP4作为声音文件播放的媒体,并且还能播放视频,很是方便,于是动手整合。
查询了很多资料,包括晨风官方论坛,经过测试基本都没办法满足我的要求,不是没有连播的就是没有侦听,要不就是非帝国内部播放器调用方式,无法实现扣点。于是自己动手修改代码,最终达到了整合到内部调用(就像调用ECMS自己的播放器一样),并且能实现连播功能。当然这里给出的代码是没有隐藏播放地址的,隐藏代码,大家可以根据自己情况发挥。
帝国CMS整合CMP4,包括连播功能:一、安装ecms和CMP4
下载和安装最新CMP4,将下载的CMP4安装包解压,上传其中的cmp目录到系统e/DownSys/play/目录下即可;
二、整合CMP4到ecms
1.在ecms系统 e/downsys/play文件夹下新建CMP.PHP文件,并贴入如下代码:
?php
if(!defined('InEmpireCMS'))
{
exit();
}
//扣点
ViewOnlineKFen($showdown_r,$u,$u[$user_userid],$classid,$id,$pathid,$r);
$pathid1=$pathid-1;
$pathid2=$pathid+1;
$width=480;
$height=320;
$openwidth=$width+30;
$openheight=$height+100;
?
HTML
HEAD
TITLE?=$r[title]?/TITLE
META HTTP-EQUIV=Expires CONTENT=0
link rel=stylesheet href=js/player.css
script language=javascript
window.resizeTo(?=$openwidth?,?=$openheight?);
window.moveTo(100,100);
window.focus()
/script
BODY
script type=text/javascript src=cmp/cmp.js/script
script type=text/javascript
//CMP全局配置
var flashvars = {
//播放地址
src : ?=$trueurl?,
//自动播放
auto_play : 1,
//不加载默认配置和列表
url : ,
lists : ,
//名称链接
label : ?=$r[title]?,
name : ?=$r[title]?,
link : ?=$public_r['newsurl']?,
//启用取样播放,如果mp3无需跨域可以关闭此项
sound_sample : 1,
//插件设置
plugins : ?=$public_r['newsurl']?e/DownSys/play/cmp/plugins/sharing.swf,
//皮肤
skin : ?=$public_r['newsurl']?e/DownSys/play/cmp/skins/default.zip,//皮肤可以替换别的文件
api : cmp_loaded
};
CMP.write(cmp, 100%, 100%, cmp/cmp.swf, flashvars);
var cmpo;
function cmp_loaded(key) {
cmpo = CMP.get(cmp);
if (cmpo) {
//添加播放完成、点击上一曲、下一曲的侦听函数,更多侦听函数请访问晨风API事件列表
cmpo.addEventListener(model_state, state);
cmpo.addEventListener(view_prev, up);
cmpo.addEventListener(view_next, down);
}
}
function state(data) {
if (data == completed) window.location.href=?classid=?=$classid?id=?=$id?pathid=?=$pathid2?;//当播放完成时触发事件调用下一集
}
function up(data) {
window.location.href=?classid=?=$classid?id=?=$id?pathid=?=$pathid1?;//播放器上一集按钮,当然皮肤上要有
}
function down(data) {
window.location.href=?classid=?=$classid?id=?=$id?pathid=?=$pathid2?;//播放器下一集按钮,当然皮肤上要有
}
var htm = CMP.create(cmp, 100%, 100%, cmp/cmp.swf, flashvars, {wmode:opaque});
document.getElementById(player).innerHTML = htm;
/script
/body
/html
保存代码后,进入帝国cms后台管理中心 - 其他 - 下载模型相关 - 播放器管理 - 添加播放器,添加一个CMP4播放器支持,如下图
注意:皮肤地址和插件地址要写完整url地址否则无法加载!