Spiellänge von Audio-Dateien auslesen
Linuchs
- php
Aus Audio-Dateien im Internet möchte ich die Spiellänge auslesen.
Habe getID3() ausprobiert, da kommt die Meldung: "Remote files are not supported - please copy the file locally first"
Kennt jemand eine andere Möglichkeit?
Gruß, Linuchs
Moin Linuchs,
Aus Audio-Dateien im Internet möchte ich die Spiellänge auslesen.
Habe getID3() ausprobiert, da kommt die Meldung: "Remote files are not supported - please copy the file locally first"
Naja, wenn du die Dateien streamst um die Länge auszulesen, müssen Teile davon auch zu dir übertragen werden. Also kannst du doch die Dateien in ein temporäres Verzeichnis herunterladen und dann lokal analysieren.
Viele Grüße Robert
Hallo Robert,
Naja, wenn du die Dateien streamst um die Länge auszulesen, müssen Teile davon auch zu dir übertragen werden. Also kannst du doch die Dateien in ein temporäres Verzeichnis herunterladen und dann lokal analysieren.
Ungern, aber geht wohl nicht anders. Habe ich also gemacht.
Im heruntergeladenen Programm demo.basic.php gibt es diese Funktion:
function GetLength($file) {
$fp = fopen($file, 'r');
if (fread($fp,4) == "RIFF") {
fseek($fp, 20);
$rawheader = fread($fp, 16);
$header = unpack('vtype/vchannels/Vsamplerate/Vbytespersec/valignment/vbits',$rawheader);
$pos = ftell($fp);
while (fread($fp,4) != "data" && !feof($fp)) {
$pos++;
fseek($fp,$pos);
}
$rawheader = fread($fp, 4);
$data = unpack('Vdatasize',$rawheader);
$sec = $data['datasize']/$header['bytespersec'];
$minutes = intval(($sec / 60) % 60);
$seconds = intval($sec % 60);
return round($sec,0);
}
}
Doch meine mp3-Dateien beginnen mit ID3. Worauf bezieht sich RIFF ?
Linuchs
Das heruntergeladene file wird analysiert unter unter $ThisFileInfo['playtime_string'] habe ich den gewünschten Wert.