HTML5 аудио маркерът има събитие „onended“, което се изпълнява, когато медия достигне своя край, но тъй като искате да продължите да възпроизвеждате, трябва да използвате събитието „onwaiting“, което също се задейства, когато медията достигне своя край, но се поддържа в готовност за приемете нов запис/данни.
След това можете да използвате обекта XMLHttpRequest, за да потърсите следващата песен за възпроизвеждане, напр.
<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>
Xml ще бъде под формата на:
<?xml version="1.0" encoding="UTF-8" ?>
<playback>
<track>next_song.ogg</track>
</playback>