最近研究了下ID3TagV2的解码,也就是从mp3文件中提取ID3TagV2信息。在网上下载了国人写的很多个例子,都用不了,于是乎对着网上的解释自己一个bit一个bit的解。虽然现在基本完工了,但有几点疑问,希望有高人出现帮忙解答一下:
1.我读取完开头的10个字节的Header,然后一个一个读Frame,每个Frame的数据段的开始三个字节为什么不能读取? 一旦读取,内容转换为字符串时就乱码,所以我默认跳过前三个字符,当然读出来的数据很完美,但我就是想知道为什么要跳过,其它人的程序不跳的,所以出来大部分mp3读取是乱码。前三个字节的ascii值分别为: 1 ,255, 254。
2.我读取到的COMM信息,也就是备注信息为什么是乱码,而别的程序读到的是空字符?我看到凡是我读取到有乱码的前几位ASCII为:1,101,110,103,255,254,97,0,0,去掉前面的1,去掉后面的三个字符ENG,我会读取到a,如果按照其它软件的结果,应该跳过97(a),但是有原因吗?
3.APIC的问题,就是多张图片的话,是怎么分隔的,我目前只能读取到第一张。
第一位编码位,后面两位Little Endian和Big Endian
支持