大家好,我写了一个MP3文件解析类,计算出ID3V2头后,跳过它,然后找到第一帧,解析MP3音频的相关属性。它一直工作的很好,直到我遇到了这个文件:
根据前10个字节,我计算出该ID3V2头的长度是4096个字节,然后跳过4096个字节后,我发现我计算的MP3音频属性是错误的:声道模式错误、采样率错误、比特数错误等,我使用UltraEdit打开该MP3文件之后,发现4096字节处是另外一个ID3V2头。
我修改了程序,如果紧跟在ID3V2头后,是另一个ID3V2头,则继续解析,这样我的类就又可以正常工作了,我这样做有依据吗?