Javascript HTML5播放速率和Firefox
我有一个带有HTML5视频播放器的页面。我使用jQuery创建了一个非常简单的播放速度切换按钮 用户单击该按钮,每次按下该按钮,视频播放速率属性的速度将乘以2。 所以你可以从1x到2x,4x,8x,16x,32x,64x,128x。。。等等 然而,在Firefox中,我的页面上的视频播放速率从未超过5倍 一旦播放速率为4,脚本将其乘以2,它就会变成5(而不是8) 在Google Chrome中测试同一页面时不会出现此问题 这是我的剧本:Javascript HTML5播放速率和Firefox,javascript,jquery,html,firefox,html5-video,Javascript,Jquery,Html,Firefox,Html5 Video,我有一个带有HTML5视频播放器的页面。我使用jQuery创建了一个非常简单的播放速度切换按钮 用户单击该按钮,每次按下该按钮,视频播放速率属性的速度将乘以2。 所以你可以从1x到2x,4x,8x,16x,32x,64x,128x。。。等等 然而,在Firefox中,我的页面上的视频播放速率从未超过5倍 一旦播放速率为4,脚本将其乘以2,它就会变成5(而不是8) 在Google Chrome中测试同一页面时不会出现此问题 这是我的剧本: $('#change_speed').click(func
$('#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。我在倍增后破发,回放率是5
如果是1,则乘数返回2。如果是2,则乘数返回4。如果是4,乘数返回5。。。什么
在Chrome中,速度保持翻倍。为什么Firefox的上限是5?我错过什么了吗?从
大多数浏览器停止播放0.5和4的播放速率范围之外的音频,而让视频保持静默播放。因此,对于大多数应用程序,建议将范围限制在0.5到4之间
编辑:每个浏览器处理超出此推荐范围的移动的方式不同。Firefox恰好钳制了从0.5到5的值范围。从0.5到16的铬夹。如果超出建议的范围,所有浏览器的行为都会有所不同,因此我建议在代码中将其限制为4x。感谢您提供的源代码和帮助。我知道这个问题很久以前就得到了回答,但我觉得答案并不能解释为什么Firefox会出现5x上限(可能通过MDN链接除外)。普列特涅夫的回答非常准确,并且直接引用了代码。尽管如此,富兰克林关于音频的回答是正确的——我只是觉得它没有直接回答这个问题。我将补充一点关于firefox如何处理超出推荐范围的值的小技巧。