ID3V2是目前主流的mp3标签格式,特别是做为车载音乐播放器等一些无法连接到互联网的应用场景上,我们无法通过网络获得歌曲的信息,因此,读取ID3V2或者ID3V1标签就是一个很好的解决方案,这里主要记录的是在qt上通过代码实现这些信息的读取,借鉴了网上主流的方案,这里只是简单的介绍了下代码会用到的地方
一、ID3V2标签格式说明
1.1 标签头
在文件的首部顺序记录10个字节的ID3V2.3的头部。数据结构如下:
char Header[3]; /*必须为"ID3"否则认为标签不存在*/
char Ver; /*版本号;ID3V2.3就记录03,ID3V2.4就记录04*/
char Revision; /*副版本号;此版本记录为00*/
char Flag; /*存放标志的字节,这个版本只定义了三位,稍后详细解说*/
char Size[4]; /*标签大小,包括标签帧和标签头。(不包括扩展标签头的10个字节)*/
我们可以利用Binary Viewer打开任意一个mp3文件:
观察前10个字节: