如果对应XING头的位置有对应的” Xing”字符,那就说明是Xing头。
那么就可以解析Xing头,找到对应的我们所需要的一些值,尤其是总的帧数。
然后用之前介绍的公式 4.2 “VBR MP3总的时长(VBR Duration)”去计算VBR的播放时间。
其中:
- 总的帧数(Number of Frames):
可以通过解析XING头,找出里面总帧数(Frames),这个字段,一般都是存在的。
- 帧的采样个数(Samples Per Frame):
根据前面解析MPEG,找到MPEG的版本,基于属于哪个Layer,然后根据表 3.4 “MPEG帧的采样数索引表(单位:个/帧)”查得每帧的采样个数,得到每一帧有多少个采样。
而对于MP3(MPEG-1,Layer III)此处肯定是对应的1152。
- 采样率(Sampling Rate):
根据前面解析MPEG,找到2比特大小的采样率索引 ,然后根据表 3.3 “MPEG帧的采样率索引表(单位:Hz)”找到对应的采样率。
此处,也就是找到我们前面所说的,总的帧数,加上另外两个参数:帧的采样数和帧的采样率(都是通过解析第一帧的帧头,即可算出对应的值),然后我们就可以算出VBR的MP3文件的总的播放时间长度了。