博客
关于我
修改CKplayer.js 源码解决移动端浏览器全屏不能限制快进的问题
阅读量:433 次
发布时间:2019-03-06

本文共 1170 字,大约阅读时间需要 3 分钟。

在项目中实现视频播放并限制未观看部分的快进功能,需要综合运用ckplayer插件的配置和自定义扩展。以下是详细的解决方案:

  • 基本配置

    使用ckplayer插件时,设置timeScheduleAdjust属性为5,这样可以在PC端限制点击和拖动,防止未观看的视频部分被播放。配置方法为:

    player.changeConfig('config', 'timeScheduleAdjust', 5);
  • 移动端控制栏显示

    为了在移动端显示ckplayer风格的控制栏,设置mobileCkControls属性为true:

    player.changeConfig('config', 'mobileCkControls', true);
  • 限制全屏播放

    由于iOS浏览器默认全屏播放,需通过修改视频标签的属性来限制全屏功能。添加以下属性到视频标签中:

    这些属性会限制视频在移动端的全屏播放行为。

  • 拖动控制在全屏播放时生效

    在ckplayer.js源码中,监听视频的seek事件,特别是在移动端环境下,确保拖动操作不会播放未观看的内容。添加以下事件处理:

    var eventSeeking = function (event) {    if (document.body.clientWidth < 768) { // 移动端检测        // 内部逻辑,确保拖动时不播放超出范围        thisTemp.sendJS('seek', 'start');    }};

    这样即使在全屏播放时,也能限制未观看部分的拖动。

  • 限制左右键快进

    checkSlideLeft函数中,添加逻辑确保右键和左键操作无法跳过未观看部分。修改函数内部处理:

    case 5:    // 检查并限制滑块位置,避免快进    if (!this.timeSliderLeftTemp) {        this.timeSliderLeftTemp = sliderLeft / refer;    } else {        var timeSliderMax = sliderLeft / refer;        if (timeSliderMax > this.timeSliderLeftTemp) {            this.timeSliderLeftTemp = timeSliderMax;        }    }    if (newX > this.timeSliderLeftTemp * refer) {        return false;    }    break;
  • 通过以上步骤,可以在PC和移动端浏览器中有效限制视频的未观看部分快进功能,同时确保控制栏在移动端显示,且全屏播放不会违反限制。

    转载地址:http://gobyz.baihongyu.com/

    你可能感兴趣的文章
    Openlayers中使用Cluster实现点位元素重合时动态聚合与取消聚合
    查看>>
    Openlayers中使用Cluster实现缩放地图时图层聚合与取消聚合
    查看>>
    Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度)
    查看>>
    Openlayers中使用Overlay实现点击要素弹窗并且弹窗随之移动
    查看>>
    Vmware系列&虚拟机系列【仅供参考】:使用vCenter Auto Deploy制作ESXI系统封装(适合高版本vSphere)
    查看>>
    Openlayers中加载GeoJson文件显示地图
    查看>>
    Openlayers中加载Geoserver切割的EPSG:900913离线瓦片图层组
    查看>>
    Openlayers中加载Geoserver切割的EPSG:900913离线瓦片地图并显示
    查看>>
    Openlayers中多图层遮挡时调整图层上下顺序
    查看>>
    Openlayers中实现地图上打点并显示图标和文字
    查看>>
    Openlayers中实现地图上添加一条红色直线
    查看>>
    Openlayers中将某个feature置于最上层
    查看>>
    Openlayers中点击地图获取坐标并输出
    查看>>
    Openlayers中设置定时绘制和清理直线图层
    查看>>
    Openlayers入门教程 --- 万字长篇
    查看>>
    Openlayers各组件默认的css样式
    查看>>
    Openlayers图文版实战,vue项目从0到1做基础配置
    查看>>
    VM16+ubuntu20.04+win10如何固定虚拟机的ip (固定IP)
    查看>>
    OpenLayers学习一:地图加载(以类为接口)
    查看>>
    OpenLayers学习三:地图旋转及地图跳转到某一点的方式(以类为接口)
    查看>>