2017-04-14 23 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瀏覽器,它只是播放第一個視頻,並讓其他人未播放... –

相關問題