Die Einordnung dieses Threads ist mir schonmal sehr schwer gefallen, da ja von allem etwas dabei ist, also gerne bei Bedarf verschieben. Ich glaube der Titel erklärt schon recht viel. Ich habe mir einen kleinen Musikstreamingserver auf PHP- und AJAX-Basis gebastelt. Natürlich streame ich meine Musikdateien über ein PHP-Script, damit nur autorisierte User an die Dateien kommen. Mein Problem ist nun, dass der Browser (FF wie auch Chrome) alle AJAX-Requests, die anfallen während der JW Player noch buffert hinten anstellt und erst nach Ende des Bufferns ausführt. So schätze ich das momentan zumindest ein, da bei Chrome "pending" steht. Liege ich da richtig oder ist es wahrscheinlicher, dass mein Apache die Ausführung des PHP-Scriptes aufschiebt so lange noch ein anderes Script läuft? Lasse ich den Player direkt eine Datei abspielen tritt die Verzögerung nicht auf und in der Konsole von Chrome wird kein Request gelistet. Gibt es irgendwelche Konfigurationsmöglichkeiten für den Player, wie mit weiteren Requests umgegangen werden soll. In Javascript gibt es diese Funktion ja meistens ( zumindest mit MooTools ).
Danke schomal
PHP code der streamenden Datei:
Danke schomal
PHP code der streamenden Datei:
PHP:
User::chk_login();
header('Cache-Control: no-cache');
header("Cache-Control: no-store, must-revalidate");
header('Pragma: no-cache');
header("Content-Type: audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3, audio/mpeg, audio/x-mp3");
header("Content-Transfer-Encoding: binary");
openMp3($_GET['file']);
function openMp3($track_id){
$song = new Track($track_id);
$handle = fopen($song->get('filename'), "rb");
if($handle){
while (!feof($handle)){
print(fread($handle, 8192));
}
fclose($handle);
return true;
}
else{
fclose($handle);
ob_end_clean();
return false;
}
}