我们使用 JWPlayer 进行视频播放,在任何页面中只嵌入一个播放器,突然它停止执行回调,尽管在注册监听器时不会抛出错误(对于 onPause、onPlay 和 onComplete)。
嵌入继续正常工作。播放器响应用户交互以暂停、播放等。但是,当这些发生时,不会触发回调。
作为故障排除的一部分,我用非常简单的故障排除功能替换了回调,例如
jwplayer().onPause( function(event) { alert('pause!'); return true; } );
在 IE 和 Chrome 的 JavaScript 控制台中,没有显示 JavaScript 错误。对每个 JWPlayer JavaScript 调用的故障排除语句(警报)显示没有抛出任何错误。将所有对 JWPlayer 的调用包装在 try/catch block 中并警告任何创建的错误消息不会执行任何操作。
在页面加载后的 JavaScript 控制台中,执行 jwplayer().play() 等控制方法会表现出以下行为:不会更改播放器的实际播放状态,但会触发回调。
JWPlayer 版本为“5.9.2156(授权版本)”。
编辑:另一个线索:在 JavaScript 控制台中,即使播放器暂停,警报 jwplayer().getState()
显示“PLAYING”。
编辑:在我们的测试中,禁用 HTML5 模式可以防止此错误出现,但这并不是最佳选择。
最佳答案
最终没有修复这个错误,但我们通过先让播放器默认为 Flash 模式,然后再回退到 HTML 5 模式来解决这个问题。
该错误的含义是,对于那些在浏览器中未启用 Flash 支持的用户,我们之前与 Google Analytics 的集成将无法工作,但这应该是少数用户。
我们考虑升级到 JWPlayer 6,但目前不可行,因为存在报告额外播放事件的已知问题。
关于javascript - JWPlayer JavaScript 集成突然不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20749460/