Javascript HTML5视频播放器防止搜索

Javascript HTML5视频播放器防止搜索,javascript,html,html5-video,Javascript,Html,Html5 Video,我正在创建一系列视频教程,希望防止用户查找转发和跳过部分。我将使用HTML5视频播放器,用于桌面和iPad浏览器。理想情况下,我希望这也适用于iPhone,但我意识到你无法控制手机上的视频,因为它使用iPhone视频播放器 如何防止用户在HTML5视频播放器上查找转发 如果你真的想做这件让人吃惊的事,那么你可以利用这个属性。您必须使用JS实现您确实希望允许的任何控件 当然,用户可以随时查看>源以获取视频的URI并下载它。我同意@Bart Kiers的观点,这不是一个很好的主意,但是如果你必须这样

我正在创建一系列视频教程,希望防止用户查找转发和跳过部分。我将使用HTML5视频播放器,用于桌面和iPad浏览器。理想情况下,我希望这也适用于iPhone,但我意识到你无法控制手机上的视频,因为它使用iPhone视频播放器


如何防止用户在HTML5视频播放器上查找转发

如果你真的想做这件让人吃惊的事,那么你可以利用这个属性。您必须使用JS实现您确实希望允许的任何控件


当然,用户可以随时查看>源以获取视频的URI并下载它。

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

我只想阻止向前搜索。我的系统中有更多的代码,允许他们暂停并稍后返回。它记录当前位置并在加载时设置视频位置

我正在使用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);

谢谢你的回答,瑞克

我注意到,用户可以拖动并按住搜索器,这允许他们继续搜索,因此我将where not seek添加到getPos function.HTML 5和jQuery中

var video=document.getElementsByTagName('video')[0];
函数allowMove(){
$('input[id$=“btnNext”]')。removeAttr('disabled');
$('input[id$=“videoFlag”]').val(“1”);
}
函数getpos(){
如果(!(视频搜索)){
curpos=video.currentTime;
}
控制台日志(curpos)
}
1秒=设置间隔('getpos()',1000);
函数setPos(){
var ct=video.currentTime;
如果(电流互感器>电流互感器){
video.currentTime=curpos;
}

}
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;
  });
});
为什么不这样呢

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;
  }
});

“阻止用户向前搜索”:在我看来,这是个坏主意。如果用户看了一半,关闭浏览器,然后想看下一半呢?他/她将被迫再次观看第一部分。我打算在整个视频中设置检查点,以便在播放视频时将用户的进度保存到数据库中。如果用户返回页面,那么他们将从最后一个检查点开始。视频将在2-5分钟之间播放。我意识到取消向前搜索的功能不是一个好主意,尽管该项目要求用户在进入下一个教程之前观看整个视频。当然,人们可以查看>source并下载它,但本教程将教给他们一项必要的技能,这是下一篇教程的先决条件。我可以想出一个例子,迫使你观看整个视频-在线驾驶课程。。他们会安排时间,即使你看完了文本或视频,他们也不会让你进入下一节。那太糟糕了。但他们必须遵守法律规定的要求。任何需要确保用户实际查看整个演示文稿的CBT(计算机培训)系统都有这样的要求。如果你曾在一家每年接受法律培训(如反腐败或反贿赂等)的公司工作过,他们通常有类似的要求。如果你正在制作一个YouTube媒体网站,这可能是一件“恼人”的事情,但肯定有一些可靠的用例,在这些用例中,这种需求是至关重要的。没有理由因为你不了解他的用例而拒绝他的问题。我能想到的一个用途是视频广告预告,广告商不喜欢为你可以跳过的东西付费。他并不是真的问这是不是一个好主意。在很多用例中,用户不应该提前跳过。特别是,CBT系统将是一个很好的例子-1最后,我不确定这是否是jQuery,但我必须将
setInterval('getpos()',1000)
替换为
setInterval(getpos,1000)
,它才能工作。很好的片段,谢谢!卡萨布兰卡的上述评论也是同样的问题。这不是一个有用的答案。这个答案的死链接非常有效!