javascript - How to chain playing of several HTML5 audio files like a smooth playlist? -


given access valid audio files :

<audio src="https://upload.wikimedia.org/wikipedia/commons/9/9b/zh-tianjin.ogg"></audio> <audio src="https://upload.wikimedia.org/wikipedia/commons/8/8a/zh-beijing.ogg"></audio> <audio src="https://upload.wikimedia.org/wikipedia/commons/7/73/zh-shanghai.ogg"></audio> <audio src="https://upload.wikimedia.org/wikipedia/commons/e/e2/zh-chengdu.ogg"></audio> 

given button :

<button id="play">play me!</button> 

given play 1 audio

$('#play').on('click', function () {     $("audio")[0].play(); }); 

how chain playing of these several audio, 1 after other ? -- pure js , jquery, other js libs acceptable.

my starting point this fiddle basic tools


edit: tried big hand of ways without success, using .duration, window.settimeout(function(){do_that}, time_ms), .delay() in few combinations without success. see: http://jsfiddle.net/ka2nh/7/

you can use ended event , trigger next one

var active = false;  $("audio").on("ended", function(){      var audio = $(this).next("audio");     if (audio.length) {         audio.get(0).play();        } else {         active = false;        } });  $('#play').on('click', function () {         if (!active) {         $("audio")[0].play();         active = true;     } }); 

jsfiddle: http://jsfiddle.net/ymas6/1/


Comments

Popular posts from this blog

php - render data via PDO::FETCH_FUNC vs loop -

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

The canvas has been tainted by cross-origin data in chrome only -