首页 > 解决方案 > 如何解决 Jwplayer 在搜索时抛出错误并允许播放器从存储的本地时间加载

问题描述

我们正在尝试从本地存储中的存储时间获取我们的播放器负载。

我们不断收到此错误

“beforePlay”事件处理程序中的错误:TypeError:无法访问属性“seekRange”,m 为空

加载的代码如下:

let time = parseFloat(this.stored_time);
jwplayer().on('ready', function(e) {
   jwplayer().on('beforePlay', function(e) {
      jwplayer().seek(time);
   })
})

在准备就绪功能中,播放器应该准备好了。

在 beforePlay 块上的 play() 中有效,因此全局 jwplayer 函数可用

jwplayer().on('beforePlay', function(e) {
      jwplayer().play();
})

在 this.stored_time 中,它的值类似于 1743.616545。我已经尝试将类型转换为 Int 但没有区别 jwplayer().seek(time) 抛出上面的错误。

最初我尝试只使用 on ready 处理程序;当 jwplayer().seek(time) 运行时,播放器崩溃了。

关于如何解决这个问题的任何想法?

问候,史蒂夫

标签: runtime-errorjwplayerseek

解决方案


感谢阿莫尔奈克的回复!

我最终通过以下方式解决了这个问题:

// This occurs just before play, so using play() just initiates this step 
// slightly earlier; a better user experience

    jwplayer().on('beforePlay', function(e){
        jwplayer().play().seek(stored_time).pause();
        jwplayer().pause();
        utils.losChangeColours(stored_time);
    })

如果在 paused() 状态下使用 seek() 会抛出错误;它必须播放()。所以做 jwplayer().play().seek(time).pause() 它将平滑地设置存储的时间而不会出现缓冲。

希望这对其他人有帮助。

史蒂夫


推荐阅读