OGeek|极客世界-中国程序员成长平台

标题: iphone - 在 iPhone 上播放带有 HTML5 音频的声音剪辑时出现问题 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 09:20
标题: iphone - 在 iPhone 上播放带有 HTML5 音频的声音剪辑时出现问题

我有一些 mp3 声音片段可以在我的 HTML5 应用程序的某些事件中播放。没有标签,脚本在开头创建音频对象(每个 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();
}

我做错了吗?



Best Answer-推荐答案


我在 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>

关于iphone - 在 iPhone 上播放带有 HTML5 音频的声音剪辑时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655917/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4