2012-04-26 140 views
0

我想預加載多個音頻文件。爲此,我嘗試在JavaScript中創建多個音頻元素。Ipad html5加載多個音頻文件

function loadAudio(){ 
    audio1 = new Audio(); 
    audio1.addEventListener('canplaythrough', isLoaded, false); 
    audio1.src = 'assets/audio/Maid with the Flaxen Hair.mp3'; 
    audio1.load(); 
} 

function isLoaded(){ 
    audio1.removeEventListener('canplaythrough', isAppLoaded); 
    alert('maid'); 

alert('start audio 2'); 
audio2 = new Audio(); 
audio2.addEventListener('canplaythrough', isLoaded2, false); 
audio2.src = 'assets/audio/Kalimba.mp3'; 
audio2.load(); 
} 

function isLoaded2(){ 
    alert('kalimba'); 
} 

我只得到第一個警報,第二個從不工作。

我發現我一次只能播放一個聲音,但是我也可以只加載一個聲音嗎?該腳本是否需要爲我創建的每個新音頻對象提供另一個用戶輸入?或者有沒有人有另一種方式來創建音頻預加載器?

+0

看看播放多種音頻設備上:http://stackoverflow.com/questions/5194898/html5 -audio-multiple-play/35459153#35459153 – 2016-02-17 14:19:56

+0

請看:http://stackoverflow.com/questions/5194898/html5-audio-multiple-play/35459153#35459153 – 2016-02-17 14:26:40

回答

0

這可能與ios設備上的autoplaying(以及據我所知自動加載)audiofiles的限制有關(請參閱:Limitations of HTML5 Audio on iOS 4?)。

簡而言之:您不能以編程方式在ios設備上啓動音頻回放,只能從事件處理程序中爲受信任(由用戶發起)事件啓用此功能。

0

呦可以用以下方式播放IOS設備 上的多個音頻

$("#btn").on("click",function(){ 
         alert("audio clicked"); 
         var aud=new Audio(); 
         aud.src="music.mp3"; 
         aud.play(); 
         var aud1=new Audio(); 
         aud1.src="intro.mp3"; 
         aud1.play(); 
        }) 

上面的代碼