5

我正在使用 JWPlayer 5.4,它是使用 javascript API 在页面上设置的。

我想做的是让用户只有在已经播放了视频的那部分时才能通过搜索栏快进/快退。

因此,如果用户是第一次观看视频,他们不能跳过当前位置,但是他们可以在视频播放的位置前后搜索。

我正在努力使用 API onTime 事件等来尝试计算数学以使其工作。

有谁知道如何做到这一点。

谢谢

4

2 回答 2

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;
    }   
 });
于 2012-08-01T19:22:03.163 回答
2

一段时间以来一直在使用@mal 的答案,但发现它在某些极端情况下会中断(例如单击并拖动)。可能是因为我们在 JW 播放器 8 上?

无论如何,如果有人仍在寻找这个问题的答案,那么有一个修改后的解决方案可以很好地覆盖它们。依赖于在查找发生后触发的查找处理程序

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;
});
于 2019-04-03T20:36:45.463 回答