Я работаю над читателем тегов ID3 на JavaScript (сторона интерфейса) для файлов Mp3.Мне удалось разобрать текстовые фреймы.Теперь кадр APIC для меня не имеет смысла.
Согласно официальной спецификации, каждый кадр начинается с этого:
Frame ID $xx xx xx xx (four characters)
Size 4 * %0xxxxxxx
Flags $xx xx
И это структура кадра APIC:
<Header for 'Attached picture', ID: "APIC">
Text encoding $xx
MIME type <text string> $00
Picture type $xx
Description <text string according to encoding> $00 (00)
Picture data <binary data>
Я прикрепил скриншоты двух песен, открытых с помощью Sublime Text в кодировке UTF-8.Итак, я ожидаю увидеть MIME type
сразу после 7-го байта (размер кадра + флаги + кодировка текста APIC) после слова «APIC».Работает для 1-го файла, но во 2-м есть еще 2 байта перед фактическим типом MIME.У меня есть другие файлы, где MIME type
имеет префикс с несколькими странными байтами (не обязательно 2 байта).Байт picture type
кажется более простым, хотя за ним следует байт 0x00 (в документации ничего не говорится о том, что за ним следует $ 00), а фактическое значение иногда отсутствует.И я не уверен, где на самом деле останавливается часть description
и начинается picture data
.
![File 1](https://i.stack.imgur.com/ybmeU.png)
![File 2](https://i.stack.imgur.com/W39r8.png)