标签 播放 下的文章

SeaCMS播放地址中包含中文时解码错误导致无法播放

播放地址中包含中文时,正则获取到的内容可能是encodeURI编码后的,直接使用unescape解码会导致中文字符乱码而无法正常播放。
编辑/js/player/dplayer/dplayer.html文件,找到

if(r != null) return unescape(r[2]);

替换为:

if(r != null && r[2] !== undefined) return r[2].includes('%') ? decodeURI(r[2]) : unescape(r[2]);

根据播放地址字符串自动判断使用decodeURI或unescape解码。

DPlayer移动端播放时自动隐藏暂停按扭

问题:使用DPlayer在移动端观看视频时,播放器中间一直有一个暂停按扭。
解决:监听播放状态,点击播放时加上自动隐藏方法。

dp.container.addEventListener('mousemove', () => {
dp.controller.setAutoHide()
})
dp.container.addEventListener('click', () => {
dp.controller.setAutoHide()
})
//自动播放状态也要隐藏
dp.on('playing', function () {
console.log('playing')
dp.controller.setAutoHide()
})

SeaCMS播放页当前分集名称高亮显示

简单版
在播放页模板 play.html 最下面增加如下代码:

<style>.playon{ } .playon a{color:red;}</style>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>$("li a:contains('{playpage:part}')").closest("li").addClass("playon");</script>

第一行:定义css样式,根据需求填写css代码,如已引入css样式,本行可省略。
第二行:引入 jquery 插件,如果模板已经引入,可以省略这行。
第三行:遍历判断当前集数并附加css样式,playon 可以修改为自己的样式。

进阶版
多个播放来源根据播放来源判断高亮
在播放页模板 play.html 找到类似如下代码:

<ul .........
[playlist:link target=_self]
</ul>

先修改<ulclass 属性,增加 player-[playlist:ename]
如果已存在class样式,则在原有样式上新增
修改后类似:<ul class="player-[playlist:ename]"<ul class="aaa bbb player-[playlist:ename]"
然后在播放页模板 play.html 最下面增加如下代码:

<style>.playon{ } .playon a{color:red;}</style>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>$(".player-{playpage:ename}  a:contains('{playpage:part}')").closest("li").addClass("playon");</script>

SeaCMS播放页if判断无效的解决方法

常用判断(用于显示当前播放来源):

{playpage:playlist}<dd id="[playlist:ename]"{if:'{playpage:from}'<>'[playlist:from]'} style="display: none;"{else} style="display: block;"{end if}><p>资源来自<strong>[playlist:from]</strong>,[playlist:intro]</p><ul>[playlist:link]</ul></dd>{/playpage:playlist}

{playpage:playlist}{if:{playpage:from}==[playlist:from]}'#[playlist:ename]'{end if}{/playpage:playlist}

但上面的判断在最新版本,即6.46版中无效。

- 阅读剩余部分 -