Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/27: Рейтинг темы: голосов - 27, средняя оценка - 4.56
1676 / 879 / 201
Регистрация: 25.11.2009
Сообщений: 1,797
1

ID3 теги в mp3 файлах

06.12.2009, 20:37. Просмотров 5652. Ответов 8
Метки нет (Все метки)

Долго искал информацию, как получить из файла mp3 теги. Нашёл какой-то пример, взял из него нужный код (максимально упростив, просто, чтобы разобраться как всё работает), смог получить заголовок, исполнителя, альбом, год и комментарий, но не могу найти жанр.
Вот код
Код
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 const int BUFS=200;
 char buf[BUFS];
 AnsiString sFN;

 AnsiString currDir = "C:\\";
 if(currDir[currDir.Length()] != '\\') currDir += "\\";

//    Application->ProcessMessages();

    sFN=(currDir + "1.mp3");

    int ih = FileOpen(sFN,fmOpenRead);
    FileSeek(ih,-128,2);
    for(int i=0; i<BUFS; i++) buf[i]=0;
    FileRead(ih,buf,BUFS-1);
    FileClose(ih);
    AnsiString sbuf = buf;

    AnsiString tit;
    tit = delSPACE(sbuf.SubString(1,200));
    Label1->Caption=tit;
}
получаю строку:
TAGНазвание Исполнитель Альбом 1987Комментарии

Тут всё понятно, но где жанр?

И ещё не понял, какую функцию выполняет строка
Application->ProcessMessages();
т. к. без неё всё работает точно так же.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2009, 20:37
Ответы с готовыми решениями:

Работа с mp3 id3 тегами
Здравствуйте, мне нужно работать с mp3 id3 тегами, то есть название трека, альбом , исполнитель!!...

Иногда не работает очистка id3 тегов
здравствуйте, используя ранние навыки в теме:...

Удалить теги ID3 (mp3)
Сабж чем можно ? В Linux я использовал Easyatag, есть порт ее под windows, но она требует Gtk+, а...

ID3 теги mp3 файла Delphi
Помогите с программой. Нашел исходник, такое ощущение, что он один вообще) Не работает, выводит...

8
1848 / 705 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
06.12.2009, 21:40 2
Функция Application->ProcessMessages() выполняет обработку сообщений. Если у тебя длинный цикл, который идет более нескольких секунд, ты можешь обрабатывать сообщения, и тогда у пользователя не возникнет ощущения, что программа зависла.
А насчет жанра. Это однобайтовое число: находится тут:
the layout is
ID3v1 identification -> 3 characters (the word "TAG")
Song Title -> 30 characters
Artist -> 30 characters
Album -> 30 characters
Year -> 4 characters
Comment -> 30 characters
Genre -> 1 byte <-----а вот и жанр
Расшифровка значений:
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
1
1676 / 879 / 201
Регистрация: 25.11.2009
Сообщений: 1,797
08.12.2009, 17:12  [ТС] 3
Otaka, спасибо. Только мне не совсем понятно, я в свойствах файла в поле жанр записываю слово "жанр" (которое, естественно, не входит в этот список), и MediaPlayer при воспроизведении показывает "жанр" - откуда он берёт это слово?
0
1848 / 705 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
08.12.2009, 17:39 4
Наверное, это еще зависит от версии. В mp3 есть по крайней мере 2 версии тегов(и они могут обе существовать в одном mp3 файле). Может быть ты записываешь слово "жанр" в ID3v2, а та таблица для версии ID3v1?
1
1676 / 879 / 201
Регистрация: 25.11.2009
Сообщений: 1,797
08.12.2009, 17:53  [ТС] 5
А не подскажешь, как туда попасть? )))
0
1676 / 879 / 201
Регистрация: 25.11.2009
Сообщений: 1,797
08.12.2009, 20:54  [ТС] 6
Так и не смог найти в интернете нужной информации, за то вот что дал мне WinHex
ID3 теги в mp3 файлах

для Mp3 файла с такими тегами
ID3 теги в mp3 файлах


(выделенный оффсет = длине соответствующего тега+1)
Это самое начало mp3 файла
0
1676 / 879 / 201
Регистрация: 25.11.2009
Сообщений: 1,797
10.12.2009, 11:48  [ТС] 7
Столкнулся ещё с одной проблемой:
Пока отлаживал работу программы, "трениролвался" на одном mp3 файле, теги к которому прописал стандартными виндовыми средствами (через свойства файла). У меня Windows 7. С ним программа, кусок кода которой приведён ниже, работает. Но когда я попытался открыть файлы, теги к которым прописывал ещё в XP, обнаружил. что там они хранятся по другому... Я понимаю, что дело в разных версиях ID3, но не знаю как получить доступ к ним.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  const int BUFS=100;
  char buf[BUFS];
  AnsiString sFN;
 
if (OpenDialog1->Execute())
{
 sFN=(OpenDialog1->InitialDir+OpenDialog1->FileName);
 int ih = FileOpen(sFN,fmOpenRead);
 FileSeek(ih,-128,2);
 for(int i=0; i<BUFS; i++) buf[i]=0;
 FileRead(ih,buf,BUFS-1);
 FileClose(ih);
 AnsiString sbuf = buf;
 DBNavigator1->BtnClick(nbInsert);
 DBEdit1->Text=delSPACE(sbuf.SubString(4,30));   
 DBEdit2->Text=delSPACE(sbuf.SubString(34,30));
 DBEdit4->Text=delSPACE(sbuf.SubString(64,30));
 DBEdit5->Text=delSPACE(sbuf.SubString(94,4));
 DBNavigator1->BtnClick(nbPost);
}
0
1848 / 705 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
10.12.2009, 18:15 8
Смотри сюда и медитируй: http://www.id3.org/
1
1676 / 879 / 201
Регистрация: 25.11.2009
Сообщений: 1,797
10.12.2009, 22:22  [ТС] 9
Otaka, спасибо, но я там был. С английским у меня беда )))
Будем учить ))))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2009, 22:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Пропали эскизы папок с mp3 файлами, отсутствуют теги в mp3 файлах
Доброго времени суток, появилась такая проблема: пропали эскизы папок с mp3 файлами, а так же...

ID3v1 теги в mp3 файлах, получить всю информацию о треке
Hi! Вот решил реализовать &quot;вытаскивание&quot; технической информации из mp3 файла. public class...

ID3-Tag'и из MP3-файла
Здравствуйте. Для прочтения ID3 тегов из файла нашёл вот такой код: Процедура читающая теги из...

Читать ID3 Тэг MP3 файла
Здравствуйте! Помогите пож-та с разработкой программки... Нужно считать тэг из MP3...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.