2016-09-19 13 views
0

HTML5オーディオタグなしでJavascriptを使用して3つのMP3ファイルを1つずつ再生しようとしています。 [私はeラーニングのオーサリングツールであるArticulate Storyline内で作業しています。 、JavaScriptを使用してHTML5オーディオなしでMP3ファイルを順番に再生

function myFunction() { 
    var audio1 = new Audio('http://www.mysite.co.uk/h/welcome.mp3'); 
    var audio2 = new Audio('http://www.mysite.co.uk/h/name.mp3'); 
    var audio3 = new Audio('http://www.mysite.co.uk/h/cont.mp3'); 

    audio1.play(); 
    audio2.play(); 
    audio3.play(); 
} 

私は「待機」関数と考えられてきました:それはこれまでのところ、私が持っている最高のは、すべて同時に果たしている以下の通りである]のファイルではなく、HTML内

をJavascriptをサポートしていますしかし、私はJQueryでこれを正しく行う方法しか知りません。正しくリコールするなら、Articulate Storylineは他の場所でホストされていてもJQueryをサポートしていません。

これですべてのヘルプは非常にあなたが最後にオーディオ再生をリッスンするイベントハンドラを使用して、次のいずれかをプレイすることができます

答えて

1

を高く評価しているなど

function play(audio) { 
    audio.play(); 
    return new Promise(function(resolve, reject) { 
     audio.addEventListener('ended', resolve); 
    }); 
} 

function myFunction() { 
    var audio1 = new Audio('http://www.mysite.co.uk/h/welcome.mp3'); 
    var audio2 = new Audio('http://www.mysite.co.uk/h/name.mp3'); 
    var audio3 = new Audio('http://www.mysite.co.uk/h/cont.mp3'); 

    play(audio1).then(function() { 
     return play(audio2); 
    }).then(function() { 
     return play(audio3); 
    }); 
} 
+0

に役立ちます!ありがとうございました!私はあまりにも変数をユーザー名を取得するためにあらかじめ書いたコードで美しく動作します。 もう一度ありがとう – Aaron

1

私はあなたが使うことをお勧め音声は、イベントをonendしました。一人のプレイヤーが停止してから次のプレイを聴くだけです。

例: 一つの方法は、より良い制御

oneneded
var players = [audio1,audio2,audio3]; 

    var counter = 0; 

    audio1.onended = playNext; 



    function playNext(){ 
     if(counter <= players.length){ 
      counter++ 
      players[counter].play(); 
      players[counter].onnded = playNext; 
    } 
    } 

の配列にあなたのプレーヤーを追加することです:http://www.w3schools.com/tags/av_event_ended.asp

希望これは完璧だ

関連する問題