Linuchs: Spiellänge von Audio-Dateien auslesen

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

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

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

      1. Das heruntergeladene file wird analysiert unter unter $ThisFileInfo['playtime_string'] habe ich den gewünschten Wert.

      2. Moin!

        Worauf bezieht sich RIFF ?

        Erste Fundstelle

        Jörg Reinholz