您不需要JavaScript来实现自动播放,我注意到您的代码存在几个问题:
<audio id="denied" preload="auto" controls="false">
<source src="sound/denied.wav" />
</audio>
我会将其更改为以下形式(在HTML5中,在某些情况下不需要使用attribute="value"语法,这适用于XHTML):
<audio id="denied" autobuffer controls autoplay>
<source src="sound/denied.wav" />
</audio>
<a href="#" id="play-button">play!</a>
在iOS中,自动播放被禁用了,您需要点击播放按钮或在JavaScript中为自定义控件添加
用户单击事件,如下所示:
var audio = document.getElementById('denied');
var button = document.getElementById('play-button');
button.addEventListener('click',function(){
audio.play();
});
或者使用jQuery:
$('#play-button').click(function(){ audio.play(); });}
编辑
请注意,HTML5 技术相对较新(至少某些功能如此),因此浏览器的兼容性和功能会不时地发生变化。
我鼓励每个人都要及时了解当前状态,因为有时候事情开始变得不再依赖 hack 或者反过来。
一个好的起点:http://caniuse.com/#feat=audio(查看底部的选项卡)。
此外,针对全局音频解决方案,我建议使用SoundManager2 JS 库。