苹果CMS V10播放页模板开发与完整调用代码教程
发布时间:2024-10-13共13人阅读
一、播放页基础文件信息
苹果CMS V10视频播放页独立模板文件存放路径固定,为站点播放核心页面,自带完整影片数据与集数播放参数,支持播放器渲染、分集切换、权限拦截等功能。
模板路径:
html/vod/play.html页面AID:15
核心数据变量:当前影片所有数据统一通过 $obj 数组获取
必填参数:id(视频ID,页面正常访问必备参数)
播放页与视频详情页数据结构一致,可通过 {:print_r($obj)} 打印全部影片字段,按需调取标题、封面、演员、简介、播放组、集数等数据。
二、播放页核心参数与播放组字段
播放页专属参数可精准获取当前播放组、集数、上下集链接、服务器信息、分集列表等核心数据,是实现分集播放、上下集切换的基础。
{$param.sid} 当前播放组序号
{$param.nid} 当前集数序号
{$obj.player_info.link_next} 下一集链接(最后一集自动返回当前页)
{$obj.player_info.link_pre} 上一集链接(第一集自动返回当前页)
{$obj['vod_play_list'][$param['sid']]} 获取当前播放组整体数据
{$obj['vod_play_list'][$param['sid']]['player_info']} 播放器配置信息
{$obj['vod_play_list'][$param['sid']]['server_info']} 播放服务器组信息
{$obj['vod_play_list'][$param['sid']]['url_count']} 当前播放组总集数
{$obj['vod_play_list'][$param['sid']]['urls']} 当前播放组所有分集数据
{$obj['vod_play_list'][$param['sid']]['urls'][$param['nid']]} 当前播放集数完整数据
{$obj['vod_play_list'][$param['sid']]['urls'][$param['nid']]['name']} 当前集数名称
{$obj['vod_play_list'][$param['sid']]['urls'][$param['nid']]['url']} 当前集数播放地址下载页可复用以上调用逻辑,只需将字段内 vod_play_list 替换为 vod_down_list 即可适配下载组数据调用。
三、播放器标准调用方式
页面渲染播放器必须同时引入两个系统变量,缺一不可,系统自动解析播放地址、适配播放器内核,完成视频渲染。
{$player_data} 视频播放核心解析数据
{$player_js} 播放器加载渲染脚本四、播放页关联内容调取代码
播放页可自动调取当前影片的关联视频与关联文章,提升页面内容丰富度与用户浏览深度,代码可直接嵌入模板使用。
<h2>与<strong>“{$obj.vod_name}”</strong>关联的视频</h2>
<ul class="img-list dis">
{maccms:vod num="6" ids="'.$obj['vod_rel_vod'].'" order="desc" by="time"}
<li><a href="{:mac_url_vod_detail($vo)}" title="{$vo.vod_name}"><img src="{:mac_url_img($vo.vod_pic)}" alt="{$vo.vod_name}"/><h2>{$vo.vod_name}</h2><p></p><i>{$vo.vod_version}</i><em></em></a></li>
{/maccms:vod}
</ul>
<h2>与<strong>“{$obj.vod_name}”</strong>关联的文章</h2>
<ul class="img-list dis">
{maccms:art num="6" ids="'.$obj['vod_rel_art'].'" order="desc" by="time"}
<li><a href="{:mac_url_art_detail($vo)}" title="{$vo.art_name}"><img src="{:mac_url_img($vo.art_pic)}" alt="{$vo.art_name}"/><h2>{$vo.art_name}</h2><p></p><i>{$vo.vod_from}</i><em></em></a></li>
{/maccms:art}
</ul>五、版权跳转功能实现代码
1、全局影片版权跳转
适配整部影片版权跳转,读取后台视频跳转链接字段,访问播放页自动跳转指定地址。
<script>
{if condition="$obj.vod_jumpurl neq ''"}
location.href='{$obj.vod_jumpurl}';
{/if}
</script>2、单集独立版权跳转
支持单集单独设置跳转链接,仅对标记 jump:// 前缀的集数生效,精准规避单集版权问题。
<script>
{if condition="strpos($obj['vod_play_list'][$param['sid']]['urls'][$param['nid']]['url'],'jump:')!==false "}
location.href='{$obj['vod_play_list'][$param['sid']]['urls'][$param['nid']]['url']|str_replace="jump:","http:",###}';
{/if}
</script>六、iframe试看播放器模板(player.html)
iframe播放器模板仅在后台开启试看、付费点播模式时生效,用于限制免费观看时长、拦截未付费用户,文件独立存放,无需页面AID参数,沿用播放页数据逻辑,同样依赖 {$player_data} 与 {$player_js} 完成渲染。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
<title>iframe播放器</title>
<style>*{word-wrap:break-word;outline:none} html,body{width:100%;height:100%;background:#000;color:#fff;}
.player_popeom{ width:500px;height:150px; position:absolute;text-align:center; top:50%;left:50%;margin:-75px 0 0 -250px; }
.player_popeom a{ padding: 10px 16px;
font-size: 18px;
line-height: 1.3333333;
border-radius: 6px; color: #fff; background-color: #5cb85c; border-color: #4cae4c;
}
</style>
<script src="{$maccms.path}static/js/jquery.js"></script>
<script>var maccms={"path":"__ROOT__","mid":"{$maccms['mid']}","url":"{$maccms['site_url']}","wapurl":"{$maccms['site_wapurl']}","mob_status":"{$maccms['mob_status']}"};</script>
</head>
<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
{$player_data}
{$player_js}
{if condition="$popedom.code gt 1"/}
<div class="player_showtry" style="display:none;">
<div class="player_box">
<div class="player_popeom">
{if condition="$obj.vod_points_play eq 0"}
<p>试看{$popedom.trysee}分钟结束,完整观看本影片需要升级会员组,请升级后观看。</p>
<small>提示:购买VIP会员组,享受超级权限,谢谢支持。</small>
<p><a href="{:url('user/index')}" target="_blank">会员中心</a> <a href="{:url('user/upgrade')}" target="_blank">马上升级</a></p>
{else/}
<p>试看{$popedom.trysee}分钟结束,完整观看本影片需要花费{$obj.vod_points_play}积分,请支付后观看。</p>
<small>提示:一次支付,永久观看,不重复扣费,谢谢支持。</small>
{if condition="$user.group.group_id eq 1"}
<p><a href="{:url('user/login')}" target="_blank">马上登录</a></p>
{else/}
<p><a href="{:url('user/buy')}" target="_blank">马上充值</a> <a href="javascript:;" onclick="window.parent.MAC.User.BuyPopedom(this)" data-id="{$obj.vod_id}" data-sid="{$param.sid}" data-nid="{$param.nid}" data-type="4" data-mid="1">确认购买</a></p>
{/if}
{/if}
</div>
</div>
</div>
<script>
//试看时长倒计时拦截
window.setTimeout(function(){
$('.MacPlayer').html( $('.player_showtry').html() );
},1000*60*{$popedom.trysee});
</script>
{/if}
</body>
</html> 