Mp3 ID3标签,混乱的APIC帧结构。

问题描述 投票:0回答:1

我正在开发一个针对Mp3文件的JavaScript(前端)ID3标签阅读器。我设法解析了文本框架。现在,APIC框架对我来说没有意义。

根据官方的规范,每个框架都是以这个开头的,这就是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 就在 "APIC "字后面的第7个字节(帧大小+标志+APIC文本编码)。对第一个文件有效,但在第二个文件中,在实际的MIME类型之前多了两个字节。我有其他文件,在这些文件中 MIME type 是用几个奇怪的字节(不一定是2个字节)作为前缀。的 picture type 字节似乎更直接,尽管它后面是一个0x00字节(文档中并没有说它后面是$00),而且实际值有时会丢失。而且我也不知道这个 description 部分实际停止,而 picture data 开始。

File 1

File 2

javascript byte mp3 id3 reader
1个回答
0
投票

你可以从前几十个字节创建一个字符串。之后使用类似这样的东西。

let mime = str.match(/image\/[a-z]+/)[0];
let binaryStartIndex = str.indexOf(mime) + mime.length + 3;
© www.soinside.com 2019 - 2024. All rights reserved.