目前MP3文件比较通用的标签有ID3v1,ID3V2,APEv2.
一、ID3v1位于Mp3文件的最后128个字节,其中包括:
第一部分为固定的$54 14 47,表示'TAG'这三个字符
然后30个字节的空间用来表示歌曲名,30个字节表示艺术家名,30个字节表示专辑名,4个字节表示发行年份,30个字节表示注释和备注信息,1个字节表示音乐流派
二、ID3V2就复杂一点了
ID3V2位于文件开头或者APE标签之后,就我见过的大部分都位于文件开头。
ID3V2包括一个TAG Head和很多Frame,每个Frame又由Frame Head和Frame Body构成.
1.先来看TAG Head:
ID3v2/file identifier "ID3" ID3v2 version $03 00 ID3v2 flags %abc00000 ID3v2 size 4 * %0xxxxxxx
TAG Head总长度为10个字节。
头三个字节固定,表示'ID3'这三个字符
然后是两个字节表示标签版本号, 如$03 00,其中第一个字节表示主版本号,第二个自己表示副版本号
然后是1个字节的标志符,头三位有效,
a位表示whether or not unsynchronisation is used
b位表示 whether or not the header is followed by an extended header
c位表示实验版
然后是4个字节用来表示Tag的大小