Mp3 ID3-теги, сбивающие с толку структуру APIC - PullRequest
0 голосов
/ 20 сентября 2019

Я работаю над читателем тегов 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

File 2

...