VideoJS在Firefox中启动时会触发"ended"事件

6
我正在使用video JS,在火狐浏览器中,“ended”事件在视频播放结束和开始时都被触发。
请查看此Fiddle在FF中的效果:http://jsfiddle.net/planadecu/a3Chu/ 在所有其他浏览器中,它能正常工作。
在视频开始时调用的代码如下:
var videoPlayer = _V_("video", {}, function(){
  this.addEvent("ended", function(){ 
      this.posterImage.el.style.display = 'block';
  });
});​

我需要在视频结束时触发事件,而不是在开始时触发。你知道有什么方法可以解决这个问题(对我来说这是一个错误)吗?
您可以在提供的 fiddle 上复现它。
感谢您的帮助。

有什么想法吗?我在这里看不到问题 ;) - Walialu
1个回答

4
我认为这是你的视频有问题...
看这里:http://jsfiddle.net/a3Chu/2/ 我所做的只是删除了这个源文件:
<source type="video/webm" src="http://www.reservango.com/static/video/reservango_video_vfinal_CAT.webm">

我注意到脚本已经正确触发 - 视频从结尾开始播放(!)

我尝试使用其他 .webm 文件,它们的行为正常,所以我认为可能是你的特定文件出了问题。

我使用 FF 15.0.1 进行测试。

编辑

我还在 FF 16.0.2 上测试过,仍然似乎只有那个视频文件有问题。当然,你可以更改源代码,让其他格式先尝试。我知道我的 FF 会在修改后的代码片段中,如果 .webm 是最后一个源项,那么会运行 .ogv。然而,这并不完全可靠。我也发现了这个(旧版本的 FF,但同样的问题):https://dev59.com/OmLVa4cB1Zd3GeqPsxOd#10138928,它建议使用相同的方法。

我发现一些 .webm 文件能够正常工作... 你能否尝试重新编码视频? 另外,检查一下服务器上所有的 mime 类型,以防万一它们错误而且只有 FF 才会混淆(这不会是第一次...)。这也可以解释为什么其他地方托管的 .webm 文件可以正常渲染。


头文件没问题,我刚在http://web-sniffer.net/上检查过了http://www.reservango.com/static/video/reservango_video_vfinal_CAT.webm,它的值是video/webm。 - Jordi P.S.
很好,那我们可以把那个划掉了。我又回到了“是视频”的问题上。看看这个:http://jsfiddle.net/a3Chu/3/ 在视频的前5秒内有些东西会影响FF。如果你取消js的注释,两个视频仍然会失败,但我认为是视频的问题。 - Stuart Burrows
刚刚在http://firefogg.org上尝试将`.ogv`文件编码为`.webm`,效果很好,没有跳到结尾。我只使用了基本设置,但我认为这意味着这是你的文件。如果我是你,我会尝试使用原始软件以不同的设置重新编码几次。 - Stuart Burrows

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接