Audio Auto Play Next Song When Previous Is Finished


Answer :

here is the trick to trigger next song:

music.addEventListener('ended',function(){       //play next song     }); 

How to play another song on same audio tag:

 music.pause();  music.src = "new url";  music.load();  music.play(); 

Now here is a cool example of a playlist in html5, you can load each song at the time, case some clients (mobile) will not be happy when you consume the traffic, in next example all audios are loaded at same time to have a smooth transition from song to song, loading the songs:

//playing flag  var musicTracker = 'noMusic'; //playlist audios var audios = [];  $(".song").each(function(){         var load = new  Audio($(this).attr("url"));     load.load();     load.addEventListener('ended',function(){        forward();     });     audios.push(load);  }); //active track var activeTrack = 0; 

Highlighting witch song is playing, with a bit of jquery, yeah, case yeah I'm lazy, lazy:

var showPlaying = function() {     var src = audios[activeTrack].src;    $(".song").removeClass("playing");    $("div[url='" + src + "']").addClass("playing"); }; 

Fiddle here

Note: If the sound's doesn't play, manually check if audio url's are accessible


[Here a non vanilla solution.] My playlist consists of four songs, they are named 0.mp3, 1.mp3, 2.mp3 and 3.mp3.

<html>   <head><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script></head> <body>        <audio id="player" autoplay controls><source src="0.mp3" type="audio/mp3"></audio> </body> <script>     var x = 0;     var music = document.getElementById("player");     $("#player").bind("ended", function(){     x=x+1;     music.src = x%4 + ".mp3";     music.load();     music.play();            });     </script> </html> 

The playlist is repeated indefinetely.


Comments

Popular posts from this blog

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?