淘先锋技术网

首页 1 2 3 4 5 6 7

首先在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