java 解析MP3文件

首先需要知道的是,MP3文件的文件信息都放在文件最后的128个字节里面,这128个字节分别存储的信息如下:

char Header[3];    /* 标签头必须是"TAG"否则认为没有标签 */
char Title[30];    /* 标题 */
char Artist[30];   /* 作者 */
char Album[30];    /* 专集 */
char Year[4];      /* 出品年代 */
char Comment[28]; /* 备注 */
char reserve;      /* 保留 */
char track;;       /* 音轨 */
char Genre;        /* 类型 */

 

代码:

public class ReadMP3 {

 

/**

* @param args

* @throws Exception 

*/

public static void main(String[] args) throws Exception {

// TODO Auto-generated method stub

 

String path = System.getProperty("user.dir")+"/images/wenbie.mp3";

readMp3ID3V1(path);

}

 

public   static   void   readMp3ID3V1(String path)   throws   Exception{ 

        byte[] buf = new byte[1024]; 

        File file = new File(path); 

 

      FileInputStream fis = new FileInputStream(file); 

      /*---读取MP3文件尾部信息,并显示----*/ 

      long size = file.length(); 

      System.out.println("文件总字节数:"+size);

 

      fis.skip(size-128); 

 

      //标志位TAG:3  byte 

      fis.read(buf,0,3); 

      String tag = new String(buf,0,3); 

      System.out.println( "ID3V1:  "+tag); 

 

      //歌曲名称 30 byte 

      fis.read(buf,0,30); 

      String songname = new String(buf,0,30);

      System.out.println( "song   name:   "+songname); 

 

      //歌手名称   30   byte 

      int len = fis.read(buf,0,30); 

      String songername = new String(buf,0,len); 

      System.out.println( "songer   name:   "+songername); 

 

      //专辑名称   30   byte 

      len = fis.read(buf,0,30); 

      String albumname = new String(buf,0,len); 

      System.out.println( "album   name:   "+albumname); 

 

      //年代 4 byte 

      fis.read(buf,0,4); 

      String year = new String(buf,0,4); 

      System.out.println( "year   : "+year); 

 

      //comment 30 byte 

      fis.read(buf,0,28); 

      len = fis.read(buf,0,28); 

      String con = new String(buf,0,len); 

      System.out.println( "comment:   "+con); 

      //genre   1   byte 

      fis.read(buf,0,1); 

      System.out.println( "Genre:   "+buf[0]); 

      fis.close(); 

 

    }

}

我读取的文件位于与src平行目录的images下。

运行结果为:

文件总字节数:4291383

ID3V1:  TAG

song   name:   吻别

 

注意:有些MP3文件并没有严格按照ID3V1的数据结构来存储信息,所以,有可能只能读取到部分信息。可以用UltraEdit打开MP3文件来查看相信的存储信息。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值