繁体   English   中英

HTML5 视频播放器防止搜索

[英]HTML5 video player prevent seeking

我正在创建一系列视频教程,并希望防止用户向前搜索和跳过部分。 我将使用用于桌面和 iPad 浏览器的 HTML5 视频播放器。 理想情况下,我希望它也能在 iPhone 上运行,但我意识到您无法控制手机上的视频,因为它使用 iPhone 视频播放器。

如何防止用户在 HTML5 视频播放器上向前搜索?

Video.js 的另一个示例:

videojs('example_video_1').ready(function(){
  var player = this;
  var previousTime = 0;
  var currentTime = 0;
  var seekStart = null;

  player.on('timeupdate', function(){
    previousTime = currentTime;
    currentTime = player.currentTime();
  });

  player.on('seeking', function(){
    if(seekStart === null) {
      seekStart = previousTime;
    }
  });

  player.on('seeked', function() {
    if(currentTime > seekStart) {
      player.currentTime(seekStart);
    }
    seekStart = null;
  });
});

我只是想阻止向前寻求。 我的系统中有更多代码可以让他们暂停并稍后返回。 它记录当前位置并在加载时设置视频位置。

我正在使用 video.js。 我尝试使用 timechange 事件,但它在查找之前触发。 因此,我使用间隔来每秒抓取当前位置。 如果搜索位置大于当前位置,则将其设置回原处。 效果很好。

var player = null;
var curpos = 0;
videojs('player').ready(function(){
  player = this;
});

player.on('seeking', function () {
  var ct = player.currentTime();
if(ct > curpos) {
  player.currentTime(curpos);
}
});

function getpos() {
  curpos = player.currentTime();
}
onesecond = setInterval(getpos, 1000);

如果你真的想做这种令人惊讶的用户敌对的事情,那么你可以使用控件属性。 您将必须实现您希望允许使用 JS 的任何控件。

当然,用户总是可以通过查看 > source来获取视频的 URI 并下载它。

感谢您的回答瑞克。

我注意到用户可以拖动并按住搜索器,这允许他们继续,所以我添加了不寻求 getPos 函数的地方。HTML 5 和 jQuery。

 var video = document.getElementsByTagName('video')[0]; function allowMove() { $('input[id$="btnNext"]').removeAttr('disabled'); $('input[id$="videoFlag"]').val("1"); } function getpos() { if (!(video.seeking)) { curpos = video.currentTime; } console.log(curpos) } onesecond = setInterval('getpos()', 1000); function setPos() { var ct = video.currentTime; if (ct > curpos) { video.currentTime = curpos; } }

我同意@Bart Kiers 的观​​点,这不是一个好主意,但如果您必须这样做,我可以想到一种方法:隐藏控件并提供您自己的播放按钮,使用 JavaScript 启动视频。

为什么不这样?

var video = document.getElementById("myVideo");
var counter = 0;

video.on('timeupdate', function() {
  if (video[0].paused == false) {
    counter = video[0].currentTime;
  }
}

video.on('seeking', function(e) {
  if ( parseInt(counter, 10) != parseInt(video[0].currentTime, 10) ) {
    video[0].currentTime = counter;
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM