Javascript音频在浏览器中播放,但在iOS设备上播放

时间:2013-04-10 22:46:17

标签: javascript ios html5 ipad mobile-safari

我有以下用于播放数组音频文件的代码

function playSound() {
    if(index>=25){
        index = 0;
}
document.getElementById("sound").innerHTML=
"<embed src=\""+audio[index]+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />";
index++;
}

音频在我的笔记本电脑上播放正常,但无法在iOS设备上播放。代码由以下HTML

触发
<button id="newWordBtn" class="play" onclick="playSound(); $('#result').empty(); $('#yourTurn').val(''); myFunction();" data-icon="refresh" tabindex="3">New Word</button>

关于如何让这个工作的任何想法?我知道iOS不允许自动播放,但这个声音是由一个按钮触发的。

2 个答案:

答案 0 :(得分:1)

许多移动浏览器无法处理<embed>标记。此外,你没有显示消息来源是什么,但我敢打赌你正在使用MP3文件 - 这对于支持MP3的浏览器来说很好,但对于那些不支持MP3的浏览器来说这是好的。是的。

你应该得到这样的东西:

<audio autostart>
    <source type="audio/ogg" src="mySong.ogg" />
    <source type="audio/mpeg" src="mySong.mp3" />
    <p>Your browser does not support HTML5 audio. Sorry!</p>
</audio>

答案 1 :(得分:0)

不幸的是,iOS会将音频/视频对象锁定为每个网页1个,所以一旦你加载了一个,就会使用你的。这将默默地杀死您想要同时播放的所有其他声音文件。我已经挣扎了几个星期,通过javascript让多轨音频在iOS上工作,迄今为止最适合我的解决方案是Web Audio API。我已经为你附了一个教程,希望它会有用