ID3 TAG - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



C/C++

ID3 TAG

29. června 2001, 00.00 | V dnešním díle seriálu si povíme něco o popisu skladby. O tzv. ID3 TAGu. Tento popis je nespornou výhodou tohoto formátu.

V dnešním díle seriálu si povíme něco o popisu skladby. O tzv. ID3 TAGu. Tento popis je nepopřitelnou výhodou tohoto formátu. Představte si, že máte několik stovek, nebo tisíc skladeb s nicneříkajícími názvy. Samozřejmě můžete nyní namítnout, že názvy souborů svých skladeb svědomitě popisujete, ale řekněme si upřímně, soubor s názvem jako je například : Queen-Who_Wants_To_Live_Forever-A_Kind_Of_Magic-1986-Tohle_je_fakt_dost_dobra_skladba.mp3 vypadá poněkud "dlouze".

Přestože existuje několik verzí tohoto popisu, lišící se hlavně velikostí polí (popřípadě počtem polí), my si dnes popíšeme verzi 1, která je v současnosti asi nejrozšířenější. Takže jdeme na to.

Tag se nachází na konci souboru a NENÍ povinný. To znamená že soubor nemusí tento popis obsahovat. Následující tabulka Vám nastíní, jaké informace můžeme mít o skladbě uloženy :

Offset Velikost Obsah
00h (0) 3 Tag Header
03h (3) 30 Title
21h (33) 30 Artist
3Fh (63) 30 Album
5Dh (93) 4 Year
61h (97) 30 Comment
7Fh (127) 1 Genre

Jak lze z tabulky vyčíst, velikost tohoto pole je 128 bytů, což nám pro jednoduchý popis bude bezpochyby stačit.

Podle tabulky (viz. nahoře) si vytvoříme strukturu, do které si data později načteme :

struct
{
   unsigned char ID[3];
   unsigned char Title[30];
   unsigned char Artist[30];
   unsigned char Album[30];
   unsigned char Year[4];
   unsigned char Comment[30];
   unsigned char Genre;
} TAG;

Pro nás bude v tuto chvíli nejdůležitější pole "Tag Header", podle kterého zjistíme, zda je popis v souboru obsažen, nebo ne. Pokud je popis v souboru obsažen, bude toto pole obsahovat signaturu "TAG".

Víme tedy, že popis skladby se nachází na konci souboru a je dlouhý 128 bytů. Pokud jej chceme tedy přecíst, musíme přejít na 128 bytů od konce souboru a tyto data přečíst:

FileSeek ( (int)StreamHandle, -128, SEEK_END);
FileRead ( (int)StreamHandle, (void*)&TAG, 128);

Kde SEEK_END je definice odpovídající hodnotě 2 a říká, že výchozí bod v souboru bude jeho konec.

Jak jste si již asi všimli, jediná "nesrozumitelná" položka je "Genre". Tato položka obsahuje číslo, které je vlastne ID stylu hudby. Seznam těchto stylů si můžete opsat v jakémkoli editoru ID3 TAGu (například WinAMP).

Tímto je obsah dnešního dílu objasněn a těším se na Vás zase u příštího dílu, ve kterém se začneme blíže zajímat o pricipy a funkci dekódování samotných hudebních dat.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » C/C++  

 » Rubriky  » Software  

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: