在新版iPad的移动Safari iOS 5上开发HTML 5应用程序,当收到“dispatch”时显示用户提示。为了引起用户的注意,当调用alert函数时会播放以下声音:
snd.src = snd.src;
snd.play();
很不幸,苹果改变了播放声音的方法。有人知道iOS 5中是否有更新来修复这个问题吗?
我已经进行了大量的研究,并且已经意识到在iOS 3中的旧的“hack”不再适用。
在新版iPad的移动Safari iOS 5上开发HTML 5应用程序,当收到“dispatch”时显示用户提示。为了引起用户的注意,当调用alert函数时会播放以下声音:
snd.src = snd.src;
snd.play();
在iOS5中,声音需要用户输入。您可以使用“不可见”按钮初始化声音,在应用程序的初始化后按一次后按钮即消失。一旦触发,您就可以通过编程方式调用snd.play()。这有点像欺骗,但希望能有所帮助!
Javascript:
if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
document.write('<a id="init" ontouchstart="javascript:sndInit();"></a>');
function sndInit(){
snd.play();
snd.pause();
document.getElementById('init').style.display = 'none';
}
}
CSS:
<style>
#init {
position: absolute;
margin-right: 0px;
margin-left: 0px;
margin-top: 0px;
margin-bottom: 0px;
z-index: 1000;
}
</style>
此外,Remy Sharp提供了一些关于使用音频精灵的技巧,在这里可以找到。
snd.src
尚未定义。有没有办法使这个例子正常工作?http://jsfiddle.net/esn8C/ - Anderson Green