我录制了一些APE格式的歌曲,现在想知道这种格式的ID3是怎样定义的?请各位帮忙告诉我,谢谢!

解决方案 »

  1.   

    ID3文件格式
    前言
     2001年11月的一天,我决定整理一下我的硬盘中乱七八糟的MP3,但使用Winamp+Expleror效率太慢,到网上找了一下只有一个叫MP3/Tag Studio v2.6的工具还不错,可惜是阴文的不说,还只能用30天,而且要插广告。我呸,这么麻烦。一气之下,决定自己写一个从此在网上查阅资料,写下了这辈子的第一个自由软件和这篇文章。大家可以在http://www.csdn.net/cnshare/soft/10/10119.shtm看到这个软件的详细说明和下载链接。
     
    ID3v1
     ID3V1比较简单,它是存放在MP3文件的末尾,用16进制的编辑器打开一个MP3文件,查看其末尾的128个顺序存放字节,数据结构定义如下:
     char Header[3];    /*标签头必须是"TAG"否则认为没有标签*/
     char Title[30];    /*标题*/
     char Artist[30];   /*作者*/
     char Album[30];    /*专集*/
     char Year[4];    /*出品年代*/
     char Comment[30];   /*备注*/
     char Genre;    /*类型*/
     ID3V1的各项信息都是顺序存放,没有任何标识将其分开,比如标题信息不足30个字节,则使用'\0'补足,否则将造成信息错误。Genre使用原码表示,对照表如下:
     /* Standard genres */
     0="Blues";
     1="ClassicRock";
     2="Country";
     3="Dance";
     4="Disco";
     5="Funk";
     6="Grunge";
     7="Hip-Hop";
     8="Jazz";
     9="Metal";
     10="NewAge";
     11="Oldies";
     12="Other";
     13="Pop";
     14="R&B";
     15="Rap";
     16="Reggae";
     17="Rock";
     18="Techno";
     19="Industrial";
     20="Alternative";
     21="Ska";
     22="DeathMetal";
     23="Pranks";
     24="Soundtrack";
     25="Euro-Techno";
     26="Ambient";
     27="Trip-Hop";
     28="Vocal";
     29="Jazz+Funk";
     30="Fusion";
     31="Trance";
     32="Classical";
     33="Instrumental";
     34="Acid";
     35="House";
     36="Game";
     37="SoundClip";
     38="Gospel";
     39="Noise";
     40="AlternRock";
     41="Bass";
     42="Soul";
     43="Punk";
     44="Space";
     45="Meditative";
     46="InstrumentalPop";
     47="InstrumentalRock";
     48="Ethnic";
     49="Gothic";
     50="Darkwave";
     51="Techno-Industrial";
     52="Electronic";
     53="Pop-Folk";
     54="Eurodance";
     55="Dream";
     56="SouthernRock";
     57="Comedy";
     58="Cult";
     59="Gangsta";
     60="Top40";
     61="ChristianRap";
     62="Pop/Funk";
     63="Jungle";
     64="NativeAmerican";
     65="Cabaret";
     66="NewWave";
     67="Psychadelic";
     68="Rave";
     69="Showtunes";
     70="Trailer";
     71="Lo-Fi";
     72="Tribal";
     73="AcidPunk";
     74="AcidJazz";
     75="Polka";
     76="Retro";
     77="Musical";
     78="Rock&Roll";
     79="HardRock";
     /* Extended genres */
     80="Folk";
     81="Folk-Rock";
     82="NationalFolk";
     83="Swing";
     84="FastFusion";
     85="Bebob";
     86="Latin";
     87="Revival";
     88="Celtic";
     89="Bluegrass";
     90="Avantgarde";
     91="GothicRock";
     92="ProgessiveRock";
     93="PsychedelicRock";
     94="SymphonicRock";
     95="SlowRock";
     96="BigBand";
     97="Chorus";
     98="EasyListening";
     99="Acoustic";
     100="Humour";
     101="Speech";
     102="Chanson";
     103="Opera";
     104="ChamberMusic";
     105="Sonata";
     106="Symphony";
     107="BootyBass";
     108="Primus";
     109="PornGroove";
     110="Satire";
     111="SlowJam";
     112="Club";
     113="Tango";
     114="Samba";
     115="Folklore";
     116="Ballad";
     117="PowerBallad";
     118="RhythmicSoul";
     119="Freestyle";
     120="Duet";
     121="PunkRock";
     122="DrumSolo";
     123="Acapella";
     124="Euro-House";
     125="DanceHall";
     126="Goa";
     127="Drum&Bass";
     128="Club-House";
     129="Hardcore";
     130="Terror";
     131="Indie";
     132="BritPop";
     133="Negerpunk";
     134="PolskPunk";
     135="Beat";
     136="ChristianGangstaRap";
     137="HeavyMetal";
     138="BlackMetal";
     139="Crossover";
     140="ContemporaryChristian";
     141="ChristianRock";
     142="Merengue";
     143="Salsa";
     144="TrashMetal";
     145="Anime";
     146="JPop";
     147="Synthpop";
      

  2.   

    ID3V2
     ID3V2到现在一共有4个版本,但流行的播放软件一般只支持第3版,既ID3v2.3。由于ID3V1记录在MP3文件的末尾,ID3V2就只好记录在MP3文件的首部了(如果有一天发布ID3V3,真不知道该记录在哪里)。也正是由于这个原因,对ID3V2的操作比ID3V1要慢。而且ID3V2结构比ID3V1的结构要复杂得多,但比前者全面且可以伸缩和扩展。
     下面就介绍一下ID3V2.3。
     每个ID3V2.3的标签都一个标签头和若干个标签帧或一个扩展标签头组成。关于曲目的信息如标题、作者等都存放在不同的标签帧中,扩展标签头和标签帧并不是必要的,但每个标签至少要有一个标签帧。标签头和标签帧一起顺序存放在MP3文件的首部。
     
    一、标签头
    在文件的首部顺序记录10个字节的ID3V2.3的头部。数据结构如下:
     char Header[3];    /*必须为"ID3"否则认为标签不存在*/
     char Ver;    /*版本号ID3V2.3就记录3*/
     char Revision;    /*副版本号此版本记录为0*/
     char Flag;    /*存放标志的字节,这个版本只定义了三位,稍后详细解说*/
     char Size[4];    /*标签大小,包括标签头的10个字节和所有的标签帧的大小*/ 1.标志字节
     标志字节一般为0,定义如下:
     abc00000 a -- 表示是否使用Unsynchronisation(这个单词不知道是什么意思,字典里也没有找到,一般不设置)
     b -- 表示是否有扩展头部,一般没有(至少Winamp没有记录),所以一般也不设置
     c -- 表示是否为测试标签(99.99%的标签都不是测试用的啦,所以一般也不设置)
     
      

  3.   

    一部分不能帖。
     
    相关网址:http://dev.csdn.net/article/14/14798.shtm