《Java MP3 ID3 Tag Library》在这里:https://sourceforge.net/projects/javamusictag/
利用该lib可以读取音乐文件的ID3V1,ID3V2等信息,包括歌手名,歌曲名,专辑名,歌词流(如果有的话)等,功能还比较强大。
我在使用的过程中发现该lib读取信息时会导致中文乱码,于是通过代码追踪,找到了两处new String的地方,指定了编码,解决了该问题。
但是在sourceforge.net上我没有该lib的cvs commit权限,所以修改后的jar我只能在这里给出,希望能帮助到有需要的人。
使用范例:
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;
public class TestMP3 {
/**
* @param args
*/
public static void main(String[] args) {
try {
//MP3File file = new MP3File("c:\\TDDOWNLOAD\\shuangjiegun.mp3");//1,2
MP3File file = new MP3File("c:\\TDDOWNLOAD\\1.mp3");//1,lyrics
// MP3File file = new MP3File("/home/zhubin/Music/1.mp3");//1,lyrics
AbstractID3v2 id3v2 = file.getID3v2Tag();
ID3v1 id3v1 = file.getID3v1Tag();
if (id3v2 != null) {
System.out.println("id3v2");
System.out.println(id3v2.getAlbumTitle());//专辑名
System.out.println(id3v2.getSongTitle());//歌曲名
System.out.println(id3v2.getLeadArtist());//歌手
} else {
System.out.println("id3v1");
System.out.println(id3v1.getAlbumTitle());
System.out.println(id3v1.getSongTitle());
System.out.println(id3v1.getLeadArtist());
}
AbstractLyrics3 lrc3Tag = file.getLyrics3Tag();
if (lrc3Tag != null) {
String lyrics = lrc3Tag.getSongLyric();
System.out.println(lyrics);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TagException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("over");
}
}
显示结果:
id3v1
依然范特西
听妈妈的话
周杰伦
[ti:听妈妈的话]
[ar:周杰伦]
[al:依然范特西]
[by:Hybert Kwok]
[00:00.11]听妈妈的话
[00:01.11]词:周杰伦 曲:周杰伦
[00:02.11]编曲:林迈可 洪敬饶 制作人:周杰伦
[00:04.11]和声编写:周杰伦 和声:周杰伦
[00:06.11]录音室:阿尔发录音室
[00:08.11]歌词录入:Hybert Kwok
[00:09.00]
[00:10.14]小朋友 你是否有很多问号
[00:12.76]为什么 别人在那看漫画
[00:15.39]我却在学画画 对着钢琴说话
[00:17.87]别人在玩游戏 我却靠在墙壁背我的ABC
[00:20.88]我说我要一台大大的飞机
[00:23.41]但却得到一台旧旧录音机
[00:25.98]为什么要听妈妈的话
[00:28.29]长大后你就会开始懂了这段话 哼
[03:15.77][00:30.76]长大后我开始明白
[03:18.74][00:33.73]为什么我 跑得比别人快
[03:20.15][00:35.14]飞得比别人高
[03:21.06][00:36.38]将来大家看的都是我画的漫画
[03:24.02][00:38.73]大家唱的都是 我写的歌
[03:26.81][00:41.45]妈妈的辛苦 不让你看见
[03:29.22][00:44.07]温暖的食谱在她心里面
[03:31.81][00:46.51]有空就多多握握她的手
[03:34.65][00:49.20]把手牵着一起梦游
[03:36.84][02:55.18][02:13.93][00:51.60]听妈妈的话 别让她受伤
[03:47.22][03:05.96][02:24.72][01:01.64]想快快长大 才能保护她
[03:57.60][02:34.66][01:11.43]美丽的白发 幸福中发芽
[04:07.82][02:45.16][01:22.46]天使的魔法 温暖中慈祥
[01:32.93]在你的未来 音乐是你的王牌
[01:34.71]拿王牌谈个恋爱
[01:36.18]唉!我不想把你教坏
[01:37.71]还是听妈妈的话吧
[01:39.02]晚点再恋爱吧
[01:40.46]我知道你未来的路
[01:42.59]但妈比我更清楚
[01:43.90]你会开始学其他同学
[01:45.03]在书包写东写西
[01:46.00]但我建议最好写妈妈
[01:47.60]我会用功读书
[01:48.73]用功读书 怎么会从我嘴巴说出
[01:50.84]不想你输 所以要叫你用功读书
[01:53.97]妈妈织给你的毛衣 你要好好的收着
[01:56.06]因为母亲节到的时候我要告诉她我还留着
[01:58.41]对了!我会遇到了周润发
[02:00.81]所以你可以跟同学炫耀
[02:01.88]赌神未来是你爸爸
[02:02.97]我找不到 童年写的情书
[02:05.44]你写完不要送人
[02:06.52]因为过两天你会在操场上捡到
[02:07.90]你会开始喜欢上流行歌
[02:11.31]因为张学友开始准备唱《吻别》
[04:22.93]END
over
相关推荐
2. **读取MP3文件**:使用`File`对象打开MP3文件。 ```java File mp3File = new File("path_to_your_mp3_file.mp3"); ``` 3. **解析ID3标签**:使用`TagLib`提供的API解析ID3标签。 ```java Tag tag = TagLibFactory...
ID3标签是MP3文件中用于存储元数据的一种标准,如艺术家、专辑、歌曲名称、歌词等信息。在数字音乐的领域,管理这些元数据对于组织和播放音乐库至关重要。Delphi是一种流行的Object Pascal编程环境,它允许开发者...
在VB中,修改MP3信息通常涉及读取和写入ID3标签。ID3标签是MP3文件中的元数据部分,包含了歌曲的各种信息,例如艺术家、专辑、歌曲标题、年份、流派等。VB可以通过特定的库或API来处理这些标签。例如,可以使用...
标题中的"TagID3_tagID3_"暗示了我们讨论的主题是关于MP3文件中的ID3标签,这是一种元数据格式,通常用于存储音乐文件的相关信息,如艺术家、专辑、歌曲名称等。描述简单地指出我们要关注的是如何在MP3文件中查找ID3...
ID3TagEditor 一个快速库,用于读取和修改任何mp3文件的ID3标签。 在的“实现”部分。安装有四种方法可以在项目中安装ID3TagEditor: 手动安装构架椰子纲Swift Package Manager(支持Linux平台) 手动安装要手动安装...
1. **读取标签**:能够读取MP3文件中的ID3v2.3标签信息,解析出各种元数据。 2. **写入标签**:允许用户修改或创建新的ID3v2.3标签,更新MP3文件的元数据。 3. **删除标签**:如果需要,可以完全移除MP3文件中的ID...
Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...
浏览器ID3编写器 用于在浏览器和Node.js中将标记写入MP3文件的纯JS库。 它无法读取标签,因此请使用另一个库来执行。 注意:该库将删除现有的ID3标签(v2.2,v2.3和v2.4)。 可在Node.js 4 +,IE10 +和所有现代...
10. ID3v2:ID3标签是MP3文件的标准元数据格式,ID3v2是其较新的版本。这可能表示压缩包中有处理ID3v2标签的组件。 综合以上信息,这个压缩包是一个Delphi音频处理工具包,包括了对多种音频格式的支持,如TTA、CDDA...
JSP(JavaServer Pages)用于生成动态网页,需要了解EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)。 3. **Tomcat服务器**:熟悉Tomcat的结构和配置,包括web.xml文件的配置,以及...
SWF文件的格式是二进制的,所以这些脚本可能会用到这两个库来读取和解析SWF文件的头部信息,识别文件版本、长度等关键数据。 2. **SWF文件结构**:SWF文件由一系列记录组成,每个记录包含一个或多个命令。理解这些...
� Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的有限子集,尚不承诺遵守 Java 任何 Java 规范 , 可能会造 成J ava 阵营的进一步分裂。 � 现有应用完善度不太够,需要的开发工作量较大。--------------------...