ID3 verze 1 je v binárním souboru mp3 uloženo jako 128 bytů na konci souboru (kvůli zpětné kompatibilitě s audio přehrávači, které neznaly ID3). Má pevně stanovenou strukturu.
Struktura vypadá následovně:
struct ID3 {
char field[3];
char track[30];
char artist[30];
char album[30];
char year[4];
char comment[30];
unsigned char genre;
};
Kde jednotlivé položky znamenají:
| Název | Popis |
| field | Obsahuje tří znakové slovo TAG určující že zde začíná definice tagu. |
| track | Název tracku |
| artist | Název skupiny/kapely/umělce |
| album | Název hudebního alba |
| year | Rok vydání |
| comment | Komentář (obvykle nese jmého autora jenž formát konvertoval do mp3) |
| genre | Hudební styl definovaný 1 bytem |
Hodnoty bytu genre mohou obsahují následující význam:
| 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.AlternRock
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 76.Retro 77.Musical 78.Rock & Roll 79.Hard Rock |
Kód který přečte data ze souboru a uloží je do struktury vypadá následovně:
#include <stdio.h>
struct ID3 {
char field[3];
char track[30];
char artist[30];
char album[30];
char year[4];
char comment[30];
unsigned char genre;
};
int main()
{
ID3 id3;
FILE *f = fopen("dido.mp3", "rb"); // otevření souboru pro binární čtení
fseek(f, -128, SEEK_END); // přesunutí kuzoru na konec souboru a 128bytů zpět
fread(&id3, sizeof(ID3), 1, f); // načtení dat do struktury
fclose(f);
return 0;
}
Při následné práci s daty struktury (např. při vypisování) nesmíme zapomínat na fakt, že struktura ID3v1 je pevně definovaná a znakové řetězce nemusí být (a zpravidla ani nejsou) zakončeny nulovým znakem „\0″.
Pingback: Alexander7
Pingback: STEVEN
Pingback: ENRIQUE
Pingback: PERRY
Pingback: LEWIS
Pingback: GUY
Pingback: EDUARDO
Pingback: BRANDON
Pingback: TERRENCE
Pingback: SALVADOR
Pingback: JAMES
Pingback: PERRY
Pingback: ROY
Pingback: DUSTIN
Pingback: TRACY
Pingback: RALPH
Pingback: GARY
Pingback: FELIX
Pingback: BYRON
Pingback: BILLY
Pingback: NATHAN
Pingback: KENNY
Pingback: BOB
Pingback: WILLIAM
Pingback: RUBEN
Pingback: DARYL
Pingback: CLIFTON
Pingback: RAY
Pingback: LAWRENCE
Pingback: LLOYD
Pingback: EVERETT
Pingback: MELVIN
Pingback: LEWIS
Pingback: BRYAN
Pingback: JOEL
Pingback: GLENN
Pingback: WESLEY
Pingback: BRUCE
Pingback: MARION
Pingback: JOHNNY
Pingback: MARION
Pingback: VINCENT
Pingback: RONALD
Pingback: LEROY
Pingback: JORGE
Pingback: JEREMIAH
Pingback: VINCENT
Pingback: AARON
Pingback: ALLEN
Pingback: WENDELL