U trendu

Delphi – Čitanje ID3 taga iz MP3 fajla

Gotovo svaki MP3 fajl poseduje u svom zaglavlju (ID3-Tag) informacije o numeri, izvođaču, godini izdavanja i eventualno neki komentar. Ovu informaciju ne nose sve pesme u MP3 formatu, ali je „ID3“ zaglavlje gotovo standard. U sledećim redovima prikazaćemo proceduru koja će iščitavati ove informacije i koju recimo možete da upotrebite za kreiranje sopstvene baze podataka o MP3 numerama na vašem kompjuteru.

Struktura ID3-Tag zaglavlja je dugačka 128 bajtova, i izgleda ovako:


type
TID3Tag = packed record // 128 bytes
TAGID: array[0..2] of char; // 3 bytes: TAG
Title: array[0..29] of char; // 30 bytes: Naslov numere
Artist: array[0..29] of char; // 30 bytes: Izvodjac numere
Album: array[0..29] of char; // 30 bytes: Album
Year: array[0..3] of char; // 4 bytes: Godina izdanja
Comment: array[0..29] of char; // 30 bytes: Komentar
Genre: byte; // 1 byte: ID tipa muzickog zanra
end;

Za čitanje ID3 zaglavlja, iskoristićemo sledeću funkciju, koja će rezultat prikazati u dijalog prozoru:


procedure TForm1.Button1Click(Sender: TObject);
const
_mp3file=’G:Mp3Bajaga442 do Beograda.mp3′;
var
id3tag: TID3tag;
mp3file: Tfilestream;
begin
mp3file:=Tfilestream.create(_mp3file,fmOpenRead);
try
mp3file.position:=mp3file.size-128;
mp3file.Read(id3tag,SizeOf(id3tag));
showmessage(‘ Naslov: ‘+id3tag.title+#13+
‘ Izvodjac: ‘+id3tag.artist+#13+
‘ Album: ‘+id3tag.album+#13+
‘ Godina: ‘+id3tag.year+#13+
‘ Komentar: ‘+id3tag.comment+#13+
‘ Zanr: ‘+inttostr(id3tag.genre)
);
finally
mp3file.free;
end;
end;

Funkcija će iščitati neki MP3 fajl, „skočiće“ na traženih 128 bajtova, pročitaće ih i prikazati informacije u dijalog prozoru.

Što se tiče ID tipa muzičkog žanra, postoji lista od nekih 126 žanrova koje koristi poznati „WinAmp“. Navešćemo sve žanrove, pa ih možete uvrstiti u funkciju, prvih 80 su skoro standardne, ostatak je dodao „WinAmp“ (indeks počinje od nule): Blues, Classic Rock, Country, Dance, Disco, Funk, Grunge, Hip-Hop, Jazz, Metal, New Age, Oldies, Other, Pop, R&B, Rap, Reggae, Rock, Techno, Industrial, Alternative, Ska, Death Metal, Pranks, Soundtrack, Euro-Techno, Ambient, Trip-Hop, Vocal, Jazz+Funk, Fusion, Trance, Classical, Instrumental, Acid, House, Game, Sound Clip, Gospel, Noise, AlternRock, Bass, Soul, Punk, Space, Meditative, Instrumental Pop, Instrumental Rock, Ethnic, Gothic, Darkwave, Techno-Industrial, Electronic, Pop-Folk, Eurodance, Dream, Southern Rock, Comedy, Cult, Gangsta, Top 40, Christian Rap, Pop/Funk, Jungle, Native American, Cabaret, New Wave, Psychadelic, Rave, Showtunes, Trailer, Lo-Fi, Tribal, Acid Punk, Acid Jazz, Polka, Retro, Musical, Rock & Roll, Hard Rock, Folk, Folk-Rock, National Folk, Swing, Fast Fusion, Bebob, Latin, Revival, Celtic, Bluegrass, Avantgarde, Gothic Rock, Progressive Rock, Psychedelic Rock, Symphonic Rock, Slow Rock, Big Band, Chorus, Easy Listening, Acoustic, Humour, Speech, Chanson, Opera, Chamber Music, Sonata, Symphony, Booty Bass, Primus, Porn Groove, Satire, Slow Jam, Club, Tango, Samba, Folklore, Ballad, Power Ballad, Rhythmic Soul, Freestyle, Duet, Punk Rock, Drum Solo, Acapella, Euro-House, Dance Hall.

Pratite Krstaricu i preko mobilne aplikacije za Android i iPhone.