Чем читать метаденные из mp3?

Предыдущая тема Следующая тема Перейти вниз

Чем читать метаденные из mp3?

Сообщение  mishana в Вс Ноя 09, 2008 9:02 pm

Привет.
Во -первых, хочу поблагодарить создателей этого форума, за их работу. Наконец - то и нашому брату есть где потусоватся.

А теперь проблема.

Задумал написать плеер, специально для проигрования аудио - книг в mp3. Наверное буду использовать FMOD. Но вот как читать метаданные (теги) из файлов? То -есть мне надо чтобы в окне отображались названия глав и статей (а не файлов), так как это делается, например, в Winamp. Кажись у FMODа есть функции для работы с тегами, но я их никогда не использовал. Может кто имел с такой байдой дело, хотелось бы получить совет профи Smile

mishana

Сообщения : 8
Дата регистрации : 2008-11-09
Возраст : 31
Откуда : Україна, Шепетівка

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Чем читать метаденные из mp3?

Сообщение  tux в Вт Ноя 11, 2008 10:13 am

Наверно на ету тему лучше посоветоваться с Eric-S, а тут к сожалению несилен((
avatar
tux

Сообщения : 365
Дата регистрации : 2008-04-06
Возраст : 29
Откуда : Сибирь

Посмотреть профиль http://tux.nsk.ru/

Вернуться к началу Перейти вниз

Re: Чем читать метаденные из mp3?

Сообщение  Замабувараев в Ср Ноя 12, 2008 6:06 pm

Я предполагаю, что здесь идёт речь о MP3-тэгах.

Файлы mp3 могут хранить информацию об исполнителе, названии песни, альбоме и т.д. в так называемом тэге ID3. Располагается этот тэг в последних 128 байтах файла (но его наличие в файле необязательно). Таким образом, для извлечения информации нужно считать последние 128 байтов файла, проверить специальную сигнатуру (первые три символа - TAG), и если она совпала, то считаем эти самые 128 байтов ID3-тэгом. Сам тэг в свою очередь делится на небольшие фрагменты по несколько байтов, в которых и содержится информация.

Смещение (байт)Размер в байтахНазваниеСодержание
03Signature"TAG" (если сигнатуры нет, то это не ID3-тэг)
330TitleНазвание песни
3330ArtistИсполнитель
6330AlbumНазвание альбома
934YearГод выпуска
9730CommentКомментарий
1271GenreЖанр

Как видите, название песни, альбома, исполнитель и комментарий представляются не более чем 30 символами, если же в строке меньше 30 символов, то она дополняется символами с кодом 0 (первый символ с кодом 0 считается концом строки). Имеется также небольшое расширение формата - ID3-тэг версии 1.1, позволяющий сохранять номер трека компакт-диска, с которого оцифровывалась музыка. Для этого выделен последний байт комментария. Чтобы быть уверенным, что это номер трэка, а не символ из очень длинного комментария, нужно проверить предпоследний байт на равенство нулю. Кроме того, существует спецификация ID3 версии 2.0, в которую вошли дополнительные данные.

Последний байт тэга отвечает за жанр. Была разработана таблица соответствия названий жанров значению байта.

ЖанрЗначение байта
Blues0
ClassicRock1
Country2
Dance3
Disco4
Funk5
Grunge6
HipHop7
Metal9
NewAge10
Oldies11
Other12
Pop13
RnB14
Rap15
Reggae16
Rock17
Techno18
Industrial19
Alternative20
Ska21
DeathMetal22
Pranks23
Soundtrack24
EuroTechno25
Ambient26
TripHop27
Vokal28
JazzFunk29
Fusion30
Trance31
Classical32
Instrumental33
Acid34
House35
Game36
SoundClip37
Gospel38
Noise39
AlternRock40
Bass41
Soul42
Punk34
Space44
Meditative45
InstrumentalPop46
InstrumentalRock47
Ethnic48
Gothic49
Darkware50
TechnoIndustrial51
Electronic52
PopFolk53
Eurodance54
Dream55
SouthemRock56
Comedy57
Cult58
Gangsta59
Top4060
ChristianRap61
PopFunk62
Jungle63
NativeAmerican64
Cabaret65
NewWave66
Psychadelic67
Rave68
Showtunes69
Trailer70
LoFi71
Tribal72
AcidPunk73
AcidJazz74
Polka75
Retro76
Musical77
RocknRoll78
HardRock79
None255

Не исключено, что названия жанров будут пополняться. Поищите информацию также в интернете.
avatar
Замабувараев

Сообщения : 99
Дата регистрации : 2008-08-20
Возраст : 33
Откуда : Красноярск

Посмотреть профиль http://www.freebasic.su

Вернуться к началу Перейти вниз

Re: Чем читать метаденные из mp3?

Сообщение  mishana в Пн Ноя 17, 2008 10:27 am

Большое спасибо всем кто откликнулся на эту тему. Очень ценная информация. Но к сожалению, оказалось, что мне нужно читать тэги id3v2, а их формат совсем другой. Во - первых размещаются они не в конце,а в начале mp3 файла, к тому же, имеют переменную длину полей, которые у них, насколько я понял, могут быть чуть ли не по 16 Мб.
Оказывается, библиотека BASS читает id3v2 тэги. Там и специальная функция есть, и структура(BASS_ChannelGetTags,TAG_ID3). Но структура, задокументирована под id3v1. Кароче буду пробовать может чё получится. Просто времени нету. Буду рад помощи.

mishana

Сообщения : 8
Дата регистрации : 2008-11-09
Возраст : 31
Откуда : Україна, Шепетівка

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Чем читать метаденные из mp3?

Сообщение  Eric-S в Пт Ноя 28, 2008 6:10 am

Привет!
К сожалению, я ничего хорошего сказать не могу. Ковырялся, но не на очень низком уровне.
Где-то видел библиотечку, специально чтобы читать тэги. Но кроме того, что такая есть, ничего больше не могу сказать.


Плеер для аудио книг, это хорошая и правильная мысль. Сам уже над этим давно думал. Где-то даже на форуме клуба любителей аудио книг, об этом писал. И про его предполагаемые функции.
Так что идею поддерживаю, но пока только морально!

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Чем читать метаденные из mp3?

Сообщение  mishana в Ср Дек 03, 2008 12:02 am

Хай, пипл!

Значит, попробовал я на днях розчехлится с BASSовскими тэг-функциями. Сразу скажу, нифига не получилось.

Когда я попробовал использовать функцию BASS_ChannelGetTags, компилятор выдал, что переменной с таким именем не существует. Я полез в файл bass.bi и оказалось таки да - нет такой функции. Зато есть точно такая же BASS_StreamGetTags, о которой в документации ни слова. При попытке использовать эту функцию, компилятор ругается, что такой точки входа в файл bass.dll не существует. No
Я рискнул было прописать функцию в заголовочном файле, но при компиляции все равно что-то там не клеится. Как правильно задекларировать функцию? Может прямо в программе? Буду пробовать, о результатах доложу.

пысы. кстати, я немного ошибся, BASS_ChannelGetTags таки читает id3v2 тэги. Поэтому, я и хочу ее использовать. Не надо будет еще одной библиотеки для чтения тэгов. Хотя онную поискать стоит.

mishana

Сообщения : 8
Дата регистрации : 2008-11-09
Возраст : 31
Откуда : Україна, Шепетівка

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Чем читать метаденные из mp3?

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения