在iPhone上使用HTML5音频播放声音剪辑的问题

时间:2011-10-05 01:48:42

标签: iphone ios html5 audio

我的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();
}

我做错了吗?

1 个答案:

答案 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>