首先在http://www.jthink.net/jaudiotagger/
把jaudiotagger-2.0.4-20111207.115108-15.jar这个拿下来,导入项目中。
然后就可以开始MP3信息的读取了...
String mp3path= "mmt/sdcard2/Music/大艺术家.mp3";
MP3File f = new MP3File(mp3Path);
MP3AudioHeader header= (MP3AudioHeader)f.getAudioHeader(); //获得头部信息
System.out.println(header.getTrackLength()); //获得歌曲时长
} catch(Exception e) {
e.printStackTrace();
}
上面的方法是对MP3头部信息进行读取,接下来对MP3的歌名,歌手进行读取 try {
MP3File file = new MP3File("mmt/sdcard2/Music/大艺术家.mp3");
String songName=file.getID3v2Tag().frameMap.get("TIT2").toString();
String singer=file.getID3v2Tag().frameMap.get("TPE1").toString();
String author=file.getID3v2Tag().frameMap.get("TALB").toString();
System.out.println(new String(songName.getBytes("ISO-8859-1"),"GB2312"));
System.out.println(new String(singer.getBytes("ISO-8859-1"),"GB2312"));
System.out.println(new String(author.getBytes("ISO-8859-1"),"GB2312"));
} catch (IOException e) {
e.printStackTrace();
} catch (TagException e) {
e.printStackTrace();
} catch (ReadOnlyFileException e) {
e.printStackTrace();
} catch (InvalidAudioFrameException e) {
e.printStackTrace();
}
这样输出的格式为:
Text="大艺术家";
Text="蔡依林";
Text="MUSE";
修改一下代码:
String songName=new String(file.getID3v2Tag().frameMap.get("TIT2").toString().getBytes("ISO-8859-1"),"GB2312");
String singer=new String(file.getID3v2Tag().frameMap.get("TPE1").toString().getBytes("ISO-8859-1"),"GB2312");
String author=new String(file.getID3v2Tag().frameMap.get("TALB").toString().getBytes("ISO-8859-1"),"GB2312");
System.out.println(songName.substring(6, songName.length()-3));
System.out.println(singer.substring(6, songName.length()-3));
System.out.println(author.substring(6, songName.length()-3));
OK!成功输出:
大艺术家
蔡依林"
MUSE