我正在使用JWPlayer 5.4并使用javascript API在页面上进行设置。
我想做的是,只有当用户已经播放了视频的这一部分时,用户才可以通过搜索栏快进/重新播放。
因此,如果用户第一次观看视频时他们无法跳过当前位置,那么他们可以向前和向后搜索视频播放的位置。
我正在努力解决API onTime事件等问题,试图通过算法来完成这项工作。
有谁知道如何做到这一点。
由于
答案 0 :(得分:7)
我发现这一段时间,可能是在JWplayer论坛上。我想我添加了一些关于播放列表的内容。 因此,如果您或其他人仍在寻找答案,请考虑添加以下内容:
var maxPlayPosition = 0.0;
var seeking = false;
jwplayer().onTime(function(event)
{
if (!seeking)
{
maxPlayPosition = Math.max(event.position, maxPlayPosition);
}
})
.onPlaylistItem(function()
{
maxPlayPosition = 0.0;
}) // consider using only if you have playlists
.onSeek(function (event)
{
if (!seeking)
{
if (event.offset > maxPlayPosition)
{
seeking = true;
setTimeout(function ()
{
jwplayer().seek(maxPlayPosition);
}, 100);
}
}
else
{
seeking = false;
}
});
答案 1 :(得分:2)
使用@mal的答案已有一段时间了,但是发现在某些极端情况下(例如单击和拖动)它已经中断了。可能是因为我们使用的是JW Player 8?
无论如何,如果有人仍在寻找答案,可以得到一种经过改进的解决方案,将其覆盖得很好。依靠seeked处理程序,该处理程序在搜索发生后触发。
var seeking = false;
var maxPlayPosition = 0;
jwplayer().on('time', function (event) {
if (!seeking) {
maxPlayPosition = Math.max(event.position, maxPlayPosition);
}
}).on('seek', function (event) {
seeking = true;
}).on('seeked', function (event) {
var pos = jwplayer().getPosition();
if (pos > maxPlayPosition) {
jwplayer().seek(maxPlayPosition);
}
seeking = false;
});