我的HTML5应用上的某些事件中有一些mp3声卡。没有标签,脚本在开头创建Audio对象(每个mp3一个)并加载文件。当我必须播放声音时,我只需在其中一个对象上调用play()。
这在Chrome桌面上运行良好,但在我的iPod touch中非常不一致,最终有些声音停止播放,我甚至收到错误提醒。
这是我设置的一个小脚本来查看问题,它在soundtest.staticloud.com托管,包括3个音频文件,因此您可以在iPhone /其他任何内容上查看。
var snd = [];
window.onload = function() {
for(var i = 0; i < 3; i++) {
snd[i] = new Audio("snd" + i + ".mp3");
snd[i].load();
}
}
function sound(n) {
snd[n-1].play();
}
我做错了吗?
答案 0 :(得分:3)
我在iDevices中遇到了大量的音频问题......你要做的就是在开始下一个播放剪辑之前将其删除。另外,我只有一个音频对象,并且会更改源代码,所以我的解决方案看起来更像是这样:
<html>
<body>
<audio></audio>
etc
</body>
<script type="text/javascript">
var sounds=[];
window.onload = function() {
for(var i = 0; i < 3; i++) {
sounds[i] = "snd" + i + ".mp3";
}
}
function sound(n){
snd=document.getElementsByTagName("audio")[0];
snd.pause(); //-----------------PAUSE THE LAST (WHICH MAY BE LONG DONE)
snd.src=''; //-----------------BLANK SRC
snd.src=sounds[n-1]; //---------REPLACE WITH NEW SOUND
snd.load();
snd.play();
}
</script>
</html>