0

複数の音声ファイルをプリロードしたい。これを行うために、JavaScript で複数の Audio 要素を作成しようとしました。

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

最初のアラートのみが表示され、2 番目のアラートは機能しません。

一度に再生できるサウンドは 1 つだけですが、ロードできるのは 1 つだけですか? スクリプトは、作成する新しい Audio オブジェクトごとに別のユーザー入力を必要としますか? または、オーディオ用のプリローダーを作成する別の方法はありますか?

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 に答える