Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kontinuierliches Streamen zufälliger Audiodaten aus der Datenbank

Das HTML5-Audio-Tag hat ein „onended“-Ereignis, das ausgeführt wird, wenn das Medium sein Ende erreicht, aber da Sie weiterspielen möchten, sollten Sie das „onwaiting“-Ereignis verwenden, das ebenfalls ausgelöst wird, wenn das Medium sein Ende erreicht, sich selbst aber dafür bereithält neuen Track/Daten akzeptieren.

Sie können dann das XMLHttpRequest-Objekt verwenden, um nach dem nächsten abzuspielenden Titel zu fragen, z. B.

<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>

Das XML hätte folgende Form:

<?xml version="1.0" encoding="UTF-8" ?> 
<playback> 
    <track>next_song.ogg</track>
</playback>