0

我想预加载多个音频文件。为此,我尝试在 JavaScript 中创建多个音频元素。

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');
}

我只收到第一个警报,第二个永远不会工作。

我发现我一次只能播放一种声音,但我也只能加载一种吗?对于我创建的每个新音频对象,脚本是否需要另一个用户输入?或者有没有人有另一种方法来创建音频预加载器?

4

2 回答 2

0

这可能与 ios 设备上自动播放(以及据我所知自动加载)音频文件的限制有关(请参阅此处:iOS 4 上 HTML5 音频的限制?)。

简而言之:您不能以编程方式在 ios 设备上启动音频播放,这仅允许在事件处理程序中用于可信(=由用户发起)事件。

于 2012-06-19T08:00:43.407 回答
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();
                    }) 

上面的代码在设备上播放多个音频

于 2015-05-05T12:58:46.437 回答