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>