我正在创建一系列的视频教程,并希望防止用户快进并跳过某些部分。我将使用一个HTML5视频播放器,该播放器将用于桌面和iPad浏览器。理想情况下,我也希望这个播放器在iPhone上可以使用,但我知道你对手机上的视频没有控制权,因为它使用了iPhone的视频播放器。
如何防止用户在HTML5视频播放器上快进?
如何防止用户在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);
setInterval(getpos, 1000)
替换setInterval('getpos()', 1000)
才能使其正常工作。很棒的代码片段,谢谢! - jporcenalukplayer.currentTime
是否大于 curpos
,以防将进度重置为较早的时间。 - Adriaan Marain感谢您的回答,Rick。
我注意到用户可以拖动并保持选择器,这使得他们可以继续播放,因此我在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;
}
}
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;
}
});
我同意@Bart Kiers的观点,这不是一个很好的想法,但如果你一定要这样做,我可以想到一种方法:隐藏控件并提供自己的播放按钮,使用JavaScript启动视频。