2017-04-14 21 views
0

我要作出这样的打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时,它只播放前两个音频文件,而最后一个不播放。究竟发生了什么,我能做些什么来解决这个问题?

+0

而不是使用多个'Audio',你为什么不只是使用一个并更改网址一个又一个的? –

+0

@Derek朕会功夫我会很感激你的模型代码 –

回答

0

你可以试试这个:

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浏览器,它只是播放第一个视频,并让其他人未播放... –

相关问题