需要的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

分享到:

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

1 楼

qianxueyiran

2011-10-12

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

java mp3解析_java解析mp3工具相关推荐

  1. java 获取mp3 封面_JAVA 读取MP3歌名,歌手,专辑,封面

    上传MP3文件后,后台读取MP3信息.需要使用的引入一个jar :   Jaudiotagger-2.2.6-SNAPSHOT.jar  下载地址 package com.hnzh.bnk.utils ...

  2. java mp3 信息_java读取MP3的信息

    标签头"TAG" 3字节 标题 30字节 作者 30字节 专辑 30字节 出品年份 4字节 备注信息 28字节 保留 1字节 音轨 1字节 类型 1字节 import java.i ...

  3. java mp3 信息_java读取MP3的信息 | 学步园

    标签头"TAG" 3字节 标题 30字节 作者 30字节 专辑 30字节 出品年份 4字节 备注信息 28字节 保留 1字节 音轨 1字节 类型 1字节 import java.i ...

  4. java获取音乐_Java读取MP3文件的信息(歌曲名,歌手...)

    还记得之前写一款Android播放软件时,为了让APP获得MP3音乐文件的相关信息,上网找了很多Java库.搞的APP满身赘肉.后来我研究了一下MP3文件的结构后发现,获取MP3文件信息根本不需要什么 ...

  5. java sax xml文件解析_java解析xml文件-DOM/SAX

    java解析xml文件的两种方式 1:DOM 原理:把整个文档加载到内存,转化成dom树,之后应用程序可以随机的访问dom树的任何数据,灵活 快,但消耗内存 一个简单的xml 使用java解析 //b ...

  6. java xml解析_Java解析XML(4种方法)

    xml文件 <?xml version="1.0" encoding="utf-8" ?><class><student>& ...

  7. java xml类型_java 解析String类型的xml

    网络中有时候我们的参数是以xml类型传递的,有时会把xml拼成一个String字符串. 解析如下: 单一xml文档解析 xml文件 encoding="gb2312"?> z ...

  8. java json 解析_Java解析JSON的四种方式

    一.什么是JSON JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于阅读和编写,同时也易于解析和 ...

  9. java mp3 播放_JAVA播放MP3

    JAVA播放MP3 (2007-11-29 21:21:25) 标签: 学习公社 package com.hadeslee.music; public class SongInfo { private ...

最新文章

  1. python使用正则表达式抽取字符串中最大数值数字
  2. (邓爱萍)类 对象 例题
  3. 为什么静态方法在Java中不能是抽象的
  4. UCOS 操作系统 安装配置环境
  5. javascript系列--javascript数组的常用算法解析
  6. Servlet处理文件下载的编码问题,乱码。
  7. BZOJ1023 [SHOI2008]cactus仙人掌图
  8. 带你入门SpringCloud统一配置 | SpringCloud Config
  9. cisco必须要拿下它-----今年的目的
  10. Swift游戏实战-跑酷熊猫 12 与平台的碰撞
  11. 贝叶斯方法学习笔记(二)
  12. ajaxfileupload struts2 null_去掉烦人的 “ ! = null (判空语句)
  13. craps 双骰子源码c语言,双骰子(Craps)规则及其玩法二(转)
  14. Xcode 8 的新功能一览
  15. 关于导出文件中文名乱码问题,response.setHeader(),postman测试有误,直接用浏览器测试
  16. 压力测试工具-ab工具
  17. 【对话通信原理】第3章 信息的坐骑——信号
  18. 运行应用程序,提示无法正常启动(0xc000007b)的解决办法
  19. 记得第一次看见他的时候,他刚被收容所送
  20. 对称、群论与魔术(九)——魔术《五边形的奇迹》

热门文章

  1. Docker安装splash的无法渲染的问题
  2. 数字化转型导师坚鹏:美的集团数字化转型案例研究
  3. PC设置电脑断电恢复后自动重启
  4. 通过网络图片地址,保存图片到本地,使用File打开图片
  5. 【Tools】Notepad++官网下载
  6. 【Windows Server 2019】活动目录 (Active Directory) ——安装Acitve Directory域服务和提升为域控制器
  7. 2015年1月13日
  8. Crypto++入门学习笔记(DES、AES、RSA、SHA-256)(加解密)
  9. A - Apple and Peach
  10. AI变身酿酒师 微软用ML创造出新的威士忌配方组合