我在读取 ID3v2.3 标签时遇到问题。首先,我从 www.id3.org 阅读了有关 id3 标签的信息。id3 标签的文档说它的前 3 个字节包含“ID3”,然后 2 个字节包含版本和修订号(例如 03 00),然后下一个第一个字节包含标志(不同步、扩展标头、实验指示符),然后是接下来的 4 个字节为大小保留。我能够读取大小。但我的问题是,当我从当前位置向正向(我从 ID3 标签大小获取的大小)寻找指针时,这意味着我已经到达 ID3 标签的末尾,这意味着我们将读取的下一个字节是MP3 数据字节,但不是大小写。所以帮助我在 ID3 标签大小的帮助下检测 MP3 标题和 MP3 数据。我的第二个问题是 MP3 帧是与 ID3 帧混合还是与 ID3 标签完全分离。如果它与 ID3 标签是分开的,那么在 ID3 标签的末尾有一个第一个 MP3 帧。是对还是错?告诉我
问问题
2207 次
2 回答
1
您是否可能错误地读取了尺寸?四个大小字节的最左边位为零。剩下的只有 28 位。取自 ID3.org 文档:
“ID3v2 标签大小用四个字节编码,其中每个字节中最高
有效位(第 7 位)设置为零,总共 28 位。零位被忽略,因此 257 字节长的标签表示为 $00 00 02 01。”
IE。00000000 00000000 00000010 00000001 变为 0000 00000000 00000001 00000001
关于标签,这可能是我最困惑的事情,所以也许它也让你措手不及。
于 2011-04-15T02:37:57.883 回答
1
MP3 帧不与 ID3 帧混合。请注意,ID3v2.x 中的标签头大小值是一个同步安全整数,本质上是将整数转换为每个字节的 MSB 为 0 的格式。相当于每 7 位后插入一个 0。阅读维基百科:http ://en.wikipedia.org/wiki/Synchsafe
您也可以在这里查看:同步安全整数
在下面的链接中,您可以找到 ID3 标签系统的概述以及如何解码 ID3 标签的手动说明:ID3 标签到底是什么?
于 2011-05-09T17:37:33.283 回答