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
踩
分享到:
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工具相关推荐
- java 获取mp3 封面_JAVA 读取MP3歌名,歌手,专辑,封面
上传MP3文件后,后台读取MP3信息.需要使用的引入一个jar : Jaudiotagger-2.2.6-SNAPSHOT.jar 下载地址 package com.hnzh.bnk.utils ...
- java mp3 信息_java读取MP3的信息
标签头"TAG" 3字节 标题 30字节 作者 30字节 专辑 30字节 出品年份 4字节 备注信息 28字节 保留 1字节 音轨 1字节 类型 1字节 import java.i ...
- java mp3 信息_java读取MP3的信息 | 学步园
标签头"TAG" 3字节 标题 30字节 作者 30字节 专辑 30字节 出品年份 4字节 备注信息 28字节 保留 1字节 音轨 1字节 类型 1字节 import java.i ...
- java获取音乐_Java读取MP3文件的信息(歌曲名,歌手...)
还记得之前写一款Android播放软件时,为了让APP获得MP3音乐文件的相关信息,上网找了很多Java库.搞的APP满身赘肉.后来我研究了一下MP3文件的结构后发现,获取MP3文件信息根本不需要什么 ...
- java sax xml文件解析_java解析xml文件-DOM/SAX
java解析xml文件的两种方式 1:DOM 原理:把整个文档加载到内存,转化成dom树,之后应用程序可以随机的访问dom树的任何数据,灵活 快,但消耗内存 一个简单的xml 使用java解析 //b ...
- java xml解析_Java解析XML(4种方法)
xml文件 <?xml version="1.0" encoding="utf-8" ?><class><student>& ...
- java xml类型_java 解析String类型的xml
网络中有时候我们的参数是以xml类型传递的,有时会把xml拼成一个String字符串. 解析如下: 单一xml文档解析 xml文件 encoding="gb2312"?> z ...
- java json 解析_Java解析JSON的四种方式
一.什么是JSON JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于阅读和编写,同时也易于解析和 ...
- java mp3 播放_JAVA播放MP3
JAVA播放MP3 (2007-11-29 21:21:25) 标签: 学习公社 package com.hadeslee.music; public class SongInfo { private ...
最新文章
- python使用正则表达式抽取字符串中最大数值数字
- (邓爱萍)类 对象 例题
- 为什么静态方法在Java中不能是抽象的
- UCOS 操作系统 安装配置环境
- javascript系列--javascript数组的常用算法解析
- Servlet处理文件下载的编码问题,乱码。
- BZOJ1023 [SHOI2008]cactus仙人掌图
- 带你入门SpringCloud统一配置 | SpringCloud Config
- cisco必须要拿下它-----今年的目的
- Swift游戏实战-跑酷熊猫 12 与平台的碰撞
- 贝叶斯方法学习笔记(二)
- ajaxfileupload struts2 null_去掉烦人的 “ ! = null (判空语句)
- craps 双骰子源码c语言,双骰子(Craps)规则及其玩法二(转)
- Xcode 8 的新功能一览
- 关于导出文件中文名乱码问题,response.setHeader(),postman测试有误,直接用浏览器测试
- 压力测试工具-ab工具
- 【对话通信原理】第3章 信息的坐骑——信号
- 运行应用程序,提示无法正常启动(0xc000007b)的解决办法
- 记得第一次看见他的时候,他刚被收容所送
- 对称、群论与魔术(九)——魔术《五边形的奇迹》
热门文章
- Docker安装splash的无法渲染的问题
- 数字化转型导师坚鹏:美的集团数字化转型案例研究
- PC设置电脑断电恢复后自动重启
- 通过网络图片地址,保存图片到本地,使用File打开图片
- 【Tools】Notepad++官网下载
- 【Windows Server 2019】活动目录 (Active Directory) ——安装Acitve Directory域服务和提升为域控制器
- 2015年1月13日
- Crypto++入门学习笔记(DES、AES、RSA、SHA-256)(加解密)
- A - Apple and Peach
- AI变身酿酒师 微软用ML创造出新的威士忌配方组合