Znacznik audio HTML5 ma zdarzenie „onended”, które jest uruchamiane, gdy media dobiegają końca, ale ponieważ chcesz kontynuować odtwarzanie, powinieneś użyć zdarzenia „onwaiting”, które jest również uruchamiane, gdy media dobiegają końca, ale jest gotowe do zaakceptuj nową ścieżkę/dane.
Następnie możesz użyć obiektu XMLHttpRequest do zapytania o następną ścieżkę do odtworzenia, np.
<script type="text/javascript">
function getNextTrack(e) {
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "next_track.php", false);
xhttp.send("");
var playback = xhttp.responseXML.childNodes[0];
for(i = 0; i < playback.childNodes.length; ++i) {
if (playback.childNodes[i].nodeName != 'track') continue;
var value = playback.childNodes[i].childNodes[0].nodeValue;
e.currentTarget.src = value;
break;
}
}
</script>
<audio id="player" onwaiting="javascript: getNextTrack(e)" src="first_track.ogg"></audio>
Plik XML miałby postać:
<?xml version="1.0" encoding="UTF-8" ?>
<playback>
<track>next_song.ogg</track>
</playback>