完美解决光线CMS支持快播播放器-土豆资源的方法
小弟最近想做一个电影网站玩玩,所以研究了一下影视开源程序,在网上找了几个比较好的开源程序:马克斯影视系统MAXCMS、飞飞影视系统PPVOD、光线影视管理系统GXCMS、天空网络电影系统SKYUC等,这几个也是站长下载频道推荐的几款。这几个我都先后进行了测试,不过我喜欢php+mysql,所以就没有选择asp的MAXCMS,又因为模板问题最后选择了使用光线。
通过各项测试,光线cms基本上没有什么大的问题,不过等到我准备大干一场的时候却发现光线cms只支持百度影音的资源,对于快播资源,土豆等资源不支持,让我很郁闷,因为小弟在平时看电影的时候喜欢用快播,而且百度最近搞了个百度影音浏览器和播放器绑定,用着实在很不爽啊!该怎么办呢?去官网,没找到答案,官方不愿意支持其他播放器那也实在没办法;去网上搜索,才发现很多使用光线cms的同志们都遇到了这个问题,可是没有真正的解决办法,最后发现张晓军这个牛人的博客有解决方法!哈哈,心花怒放啊!
按照步骤修改代码、上传、测试,却又发现了一个大问题:涉及到快播资源地址格式问题!!!
如果单独添加的播放地址qvod前面没有其他参数的格式,比如:qvod://423858029GOKKSHOPGH,这种地址快播可以正常播放,查看播放页面的播放地址为qvod://423858029;
但是如果添加的地址前面有XXX$参数的格式,比如:BD高清版$qvod://423858KKSHOP154531212313029,这种地址在快播就放不了,查看播放页面的获取的地址为$qvod://423858KKSHOP154531212313029,这种格式快播无法识别;
该怎解决呢?然后我对代码进行了修改,将获取到的地址前面的$过滤掉,OK解决了!
找到 core /Lib/Action/CmsAction.class.php原代码,替换为新的代码,105行到119 行(我的是1.5版本的)。
#FormatImgID_0#
原来的代码:
if($playarr){
$videoid = $playarr[0];
$videoji = $playarr[1]-1;
$player =' < script language="javascript" type="text/javascript" src="'.C('web_path').'temp/Js/player.js" > < /script>'."n";
if (C('user_pay') && in_array($array['cid'],C('user_paycid'))){
$player .='< div id="GxInstall" > < /div > < div id="GxPlayer" class="Userpay" > < /div >';
}else{
$player .=' < div id="GxInstall" > < /div > < div id="GxPlayer" class="Loading" > < /div > ';
$player .=' < script language="javascript" type="text/javascript" > '."n";
$player .='var $playlist="'.str_replace(array("rn", "n", "r"),'+++',$array['playurl']).'"'."n";
$player .=' < /script>'."n";
$player .=' < script language="javascript" src="'.C('web_path').'views/js/player.js" charset="utf-8" > < /script > ';
}
修改后的代码:
if($playarr){
$videoid = $playarr[0];
$videoji = $playarr[1]-1;
$player=explode('+++',str_replace(array("rn", "n", "r"),'+++',$array['playurl']));
$player=substr($player[$videoji],stripos($player[$videoji],'$'));// 获得当前页 视频地址
$player=str_replace("$","",$player);//过滤快播前面的$
if(C('user_pay') && in_array($array['cid'],C('user_paycid'))){
$player =' < script language="javascript" type="text/javascript" src="'.C('web_path').'temp/Js/player.js" > < /script>'."n";
$player .=' < div id="GxInstall" > < /div > < div id="GxPlayer" class="Userpay" > < /div > ';
}else{
if(stripos($player, 'bdhd://')!==false){ // 如果是百度影音
$player =' < script language="javascript" type="text/javascript" src="'. C('web_path').'temp/Js/player.js" > < /script> '."n";
$player .=' < div id="GxInstall" >
< div id="GxPlayer" class="Loading" > < /div > ';
$player .=' < script language="javascript" type="text/javascript" > '."n";
$player .='var $playlist="'.str_replace(array("rn", "n", "r"),'+++',$array['playurl']).'"'."n";
$player .=' < /script > '."n";
$player .=' < script language="javascript" src="'.C('web_path').'views/js/player.js" charset="utf-8" > < /script > ';
}elseif(stripos($player, 'qvod://')!==false){ //如果是qvod
$player = " < object classid='clsid:F3D0D36F-23F8-4682-A195-74C92B03D4AF' width='610' height='458'
id='QvodPlayer' name='QvodPlayer'
onError=if(window.confirm('请您先安装QvodPlayer软件,然后刷新本页才可以正常播放.')){
window.open(';)}else{self.location=';
} > < PARAM NAME='URL' VALUE='".$player."' > < PARAM NAME='AutoPlay' VALUE='1 ' > < /object > ";
}elseif(stripos($player, ';)!==false&&stripos($player, '.swf')!==false){ //如果是优酷、土豆等http 格式
$player =' < embed width="610" height="458" allownetworking="internal" allowscriptaccess="never" src="'.$player.'" quality="high" bgcolor="#ffffff" wmode="transparent" allowfullscreen="true" type="application/x-shockwave-flash" > ';
到这里,光线cms基本上完美支持了百度影音,快播,土豆,优酷等资源,哈哈,希望光线cms能够顺应民意,开发支持多种播放的好东西,欢迎大家分享交流,最近优化的小站www.kkshop.com.cn,欢迎指导!