Thẻ âm thanh HTML5 có một sự kiện "kết thúc" được chạy khi phương tiện kết thúc, nhưng vì bạn muốn tiếp tục phát, bạn nên sử dụng sự kiện "đang chờ", sự kiện này cũng sẽ kích hoạt khi phương tiện kết thúc, nhưng luôn sẵn sàng để chấp nhận một bản nhạc / dữ liệu mới.
Sau đó, bạn có thể sử dụng đối tượng XMLHttpRequest để truy vấn bản nhạc tiếp theo sẽ phát, ví dụ:
<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 sẽ có dạng:
<?xml version="1.0" encoding="UTF-8" ?>
<playback>
<track>next_song.ogg</track>
</playback>