2

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

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 不允许自动播放,但这个声音是由按钮触发的。

4

2 回答 2

2

许多移动浏览器不处理<embed>标签。此外,您没有显示来源是什么,但我敢打赌您使用的是 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>
于 2013-04-10T23:29:18.337 回答
0

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

于 2014-08-05T20:34:43.243 回答