ckplayerX新版本是有试看试播功能的,新版本不需要插件也可以播放m3u8格式.技术点主要是怎么在帖子中判断用户是vip会员组.
一,后台, 界面.编辑器设置,Discuz! 代码,建立ck标签,点击详情,里面的替换内容填以下代码
<script type="text/javascript" src="ckplayer/ckplayer.js" charset="UTF-8"></script>
<div id="ckvideo" style="width: 760px;height: 500px;"></div>
<script type="text/javascript">
var videoObject={container:'#ckvideo',variable:'player',flashplayer:false,loaded: 'loadedHandler',video:{file:'{1}',type:'video/m3u8'}};
var player=new ckplayer(videoObject);
</script>
二,上传到根目录三个提示登录的小图片.
login_01.png
login_02.png
login_03.png
三,上传ckplayer 插件
ckplayer目录整体放在根目录中.目录中需要直接包含ckplayer.js文件等其它一些文件,目录文件结构为
四,修改模板/template/使用中的模板目录/forum/viewthread_node_body.htm
打开上面的模板.在最上面增加下面的几行
注意,$_G[group][groupid]==21 的21表示分组编号为21的才行vip会员组,可以修改为其它会员组.
59行有个 t >= 4 表示试看4秒.可以修改
<!--{eval
if($_G[group][groupid]==21)echo "<script>var loginOrNo = true; </script>";else echo "<script>var loginOrNo = false; </script>";
}-->
<script type="text/javascript">
var elementLogin = null; //是否存在提示层
//var loginOrNo = false; //是否已登录,默认是没有登录
var loginShow = false; //提示层是否是显示状态
function loadedHandler() { //播放器加载后会调用该函数
player.addListener('time', timeHandler); //监听播放时间,addListener是监听函数,需要传递二个参数,'time'是监听属性,这里是监听时间,timeHandler是监听接受的函数
player.addListener('play', playHandler); //监听播放状态
player.addListener('full', fullHandler); //监听全屏切换
}
function playHandler() { //监听播放状态
if(loginShow) {
player.videoPause();
}
}
function fullHandler(b) { //监听全屏切换
if(loginShow && elementLogin) {
player.deleteElement(elementLogin);
elementLogin = null;
window.setTimeout('showLogin()', 200);
}
}
function timeHandler(t) { //监听播放时间
if(t >= 4 && !loginOrNo) { //如果播放时间大于1,则又没有登录,则弹出登录/注册层
player.videoPause();
if(!loginShow && !elementLogin) {//elementLogin提示层
showLogin();
}
}
}
function showLogin() { //显示登录/注册层
loginShow = true;
var meta = player.getMetaDate();
var x = (meta['width'] - 307) * 0.5;
var y = (meta['height'] - 39) * 0.5 - 80;
var attribute = {
list: [ //list=定义元素列表
{
type: 'image', //定义元素类型:只有二种类型,image=使用图片,text=文本
file: 'login_01.png', //图片地址
radius: 0, //图片圆角弧度
width: 140, //定义图片宽,必需要定义
height: 39, //定义图片高,必需要定义
alpha: 1, //图片透明度(0-1)
marginLeft: 0, //图片离左边的距离
marginRight: 0, //图片离右边的距离
marginTop: 0, //图片离上边的距离
marginBottom: 0 //图片离下边的距离
},
{
type: 'image', //定义元素类型:只有二种类型,image=使用图片,text=文本
file: 'login_02.png', //图片地址
radius: 0, //图片圆角弧度
width: 69, //定义图片宽,必需要定义
height: 39, //定义图片高,必需要定义
alpha: 1, //图片透明度(0-1)
marginLeft: 0, //图片离左边的距离
marginRight: 0, //图片离右边的距离
marginTop: 0, //图片离上边的距离
marginBottom: 0, //图片离下边的距离
clickEvent: 'javaScript->userLogin()'
},
{
type: 'image', //定义元素类型:只有二种类型,image=使用图片,text=文本
file: 'login_03.png', //图片地址
radius: 0, //图片圆角弧度
width: 70, //定义图片宽,必需要定义
height: 39, //定义图片高,必需要定义
alpha: 1, //图片透明度(0-1)
marginLeft: 0, //图片离左边的距离
marginRight: 0, //图片离右边的距离
marginTop: 0, //图片离上边的距离
marginBottom: 0, //图片离下边的距离
clickEvent: 'javaScript->userReg()'
},
{
type: 'image', //定义元素类型:只有二种类型,image=使用图片,text=文本
file: 'login_04.png', //图片地址
radius: 0, //图片圆角弧度
width: 28, //定义图片宽,必需要定义
height: 39, //定义图片高,必需要定义
alpha: 1, //图片透明度(0-1)
marginLeft: 0, //图片离左边的距离
marginRight: 0, //图片离右边的距离
marginTop: 0, //图片离上边的距离
marginBottom: 0 //图片离下边的距离
}
],
x: x, //元件x轴坐标,注意,如果定义了position就没有必要定义x,y的值了,支持数字和百分比
y: y, //元件y轴坐标
alpha: 1, //元件的透明度
backgroundColor: '0x000000', //元件的背景色
backAlpha: 0.1, //元件的背景透明度(0-1)
backRadius: 0 //元件的背景圆角弧度
}
elementLogin = player.addElement(attribute);
}
function userLogin() {
window.location.href="member.php?mod=register";
//alert('点击了登录按钮');
}
function userReg() {
window.location.href="member.php?mod=register";
//alert('点击了注册按钮');
}
function loginTrue() { //附加的处理用户登录后执行的动作
loginOrNo = true;
if(loginShow && elementLogin) {
player.deleteElement(elementLogin);
elementLogin = null;
loginShow = false;
player.videoPlay();
}
}
</script>