Java读取Mp3

首先在http://www.jthink.net/jaudiotagger/

jaudiotagger-2.0.4-20111207.115108-15.jar这个拿下来,导入项目中。

然后就可以开始MP3信息的读取了...

		try {
			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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用第三方库来读取 MP3 文件的信息。一个常用的库是 "javazoom.jl.decoder"。以下是一个示例代码,演示如何读取 MP3 文件的信息: ```java import javazoom.jl.decoder.Bitstream; import javazoom.jl.decoder.BitstreamException; import javazoom.jl.decoder.Header; import javazoom.jl.decoder.JavaLayerException; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class MP3InfoReader { public static void main(String[] args) { String filePath = "path/to/your/mp3/file.mp3"; try { FileInputStream fis = new FileInputStream(filePath); Bitstream bitstream = new Bitstream(fis); Header header = bitstream.readFrame(); System.out.println("MPEG version: " + header.version()); System.out.println("Layer: " + header.layer_description()); System.out.println("Bitrate: " + header.bitrate_string()); System.out.println("Sample rate: " + header.frequency()); System.out.println("Duration: " + header.total_ms() + " milliseconds"); bitstream.close(); fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (BitstreamException e) { e.printStackTrace(); } catch (JavaLayerException e) { e.printStackTrace(); } } } ``` 请确保在运行代码之前,将 `path/to/your/mp3/file.mp3` 替换为你要读取MP3 文件的实际路径。这段代码使用了 "javazoom.jl.decoder" 库来解析 MP3 文件的头部信息。你可以根据需求,进一步扩展这个示例代码来读取更多的 MP3 文件信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值