当我尝试恢复JWPlayer视频时,它从一开始就开始了

When i try to resume JW Player video it starts at beginning

本文关键字:一开始 开始 恢复 视频 JWPlayer      更新时间:2023-09-26

我有一个视频暂停,如下所示:

jwplayer('video').onTime(function(event){
                    if ((event.position >= 19 && event.position < 20) || (event.position >= 29 && event.position < 30)){
                        jwplayer('video').pause();
                        $(".container").fadeOut(300);
                    }
                });

然后我的应用程序隐藏视频的容器,同时执行其他操作。稍后,我的应用程序将显示容器,然后尝试恢复它。

$(".container").show();
var currentPosition = Math.ceil(jwplayer('video').getPosition());
jwplayer('video').seek(currentPosition);

出于某种奇怪的原因,视频将从头开始。有人知道我做错了什么吗?

如果我使用控制台并尝试:

$(".container").show();

它似乎正在重新启动。我相信这场"秀"让它重新开始。

我把问题缩小了一点。当jquery将显示从无更改为块时(作为显示方法的一部分),视频将重新启动。

将简历位置存储在一个可从两个位置访问的变量中可能更容易,并查看绕过getPosition是否解决了问题

var resume_position = 0;
jwplayer('video').onTime(function(event){
    if ((event.position >= 19 && event.position < 20) || (event.position >= 29 && event.position < 30)){
        resume_position = event.position;
        jwplayer('video').pause();
        $(".container").fadeOut(300);
    }
});
...

$(".container").show();
jwplayer('video').seek(resume_position);

我找到了一个结合了一些想法的解决方案。如果我将视频的autostart属性设置为false,然后手动启动视频,似乎可以解决部分问题。

jwplayer('quest-video').setup({
            file: $("#quest-video").text(),
            title: 'Quest for the Golden Shield',
            width: '1000',
            height: '535',
            controls: 'false',
            fallback: 'false',
            mute: 'true',
            autostart: 'false'
        });
 jwplayer('quest-video').play();

然后,当我通过将可见性设置为隐藏等来隐藏和显示它时,它不会重新启动。

谢谢你的想法!