java mp3解析_java解析mp3工具

需要的jar包为jid3lib.jar,sf上的http://javamusictag.sourceforge.net/download.htm不支持中文,附件源码中的为修改版。

MP3Util.java

package com.gary.util;

import java.io.IOException;

import org.farng.mp3.MP3File;

import org.farng.mp3.TagException;

import org.farng.mp3.id3.AbstractID3v2;

import org.farng.mp3.id3.ID3v1;

import org.farng.mp3.lyrics3.AbstractLyrics3;

/**

* MP3工具

*

* supports:

* ID3 v1 & v1.1

* Lyrics3 v1 & v2

* ID3 v2.2 & v2.3 & v2.4 tags

* MP3 Frame Headers

*

* @author gary

*

*/

public class MP3Util {

public static MP3Info getMP3Info(String path) throws IOException, TagException{

MP3File file = new MP3File(path);

AbstractID3v2 id3v2 = file.getID3v2Tag();

ID3v1 id3v1 = file.getID3v1Tag();

AbstractLyrics3 lyrics = file.getLyrics3Tag();

if(id3v2 != null){

return new MP3Info(id3v2.getLeadArtist(), id3v2.getSongTitle(),

id3v2.getAlbumTitle(), id3v2.getTrackNumberOnAlbum(),

id3v2.getYearReleased(), lyrics == null ? null : lyrics.getSongLyric());

}else if(id3v1 != null){

return new MP3Info(id3v1.getLeadArtist(), id3v1.getSongTitle(),

id3v1.getAlbumTitle(), id3v1.getTrackNumberOnAlbum(),

id3v1.getYearReleased(), lyrics == null ? null : lyrics.getSongLyric());

}else{

return null;

}

}

}

MP3Info.java

package com.gary.util;

/**

* MP3信息

* @author gary

*

*/

public class MP3Info {

private String artist;

private String songTitle;

private String albumTitle;

private String trackNumberOnAlbum;

private String yearReleased;

private String songLyric;

public MP3Info(String artist, String songTitle, String albumTitle,

String trackNumberOnAlbum, String yearReleased, String songLyric) {

this.artist = artist;

this.songTitle = songTitle;

this.albumTitle = albumTitle;

this.trackNumberOnAlbum = trackNumberOnAlbum;

this.yearReleased = yearReleased;

this.songLyric = songLyric;

}

public String getArtist() {

return artist;

}

public void setArtist(String artist) {

this.artist = artist;

}

public String getSongTitle() {

return songTitle;

}

public void setSongTitle(String songTitle) {

this.songTitle = songTitle;

}

public String getAlbumTitle() {

return albumTitle;

}

public void setAlbumTitle(String albumTitle) {

this.albumTitle = albumTitle;

}

public String getTrackNumberOnAlbum() {

return trackNumberOnAlbum;

}

public void setTrackNumberOnAlbum(String trackNumberOnAlbum) {

this.trackNumberOnAlbum = trackNumberOnAlbum;

}

public String getYearReleased() {

return yearReleased;

}

public void setYearReleased(String yearReleased) {

this.yearReleased = yearReleased;

}

public String getSongLyric() {

return songLyric;

}

public void setSongLyric(String songLyric) {

this.songLyric = songLyric;

}

public void printMP3Info(){

System.out.println("歌手:" + artist);

System.out.println("歌曲名:" + songTitle);

System.out.println("专辑名:" + albumTitle);

System.out.println("音轨:" + trackNumberOnAlbum);

System.out.println("发行年份:" + yearReleased);

System.out.println("歌词:" + songLyric);

}

}

test:@Test

public void testGetMP3Info() {

try {

MP3Util.getMP3Info("song.mp3").printMP3Info();

} catch (IOException e) {

System.out.println("文件未找到");

} catch (TagException e) {

System.out.println("读取标签错误");

e.printStackTrace();

}

}

mp3.rar (3.4 MB)

下载次数: 392

3

0

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-12-29 21:23

浏览 5858

评论

6 楼

lvyuan1234

2018-02-05

lvyuan1234 写道

lvyuan1234 写道

lvyuan1234 写道

怎么一直报找不到文件?

找到原因了,eclipse中应该把MP3文件和test类放在一起,而不应该放在项目的根目录下我又添加了两个自己下的MP3文件,也不行,都是找不到文件,就你自带的那个可以用

有找到原因了,新下载的MP3文件我改名字了,虽然路径正确但是读不到,一定不要改文件的名字

5 楼

lvyuan1234

2018-02-05

lvyuan1234 写道

lvyuan1234 写道

怎么一直报找不到文件?

找到原因了,eclipse中应该把MP3文件和test类放在一起,而不应该放在项目的根目录下我又添加了两个自己下的MP3文件,也不行,都是找不到文件,就你自带的那个可以用

4 楼

lvyuan1234

2018-02-05

lvyuan1234 写道

怎么一直报找不到文件?

找到原因了,eclipse中应该把MP3文件和test类放在一起,而不应该放在项目的根目录下

3 楼

lvyuan1234

2018-02-05

怎么一直报找不到文件?

2 楼

ophone

2014-10-30

966903dea4bcb507358d5dcce8b912e5.gif 

966903dea4bcb507358d5dcce8b912e5.gif

1 楼

qianxueyiran

2011-10-12

id3v1的不是乱码,但是v2的是乱码,LZ有修改V2的lib吗,或者有修改了V1的源码也可以,我想借鉴着修改下,mailliubin@gmail.com,多谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值