首先需要知道的是,MP3文件的文件信息都放在文件最后的128个字节里面,这128个字节分别存储的信息如下:(ID3V1)
char Header[3]; /* 标签头必须是"TAG"否则认为没有标签 */
char Title[30]; /* 标题 */char Artist[30]; /* 作者 */
char Album[30]; /* 专集 */
char Year[4]; /* 出品年代 */
char Comment[28]; /* 备注 */
char reserve; /* 保留 */
char track;; /* 音轨 */
char Genre; /* 类型 (流派)*/
/**C语言的char*/
//-----------------------------------------------------------------------------------------------------//
ID3V2格式MP3文件信息存在头部。分为标签头与标签帧,按顺序来。
标签头:
byte identifier[3] /*标示符,固定为ID3*/
byte version /*版本号ID3V2.3 就记录3*/
byte Revision /*副版本号*/
byte flags /*标志位,只定义三位,abc00000*/
byte size[4] /*信息头大小,不包括标签头的10个字节,每个字节去掉最高位*/
public static int getTotal(byte[] Size) {
int total_size;
total_size = (Size[0]&0x7F)*0x200000
+(Size[1]&0x7F)*0x400
+(Size[2]&0x7F)*0x80
+(Size[3]&0x7F);
return total_size;
}
标签帧:存放详细信息的结构体,分为帧头与内容
byte FrameID[4] /*存放代表内容的标示,后面附常用标示*/
byte size[4] /*帧内容大小,不包括帧头,不少于1*/
byte Flags[2] /*标志位,只定义了六位*/
byte content[size] /*帧内容,大小由size确定*/
其中第一个字节为编码方式:
0000 0000代表字符使用ISO-8859-1编码方式;
0000 0001代表字符使用UTF-16编码方式;
0000 0002代表字符使用 UTF-16BE编码方式;
0000 0003代表字符使用UTF-8编码方式。
mp3的标签类型和编码,现在主要存在这几种标准,ID3v1、ID3v2 2.3、ID3v2 2.4、APEv2。它们分别支持的编码为
ID3v1:只支持ISO--8859-1
ID3v2 2.3:ISO--8859-1、UTF-16
ID3v2 2.4:ISO--8859-1、UTF-16、UTF-8
APEv2:UTF-8
用四个字符标识一个帧,说明一个帧的内容含义,常用的对照如下:
TIT2=标题 表示内容为这首歌的标题,下同
TPE1=作者
TALB=专集
TRCK=音轨 格式:N/M 其中N 为专集中的第N 首,M 为专集中共M 首,N 和M 为ASCII 码表示的数字
TYER=年代 是用ASCII 码表示的数字
TCON=类型 直接用字符串表示
COMM=备注 格式:"eng/0 备注内容",其中eng 表示备注所使用的自然语言
官方网址为:点击打开链接