HTML5-Audioelement mit dynamischer Quelle

8

Ich habe einen grundlegenden Audioplayer:

%Vor%

Und anstatt die Quelle direkt auf die MP3-Datei zu zeigen, habe ich sie auf eine PHP-Datei gerichtet, die dann auf die MP3-Datei zeigt, die funktioniert. Wenn der aktuelle Track jedoch vorüber ist, zeigt die PHP-Datei auf eine neue MP3-Datei. Also, das Problem, das ich habe, ist, dass, wenn der Spieler zur Schleife geht, mit der neuen MP3-Datei, es völlig aufhört zu arbeiten. Gibt es einen Weg dazu? Gibt es eine Möglichkeit, dies mit einer Playlist oder anderen Spielern zu tun?

    
austinhollis 07.01.2013, 05:04
quelle

4 Antworten

11

Von Ihrer doppelten Frage kopiert:

Als Erstes fügen Sie jedes Mal, wenn auf das Element geklickt wird, einen neuen Ereignishandler an. Wenn jemand die Musik häufig pausiert, werden sie auf Probleme stoßen.

Intead, versuche das:

%Vor%

Ich nehme an, dass song.php eine PHP-Datei ist, die die Audiodaten zurückgibt. Der Abfrageparameter nocache stellt sicher, dass die Datei tatsächlich jedes Mal aufgerufen wird.

    
Niet the Dark Absol 11.01.2013, 03:25
quelle
1

Ich denke, das Problem ist, dass Sie eine Anfrage machen müssen, sobald der aktuelle Song fertig ist. Sie können dies erreichen, indem Sie den ended -Ereignis-Listener zum Audio-Element hinzufügen:

HTML

%Vor%

Javascript

%Vor%

Hinweis: Wenn Sie weiterhin Probleme haben, fügen Sie den PHP-Code in die Frage ein und überprüfen Sie, ob Ihre PHP-Datei den richtigen Header bekommen

    
Tom Sarduy 07.01.2013 06:37
quelle
1

Muss die zufällige Auswahl unbedingt von PHP gemacht werden?

Wenn nicht, ist es vielleicht einfacher, JavaScript zu sagen, um eine zufällige ID in einem Bereich auszuwählen. Übergeben Sie es dann als GET-Parameter an Ihr PHP-Skript.

Auf der PHP-Seite, machen Sie eine Zuordnung von IDs & gt; MP3-Dateien, so dass die gleiche ID immer der gleichen MP3 entspricht. Sie können verwenden, was Sie wollen: einfaches assoziatives Array, Datenbank usw. Tatsächlich müssen die IDs nicht einmal Zahlen sein.

Wenn Sie nicht möchten, dass jemand Ihr Mapping entdeckt und sagt, rufen Sie direkt das Wscript mit ID X auf, um Ihre MP3 herunterzuladen, können Sie Ihr Mapping beispielsweise bei jeder Sitzung ändern .... das Wichtigste ist, dass ein gegeben ID beziehen sich immer auf die gleiche MP3 zumindest während einer angemessenen Zeit.

Ich würde auch sagen, dass eine Umleitung auf die MP3-Datei von PHP Probleme bei einigen Browsern verursachen kann. Es ist vielleicht besser, die richtigen HTTP-Header zu senden und die Dateiinhalte direkt ohne Umleiten zurückzugeben. Kurzes Beispiel:

%Vor%

Weitere Informationen zu den Funktionen readfile und header

    
QuentinC 16.01.2013 14:58
quelle
0

Vielleicht ist der beste Weg, eine eindeutige Request ID Variable in der Abfrage-Zeichenfolge zu haben. Dann können Sie bei jeder Anfrage feststellen, ob es sich um eine Anfrage mit einer Schleife oder eine neue Anfrage oder eine neue Anfrage für die Randomisierung handelt.

Weißt du wie das geht? Wenn nicht, füge ich Code bei.

    
Brett 07.01.2013 05:22
quelle

Tags und Links