我怎样才能让iPhone中的Safari音频一个接一个地运行多个音频?
问题描述:
我要作出这样的打3个连续的音频文件(非常小的,只是〜900毫秒的文件)的应用程序,所以我写了这些代码:我怎样才能让iPhone中的Safari音频一个接一个地运行多个音频?
function playAudio() {
audioLinksArray.forEach(function(audioLink, index, array){
setTimeout(function(){
// Find the audio element to play
document.getElementById('audio'+index).play();
}, 900*index);
});
}
这个工作在桌面浏览器的罚款(我在Chrome测试,Safari,FireFox,Opera)。但是,当我在iPhone上打开Safari时,它只播放前两个音频文件,而最后一个不播放。究竟发生了什么,我能做些什么来解决这个问题?
答
你可以试试这个:
audioLinksArray = [0, 1, 2]
function playAudio() {
var last = audioLinksArray.length - 1;
var audioElements = new Array(last + 1);
audioLinksArray.forEach(function(audioLink, index, array){
var audio = audioElements[index] = document.getElementById('audio' + index);
if (index === last) return;
audio.addEventListener('ended', function() {
audioElements[index + 1].play();
});
if (!index) audio.play();
});
}
<audio controls id="audio0" src="//upload.wikimedia.org/wikipedia/commons/f/f6/Voice_of_Zonotrichia_albicollis.ogg"></audio><br>
<audio controls id="audio1" src="//upload.wikimedia.org/wikipedia/commons/6/68/Turdus_merula_male_song_at_dawn%2820s%29.ogg"></audio><br>
<audio controls id="audio2" src="//upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg"></audio><br>
<button onclick="playAudio()">Play all</button>
+0
好吧,在iPhone的Safari浏览器,它只是播放第一个视频,并让其他人未播放... –
而不是使用多个'Audio',你为什么不只是使用一个并更改网址一个又一个的? –
@Derek朕会功夫我会很感激你的模型代码 –