【问题标题】:JW Player 7 pause on precise timeJW Player 7 在精确的时间暂停
【发布时间】:2015-12-16 18:57:17
【问题描述】:

我正在玩 YouTube 嵌入视频。我希望播放器在第三秒暂停。代码如下:

playerInstance.on('time', function(x) {
    if (x.position === 3){
        playerInstance.pause();
    }
});

但它并非每次都有效。有时它有效,有时则无效。这完全是随机的。为什么?

【问题讨论】:

    标签: youtube jwplayer jwplayer7


    【解决方案1】:

    根据正在播放的媒体类型和挂钩到 JW 播放器实例的其他事件,“onTime”事件每秒会触发多次,并报告到许多小数位。

    因此,“位置”不太可能正好是 3(这就是您用以下内容有效地表达的意思:'==' & '===')。

    使用 '>=' 会更健壮:

    playerInstance.on('time', function(x) {
        if (x.position >= 3){
            playerInstance.pause();
        }
    });
    

    但是,这意味着玩家将无法玩超过 3 秒,因此根据您的要求,您可能还需要添加额外的逻辑来满足以下需求:

    • 在暂停点后继续播放
    • 如果用户搜索超过 3 秒怎么办
    • 回溯,然后再次到达暂停点
    • 等等……

    可能更好的解决方案是将“位置”转换为整数值并进行直接比较。这意味着您不需要逻辑来处理超过暂停点的进度。但是,您需要逻辑来确保它仅在暂停点暂停一次。以下内容适合此:

    playerInstance.on('time', function(x){
        if(parseInt(x.position,10)===3){
            if(!playerInstance["pauseOnce"]){
                playerInstance["pauseOnce"]=true;
                playerInstance.pause();
            }
        }else{
            playerInstance["pauseOnce"]=false;
        }
    });
    

    【讨论】:

    • 我认为这将是一个很好的解决方案。我一直在尝试 >= 但没有考虑过包含其他逻辑。我认为确切的位置可以解决问题。但它的工作是随机的。
    • 进一步考虑这一点,我提供了更新,提供了更好的解决方案。
    【解决方案2】:

    在将 jwplayer 对象放入变量之前,我遇到过问题。我没有解释,但我敢冒昧地说,如果你继续使用 jwplayer(); 你可能会有更好的运气。显式调用。希望这会给您带来更一致的结果。也可以尝试使用“==”而不是“===”。你能告诉我们你是如何声明 playerInstance 的吗?

    【讨论】:

      【解决方案3】:

      我使用了推荐的声明 - JW Player website Api

      “我们鼓励开发人员停止使用 jwplayer() 语法,而是保留对播放器实例的引用。根据 JW Player 7 的设计方式,这实际上会在播放器设置过程中节省几毫秒的时间。”

      var playerInstance = jwplayer('container'); //jwplayer('container').pause(); // BAD! :( playerInstance.pause(); // Good :)

      我刚刚使用 jwplayer() 声明以及 '==' 和 '===' 测试了您的解决方案。但它仍然不起作用。

      我用我们的 2 声明为你准备了一个小提琴。

      http://jsfiddle.net/slk500/rftbtzpr/

      感谢您的帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-05
        相关资源
        最近更新 更多