mp3 id3 aus externem file lesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mp3 id3 aus externem file lesen

    Hallo,

    vielleicht hat jmd. eine idee. Ich würde gerne id3 Daten eines mp3 files auslesen ohne, dass es auf meinem rechner ist. Im Endeffekt habe ich nur die url zu einem mp3 file. Mittels php ist es ja möglich die id3 Daten auszulesen. Nun dachte ich muss es doch möglich sein, dass lediglich auch die url ausreicht, indem man den klink zu dem file angibt, php dieses kurz öffnet und die Daten ausliest. Hat hier jmd. evtl. eine Lösung für oder auch eine andere Methode im Kopf um dieses Problem zu lösen?

    Gruß

  • #2
    Re: mp3 id3 aus externem file lesen

    fopen ...?
    Oder fsockopen & Co.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ok wußte nicht,dass das so geht.
      Habe nun ein php tutorial gefunden, doch leider reichen meine php kenntnisse mal wieder nicht aus, daher wollte ich fragen, ob mir jmd. das skript für eine mp3 url modifizieren kann?

      functions.inc.php
      PHP-Code:
      <?php
      function mp3info($file


          
      $fp fopen($file"rb"); 
          if (!
      $fp) return 0
           
          
      // Try to find ID3v1.x 
          
      fseek($fpfilesize($file)-128); 
          
      $id3v1 fread($fp128); 
          if (
      substr($id3v103) == "TAG"
          { 
      // Yay! 
              
      $mp3[title] = trim(substr($id3v1330)); 
              
      $mp3[artist] = trim(substr($id3v13330)); 
              
      $mp3[album] = trim(substr($id3v16330)); 
              
      $mp3[year] = trim(substr($id3v1934)); 
              if (
      substr($id3v11251) == "\0" && substr($id3v11261) != "\0"
              { 
      // we got a ID3v1.1 here 
                  
      $mp3[comment] = trim(substr($id3v19729)); 
                  
      $mp3[track] = ord(substr($id3v11261)); 
              } 
              else 
              { 
      // old ID3v1 
                  
      $mp3[comment] = trim(substr($id3v19730)); 
              } 
              
      $mp3[genre] = ord(substr($id3v11271)); 
          } 
          else 
      $mp3 0

          
      fclose($fp); 

          return 
      $mp3

      ?>
      mp.php

      PHP-Code:
      <? 
      include("functions.inc.php"); // angenommen die mp3info() steht in dieser Datei 

      $verzeichnis = "./mp3/"; 

      $dir = opendir($verzeichnis);  
      while($datei = readdir($dir)) { 
          if (is_file($verzeichnis.$datei) && (substr($datei, -3, 3) == "mp3")) 
          { 
              $info = mp3info($verzeichnis.$datei); 
              if ($info) echo "Datei: $datei<br>Artist: $info[artist]<br>Title: $info[title]<br>Album: $info[album]<br><br>"; 
          } 

      ?>
      wobei mir die zweite datei den eindruck macht als wäre sie nur da um das verzeichnis auszulesen, was ich in meinem fall ja gar nicht brauche...

      Vielen Dank

      Kommentar


      • #4
        wo is denn jetzt das Problem...du steckst in dein erste Funktion das File rein und raus bekommste ein Array mit den Infos, die du haben möchtest. Die zweite Datei durchläuft tatsächlich nur ein Verzeichnis.

        Also bei dir müsste es dann einfach so aussehen:
        PHP-Code:
        //===HTML relevanter Code hier===//

        <?php
        $datei 
        'http://meineurl/musi.mp3';
        $info mp3info($verzeichnis.$datei); 
        if (
        $info)
           echo 
        "Datei: $datei<br>Artist: $info[artist]<br>Title: $info[title]<br>Album: $info[album]<br><br>";
        else
           echo 
        'ID3 Infos konnten nicht gelesen werden';
        ?>

        Kommentar


        • #5
          ok habe das nun so eingebaut,

          PHP-Code:
          <? 
          include("functions.inc.php"); // angenommen die mp3info() steht in dieser Datei 

          $datei = 'url';
          $info = mp3info($verzeichnis.$datei); 
          if ($info)
             echo "Datei: $datei<br>Artist: $info[artist]<br>Title: $info[title]<br>Album: $info[album]<br><br>";
          else
             echo 'ID3 Infos konnten nicht gelesen werden';
          ?>

          aber leider bekomme ich folgenden fehler

          Warning: filesize() [function.filesize]: stat failed for url in E:\xampp\xampp\htdocs\dev\functions.inc.php on line 9

          Warning: fseek() [function.fseek]: stream does not support seeking in E:\xampp\xampp\htdocs\dev\functions.inc.php on line 9
          ID3 Infos konnten nicht gelesen werden


          ist es weiterhin möglich das file nicht komplett zu öffnen sondern lediglich anfang oder ende, denn nur dort sind ja die relevanten id3 informationen. Weil ansonsten würde das bei mehreren files enormen traffic verursachen..

          Vielen Dank, dass ihr euch immer wieder so viel Mühe gebt!!!!

          Kommentar


          • #6
            mhmm...hab mal wieder zuviel kopiert:

            also als Param für die Funktion dann nur $datei (ohne $verzeichnis.) übergeben (zumal du $varzeichnis ja auch nicht definiert hast). Prüfen, ob die Datei richtig angegeben wurde (denke mal, dass du nicht wirklich 'url' definierst), Zugriffsrechte prüfen (weiß ja nicht, wo dein File herkommt...)

            Kommentar

            Lädt...
            X