muzik
Как в Delphi прочитать Теги mp3-шек?
Как именно в делфях это сделать, я не знаю, но вот структура ID3v1 тега:
Отматываешь на 128 байт с конца и там такое дело:
TAG[название песни - 30 байт][исполнитель - 30 байт][альбом - 30 байт][год - 4 байта][комментарий - 30 байт][жанр - 1 байт]
байт жанра преобразовываешь из 16-ричной системы в 10-ричную и смотришь на число. Вот список жанров в виде массива:
g_cstrGenreArray[1] = "Blues";
g_cstrGenreArray[1] = "Classic Rock";
g_cstrGenreArray[2] = "Country";
g_cstrGenreArray[3] = "Dance";
g_cstrGenreArray[4] = "Disco";
g_cstrGenreArray[5] = "Funk";
g_cstrGenreArray[6] = "Grunge";
g_cstrGenreArray[7] = "Hip-Hop";
g_cstrGenreArray[8] = "Jazz";
g_cstrGenreArray[9] = "Metal";
g_cstrGenreArray[10] = "New Age";
g_cstrGenreArray[11] = "Oldies";
g_cstrGenreArray[12] = "Other";
g_cstrGenreArray[13] = "Pop";
g_cstrGenreArray[14] = "R&B";
g_cstrGenreArray[15] = "Rap";
g_cstrGenreArray[16] = "Reggae";
g_cstrGenreArray[17] = "Rock";
g_cstrGenreArray[18] = "Techno";
g_cstrGenreArray[19] = "Industrial";
g_cstrGenreArray[20] = "Alternative";
g_cstrGenreArray[21] = "Ska";
g_cstrGenreArray[22] = "Death Metal";
g_cstrGenreArray[23] = "Pranks";
g_cstrGenreArray[24] = "Soundtrack";
g_cstrGenreArray[25] = "Euro-Techno";
g_cstrGenreArray[26] = "Ambient";
g_cstrGenreArray[27] = "Trip-Hop";
g_cstrGenreArray[28] = "Vocal";
g_cstrGenreArray[29] = "Jazz+Funk";
g_cstrGenreArray[30] = "Fusion";
g_cstrGenreArray[31] = "Trance";
g_cstrGenreArray[32] = "Classical";
g_cstrGenreArray[33] = "Instrumental";
g_cstrGenreArray[34] = "Acid";
g_cstrGenreArray[35] = "House";
g_cstrGenreArray[36] = "Game";
g_cstrGenreArray[37] = "Sound Clip";
g_cstrGenreArray[38] = "Gospel";
g_cstrGenreArray[39] = "Noise";
g_cstrGenreArray[40] = "Alternative Rock";
g_cstrGenreArray[41] = "Bass";
g_cstrGenreArray[42] = "Soul";
g_cstrGenreArray[43] = "Punk";
g_cstrGenreArray[44] = "Space";
g_cstrGenreArray[45] = "Medative";
g_cstrGenreArray[46] = "Instrumental Pop";
g_cstrGenreArray[47] = "Instrumental Rock";
g_cstrGenreArray[48] = "Ethnic";
g_cstrGenreArray[49] = "Gothic";
g_cstrGenreArray[50] = "Darkwave";
g_cstrGenreArray[51] = "Techno-Industrial";
g_cstrGenreArray[52] = "Electronic";
g_cstrGenreArray[53] = "Pop-Folk";
g_cstrGenreArray[54] = "Eurodance";
g_cstrGenreArray[55] = "Dream";
g_cstrGenreArray[56] = "Southern Rock";
g_cstrGenreArray[57] = "Comedy";
g_cstrGenreArray[58] = "Cult";
g_cstrGenreArray[59] = "Gangsta";
g_cstrGenreArray[60] = "Top 40";
g_cstrGenreArray[61] = "Christian Rap";
g_cstrGenreArray[62] = "Pop/Funk";
g_cstrGenreArray[63] = "Jungle";
g_cstrGenreArray[64] = "Native US";
g_cstrGenreArray[65] = "Cabaret";
g_cstrGenreArray[66] = "New Wave";
g_cstrGenreArray[67] = "Psychadelic";
g_cstrGenreArray[68] = "Rave";
g_cstrGenreArray[69] = "Showtunes";
g_cstrGenreArray[70] = "Trailer";
g_cstrGenreArray[71] = "Lo-Fi";
g_cstrGenreArray[72] = "Tribal";
g_cstrGenreArray[73] = "Acid Punk";
g_cstrGenreArray[74] = "Acid Jazz";
g_cstrGenreArray[75] = "Polka";
g_cstrGenreArray[76] = "Retro";
g_cstrGenreArray[77] = "Musical";
g_cstrGenreArray[78] = "Rock & Roll";
g_cstrGenreArray[79] = "Hard Rock";
g_cstrGenreArray[80] = "Folk";
g_cstrGenreArray[81] = "Folk-Rock";
g_cstrGenreArray[82] = "National Folk";
g_cstrGenreArray[83] = "Swing";
g_cstrGenreArray[84] = "Fast Fusion";
g_cstrGenreArray[85] = "Bebob";
g_cstrGenreArray[86] = "Latin";
g_cstrGenreArray[87] = "Revival";
g_cstrGenreArray[88] = "Celtic";
g_cstrGenreArray[89] = "Bluegrass";
g_cstrGenreArray[90] = "Avantgarde";
g_cstrGenreArray[91] = "Gothic Rock";
g_cstrGenreArray[92] = "Progressive Rock";
g_cstrGenreArray[93] = "Psychedelic Rock";
g_cstrGenreArray[94] = "Symphonic Rock";
g_cstrGenreArray[95] = "Slow Rock";
g_cstrGenreArray[96] = "Big Band";
g_cstrGenreArray[97] = "Chorus";
g_cstrGenreArray[98] = "Easy Listening";
g_cstrGenreArray[99] = "Acoustic";
g_cstrGenreArray[100] = "Humor";
g_cstrGenreArray[101] = "Speech";
g_cstrGenreArray[102] = "Chanson";
g_cstrGenreArray[103] = "Opera";
g_cstrGenreArray[104] = "Chamber Music";
g_cstrGenreArray[105] = "Sonata";
g_cstrGenreArray[106] = "Symphony";
g_cstrGenreArray[107] = "Booty Bass";
g_cstrGenreArray[108] = "Primus";
g_cstrGenreArray[119] = "Porn Groove";
g_cstrGenreArray[110] = "Satire";
g_cstrGenreArray[111] = "Slow Jam";
g_cstrGenreArray[112] = "Club";
g_cstrGenreArray[113] = "Tango";
g_cstrGenreArray[114] = "Samba";
g_cstrGenreArray[115] = "Folklore";
g_cstrGenreArray[116] = "Ballad";
g_cstrGenreArray[117] = "Power Ballad";
g_cstrGenreArray[118] = "Rhytmic Soul";
g_cstrGenreArray[119] = "Freestyle";
g_cstrGenreArray[120] = "Duet";
g_cstrGenreArray[121] = "Punk Rock";
g_cstrGenreArray[122] = "Drum Solo";
g_cstrGenreArray[123] = "Acapella";
g_cstrGenreArray[124] = "Euro-House";
g_cstrGenreArray[125] = "Dance Hall";
g_cstrGenreArray[126] = "Goa";
g_cstrGenreArray[127] = "Drumm & Bass";
g_cstrGenreArray[128] = "Club-House";
g_cstrGenreArray[129] = "Hardcore";
g_cstrGenreArray[130] = "Terror";
g_cstrGenreArray[131] = "Indie";
g_cstrGenreArray[132] = "BritPop";
g_cstrGenreArray[133] = "Negerpunk";
g_cstrGenreArray[134] = "Polsk Punk";
g_cstrGenreArray[135] = "Beat";
g_cstrGenreArray[136] = "Christian Gangsta Rap";
g_cstrGenreArray[137] = "Heavy Metal";
g_cstrGenreArray[138] = "Black Metal";
g_cstrGenreArray[139] = "Crossover";
g_cstrGenreArray[140] = "Contemporary Christian";
g_cstrGenreArray[141] = "Christian Rock";
g_cstrGenreArray[142] = "Merengue";
g_cstrGenreArray[143] = "Salsa";
g_cstrGenreArray[144] = "Trash Metal";
g_cstrGenreArray[145] = "Anime";
g_cstrGenreArray[146] = "JPop";
g_cstrGenreArray[147] = "Synthpop";
g_cstrGenreArray[255] = "";
правда структура ID3v1 может изменится, если есть номер трека ( там к каком-то поле последний 30-й байт изменится ).
А как читать ID3v2 я не знаю, знаю что он в начале файла. Вот. Если хошь, могу дать класс на C++ для вычитывания инфы с mp3 - там не только теги, но и подсчет фреймов, длительность трека и все такое.