mp3 tags vor dem upload auslesen?

speedone

New Member
Hallo

Kleine Frage: Lassen sich id3 Tags v1 schon vor dem upload auslesen? (Bis jetzt kann ich mir das selber noch nicht wirklich vorstellen, weil ja die letzten 128 bytes von der mp3 ausgelesen werden müssen.
Meine Idee war, dass man mp3s auf der festplatte suchen kann (mehrer markieren kann) und dann diese geuploadet werden können. Soche lösungen gibt es ja viele.
Ich möchte aber noch befor sie wirklich geuploadet werden die mp3 tags anzeigen lassen und den User fragen, ob diese Informationen korrekt sind. Andernfalls öffnet sich ein formular, wo die id3 tags bearbeitet werden können und später dann geupdatet werden. Die Tags kommen in eine Datenbank

Das auslesen der Tags würde ich so machen. Allerdings müsste die Funktion noch geändert werden, weil die Dateien ja noch nicht auf dem server liegen.

PHP:
<?php
$genre = array(0 => "Blues", 1 => "Classic Rock", 2 => "Country", 3 => "Dance", 4 => "Disco", 5 => "Funk",
   6 => "Grunge", 7 => "Hip-Hop", 8 => "Jazz", 9 => "Metal", 10 => "New Age",
   11 => "Oldies", 12 => "Other", 13 => "Pop", 14 => "R&B", 15 => "Rap",
   16 => "Reggae", 17 => "Rock", 18 => "Techno", 19 => "Industrial", 20 => "Alternative",
   21 => "Ska", 22 => "Death Metal", 23 => "Pranks", 24 => "Soundtrack", 25 => "Euro-Techno",
   26 => "Ambient", 27 => "Trip-Hop", 28 => "Vocal", 29 => "Jazz+Funk", 30 => "Fusion",
   31 => "Trance", 32 => "Classical", 33 => "Instrumental", 34 => "Acid", 35 => "House",
   36 => "Game", 37 => "Sound Clip", 38 => "Gospel", 39 => "Noise", 40 => "Alternative Rock",
   41 => "Bass", 42 => "Soul", 43 => "Punk", 44 => "Space", 45 => "Meditative",
   46 => "Instrumental Pop", 47 => "Instrumental Rock", 48 => "Ethnic", 49 => "Gothic", 50 => "Darkwave",
   51 => "Techno-Industrial", 52 => "Electronic", 53 => "Pop-Folk", 54 => "Eurodance", 55 => "Dream",
   56 => "Southern Rock", 57 => "Comedy", 58 => "Cult", 59 => "Gangsta", 60 => "Top 40",
   61 => "Christian Rap", 62 => "Pop/Funk", 63 => "Jungle", 64 => "Native American", 65 => "Cabaret",
   66 => "New wave", 67 => "Psychadelic", 68 => "Rave", 69 => "Showtunes", 70 => "Trailer",
   71 => "Lo-Fi", 72 => "Tribal", 73 => "Acid Punk", 74 => "Acid Jazz", 75 => "Polka",
   80 => "Folk", 81 => "Folk-Rock", 82 => "National Folk", 83 => "Swing", 84 => "Fast Fusion", 85 => "Bebob",
   86 => "Latin", 87 => "Revival", 88 => "Celtic", 89 => "Bluegrass", 90 => "Avantgarde",
   91 => "Gothic Rock", 92 => "Progressive Rock", 93 => "Psychedelic Rock", 94 => "Symphonic Rock", 95 => "Slow Rock",
   96 => "Big Band", 97 => "Chorus", 98 => "Easy Listening", 99 => "Acoustic", 100 => "Humour",
   101 => "Speech", 102 => "Chanson", 103 => "Opera", 104 => "Chamber Music", 105 => "Sonata",
   106 => "Symphony", 107 => "Booty Bass", 108 => "Primus", 109 => "Porn Groove", 110 => "Satire",
   111 => "Slow Jam", 112 => "Club", 113 => "Tango", 114 => "Samba", 115 => "Folklore",
   116 => "Ballad", 117 => "Power Ballad", 118 => "Rhythmic Soul", 119 => "Free Style", 120 => "Duet",
   121 => "Punk Rock", 123 => "A capella", 124 => "Euro-House", 125 => "Dance Hall");


function id3($filename = "")
{
  global $genre;
  if (!is_file($filename) or filesize($filename) < 128)
  {
    return false;
    break;
  }
  $fp = fopen($filename, "r");
  fseek($fp, filesize($filename) - 128);
  $id3 = fread($fp, 128);
  $arr = array();
  if (strtoupper(substr($id3, 0, 3)) == "TAG")
  {
    $arr["song"] = trim(substr($id3, 3, 30));
    $arr["artist"] = trim(substr($id3, 33, 30));
    $arr["album"] = trim(substr($id3, 63, 30));
    $arr["year"] = trim(substr($id3, 93, 4));
    $arr["comment"] = trim(substr($id3, 97, 30));
    $arr["genre"] = $genre[ord($id3[127])];
    return $arr;
  }
  else
    return false;
  fclose($fp);
}
?>
 
Last edited by a moderator:
Mit PHP sehe ich dafür keine Möglichkeit. Die Daten müssen ja auf dem Client gelesen werden.

Evtl. ginge das mit Flash oder Java.
 
Ok habe ich mir auch schon gedacht

Werde es dann in einer anderen Reihenfolge machen. Erst uploaden, dann id3 Tags überprüfen
 
Back
Top