我正在使用jwplayer 6.8.4616。我不希望用户寻找他尚未观看的视频部分,允许寻找已经观看但无法找到好解的部分。
我在Google Chrome 39.0.2171.71 + ubuntu 14.04中尝试了JWPlayer Prevent SKipping forward unless already watched。它对我不起作用,除非我在该解决方案中将超时值设置为至少1500毫秒,但如果超时太长则会变为可见。
如果不是通过javascript,可以使用自定义皮肤或插件来完成。如果不是在我的版本中,它可以在更高版本的jwplayer中完成吗?
编辑:上述方法适用于MP4视频,但不适用于HLS流。
答案 0 :(得分:2)
从https://github.com/jwplayer/jwplayer/issues/977中采用了另一种方法,该方法包括重写jwPlayer的seek
方法。
这样,您无需等待搜索,而不必等待搜索完成然后“倒带”。
var player = jwplayer('container').setup({ file: 'video.mp4'});
player.on('ready', function() {
const originalSeek= player.seek;
player.seek= (newPos) => {
if (someCheckIsValid(newPos)){
originalSeek(newPos);
} else {
console.warn('sorry, you cant seek to that position');
}
}
}
答案 1 :(得分:0)
尝试这个更简单的嵌入,对于初学者:
<!DOCTYPE html>
<html>
<head>
<title>Disable Seek</title>
<script type='text/javascript' src='http://p.jwpcdn.com/6/8/jwplayer.js'></script>
<style type="text/css">
body { margin: 0; padding: 0 }
</style>
</head>
<body>
<div id="thePlayer"></div>
<script type="text/javascript">
jwplayer("thePlayer").setup({
image: "http://content.bitsontherun.com/thumbs/w5co0c24-480.jpg",
file: "http://content.bitsontherun.com/videos/w5co0c24-hV866gPy.mp4"
});
var maxPlayPosition = 0;
var seeking = false;
jwplayer().onTime(function (event) {
if (!seeking) maxPlayPosition = Math.max(event.position, maxPlayPosition)
}).onPlaylistItem(function () {
maxPlayPosition = 0
}).onSeek(function (event) {
if (!seeking) {
if (event.offset > maxPlayPosition) {
seeking = true;
setTimeout(function () {
jwplayer().seek(maxPlayPosition)
}, 100)
}
} else seeking = false
});
</script>
</body>
</html>