Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firefox不会启动';播放';或';玩';第一次/页面加载时的事件_Javascript_Html_Firefox_Dom Events_Html5 Audio - Fatal编程技术网

Javascript Firefox不会启动';播放';或';玩';第一次/页面加载时的事件

Javascript Firefox不会启动';播放';或';玩';第一次/页面加载时的事件,javascript,html,firefox,dom-events,html5-audio,Javascript,Html,Firefox,Dom Events,Html5 Audio,当音频播放器在页面加载时播放音频文件时,我似乎无法让Firefox v20.0第一次触发“播放”或“播放”事件 如果单击暂停,然后单击播放,“播放”和“播放”事件都会触发,但不会在初始页面加载时触发 我已经尝试过使用vanilla JS绑定到“play”/“playing”事件,如下所示,甚至尝试过使用jQuery的bind()方法,但都没有效果 在Chrome v26.0.1410.64和IE 10中,该功能似乎运行良好。这是Firefox中的一个bug吗 // HTML // -------

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

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

我已经尝试过使用vanilla JS绑定到“play”/“playing”事件,如下所示,甚至尝试过使用jQuery的
bind()
方法,但都没有效果

在Chrome v26.0.1410.64和IE 10中,该功能似乎运行良好。这是Firefox中的一个bug吗

// 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');
});
//HTML
// ---------------------------------------------------
//JS
// --------------------------------------------
//假设玩家是
player.addEventListener('playing',function(){
console.log('PLAY');
});

我的最终目标是在播放音频时将自定义播放按钮替换为暂停按钮。

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

音频元素可能在侦听器绑定之前开始播放。就是这样!所有JS都是在结束body标记之前处理的。我从来没有想过要检查这个,因为Chrome/IE似乎工作正常。你知道Chrome/IE是如何绑定事件的吗**在任何情况下,请张贴答案,我可以将其标记为正确/已回答。再次感谢。同样的事情也发生在视频上。如果您使用的是autoplay,这并不奇怪,但值得注意。我选择从视频标签中删除autoplay,并在加载页面后在视频元素上调用.play()。