2012-04-26 91 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(); 
        }) 

上面的代码