HTML5 playbackRate和Firefox

时间:2014-12-18 01:16:18

标签: javascript jquery html5 firefox html5-video

我有一个HTML5视频播放器页面。我使用jQuery创建了一个非常简单的播放速度切换按钮。

用户点击该按钮,每按一次,它会将视频的playbackRate属性的速度乘以2.

所以你可以从1x到2x,4x,8x,16x,32x,64x,128x ......等等。

但是,在Firefox中,我页面上的视频播放率永远不会超过5倍。

一旦playbackRate为4,并且脚本将其乘以2,它就变为5(而不是8)。

在Google Chrome中测试同一页面时,不会发生此问题。

这是我的剧本:

$('#change_speed').click(function()
{
  var current_speed = ($('#video').get(0).playbackRate).toFixed(0);

  console.log('playback speed: ' + $('#video').get(0).playbackRate); //For debugging

  if(current_speed == 0)
  {
     $('#video').get(0).playbackRate = 1;
  }
  else
  {
    $('#video').get(0).playbackRate = $('#video').get(0).playbackRate * 2;
  }

});

我的功能中没有更多代码。没有其他处理程序或脚本干扰。我点击按钮,我在乘数之前断开:playbackRate是4.我在乘数后断开,playbackRate是5。

如果它是1,则乘数返回2.如果它是2,则乘数返回4.如果它是4,则乘数返回5. ...什么!?

在Chrome中,速度与预期一致。为什么它在Firefox中的上限为5?我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

来自MDN

  

大多数浏览器停止在10.5和4的播放速率范围之外播放音频,让视频静音播放。因此,建议大多数应用程序将范围限制在0.5到4之间。

编辑:每个浏览器处理此推荐范围之外的处理方式不同。 Firefox恰好将值范围从0.5修改为5. Chrome会从0.5到16之间进行限制。如果超出建议的范围,您将在所有浏览器中获得不同的行为,因此我建议将其在代码中加入4倍。