HTML5 播放率和 Firefox

Posted

技术标签:

【中文标题】HTML5 播放率和 Firefox【英文标题】:HTML5 playbackRate and Firefox 【发布时间】:2015-02-16 17:10:47 【问题描述】:

我有一个带有 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】:

来自MDN

大多数浏览器停止播放超出播放速率 0.5 和 4 的音频,让视频静默播放。因此,对于大多数应用,建议您将范围限制在 0.5 到 4 之间。

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

【讨论】:

感谢来源和帮助。 我知道这个问题很久以前就得到了回答,但我觉得这个答案并不能解释为什么 Firefox 会出现 5 倍上限(可能通过 MDN 链接除外)。 Pletnev 在HTML5 Video - what is the maximum playback rate? 中的回答很到位并直接引用了代码。话虽如此,富兰克林对音频的回答是正确的——我只是觉得它没有直接回答这个问题。 @rufism 一个有效点。我将添加一个关于 Firefox 如何处理超出推荐范围的值的小花絮。

以上是关于HTML5 播放率和 Firefox的主要内容,如果未能解决你的问题,请参考以下文章

jqm视频播放器,html5视频播放器,html5音乐播放器,html5播放器,video开发demo,html5视频播放示例,html5手机视频播放器

Html5之高级-4 HTML5视频处理(H5中播放视频编程实现视频播放器)

html5 视频无法在 iPad 上播放 - 在 iPhone 上播放

html5播放器哪个好

html5播放器 —— willesPlay.js,支持手机播放

Html5之高级-5 HTML5音频处理(在H5中播放音频编程实现音频播放器)