您不需要 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 是相当新的技术(至少是一些功能),因此浏览器兼容性和功能每隔一段时间就会发生变化。
我鼓励每个人随时了解当前状态,因为有时事情开始不那么依赖黑客了,或者相反。
一个好的起点:http ://caniuse.com/#feat=audio (检查底部的标签)。
对于全局音频解决方案,我建议使用SoundManager2 JS 库