2013-04-09 23 views
0

我似乎无法让Firefox v20.0在音频播放时第一次触发“播放”或“播放”事件播放器在页面加载时播放音频文件。Firefox第一次/在页面加载时不会触发“播放”或“播放”事件

如果我点击暂停,然后点击播放,则“播放”和“播放”事件都会触发,但不会在初始页面加载时触发。

我试着绑定到“play”/“playing”事件使用香草JS作为贝娄,甚至尝试使用jQuery的bind()方法,但无济于事。

似乎在Chrome v26.0.1410.64和IE 10中工作正常。这是Firefox中的错误吗?

// HTML 
// --------------------------------------------------- 
<audio controls="" preload="auto" autobuffer autoplay> 
    <source src="bc.ogg" type='audio/ogg'> 
</audio> 


// JS 
// -------------------------------------------- 
// Assume player is <audio> 

player.addEventListener('playing', function() { 
    console.log('PLAY'); 
}); 

我的最终目标是在音频播放暂停键,以取代自定义的播放按钮。

+1

音频元素可能在侦听器绑定之前开始播放。 – 2013-04-09 21:04:30

+0

就是这样!所有JS都在正式标签之前进行处理。 我从来没有想过检查这个Chrome/IE似乎工作正常。 您对Chrome/IE如何管理绑定事件有任何想法吗? **无论如何,请张贴一个答案,我可以标记为正确/回答。再次感谢你。 – Brownbay 2013-04-09 21:21:56

回答

2

音频元素可能在侦听器被绑定之前开始播放。由于DOM的构建和处理方式的内部差异,这可能发生在某些浏览器中,而不会发生在其他浏览器中。最好的解决方案是在页面完全加载后绑定监听器,然后播放音频元素,而不是依赖浏览器在需要时启动它。

+0

视频也会发生同样的情况。没有意外,但值得注意的是,如果您正在使用自动播放功能。我选择从视频标签中删除自动播放,并在加载页面后在视频元素上调用.play()。 – captainill 2014-06-20 03:23:49

相关问题