需要的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 ID3解析库。支持 ID3v1, ID3v1.1, Lyrics3v1, Lyrics3v2, ID3v2.2, ID3v2.3, ID3v2.4。源码下载:http://javamusictag.sourceforge.net/ ,发现对支持utf-16编码是有些问题的。期望这个jar包对大家有所帮助。
综上所述,Java提供了丰富的工具来解析和处理音频文件,尽管JMF在某些情况下可能不够强大,但Java Sound API已经足够满足大多数开发需求。通过理解和运用这些API,开发者可以构建各种音频处理应用,如音乐播放器、...
它提供了对MP3文件的基本解析和解码功能,使开发者能够将MP3流转换为音频数据,然后通过Java Sound API进行播放。 2. **Tritonus Share (tritonus_share.jar)**:这是Tritonus项目的一部分,一个开源的音频库,扩展...
在本案例中,Java Sound API可能被用于读取和解析音频文件。它包括`javax.sound.sampled`包,提供对音频输入、输出、格式转换和混音的支持。 2. **音频输入/输出**:`AudioInputStream`类是Java Sound API的核心,...
本文将详细介绍如何使用Java实现这一功能,同时也会提及一些相关的开源工具和库。 首先,Java提供了内置的`javax.sound.sampled`包,它允许开发者处理和播放各种音频文件。这个包包括了`AudioSystem`类,它是音频I/...
音频剪辑工具则需要解析MP3以实现精确的剪切和合并;而音频识别系统可能需要解码MP3文件来提取音频特征进行识别。 总的来说,MP3文件格式分析和JAVA源代码的结合,为开发者提供了一个学习和实践音频处理的宝贵资源...
java base64的MP3转base64的pcm工具类,适用于微信小程序的语音转文字,因为小程序的录音为MP3,大部分语音读写的第三方只支持wav和pcm,不用生成文件
《Java实现MP3下载工具详解》 在信息技术日益发达的今天,网络音频资源的获取与分享变得越来越便捷。其中,Java作为一种广泛应用于网络服务、桌面应用以及移动开发的强大编程语言,也被用来创建各种实用工具,如MP3...
Java MP3音频文件解码器是一种完全由Java语言编写的软件工具,它的主要功能是将MP3音频格式转换为其原始的、未压缩的PCM(脉冲编码调制)数据。这款解码器的独特之处在于它不依赖任何外部的JAR包,这意味着它可以...
1. **JLayer**: 这是一个用纯Java编写的MP3解码库,它提供了一个简单的API来解析和解码MP3流。`jlayer-1.0.jar`就是这个库的JAR文件,包含了解码MP3所需的所有类和方法。你可以通过创建一个`Decoder`对象,然后将MP3...
4. **URL解析**:可能需要解析MP3文件的URL,这可以通过`java.net.URL`类完成。 5. **用户界面**:如果这是一个图形用户界面(GUI)应用,可能使用JavaFX或Swing库来设计交互界面。 6. **命令行参数**:对于批处理...
【JLoading Java版的Mp3下载工具】是一个基于Java编程语言开发的实用工具,主要用于从网络上高效、稳定地下载MP3音乐文件。这个工具利用了Java的强大功能和跨平台特性,为用户提供了便捷的音乐资源获取途径。下面将...
在本项目中,开发者利用了jLayer库来解析和播放MP3音频文件。以下是对这个项目的详细解读: 1. **jLayer库**: jLayer是一个开源的Java库,专门用于解码MP3音频流。它实现了MPEG Audio Layer 1, 2和3的解码,允许...
《Java MP3下载工具——JLoading的深度解析》 在当今互联网时代,音频资源的获取变得日益便捷,其中,MP3作为最受欢迎的音频格式之一,其下载工具的重要性不言而喻。今天,我们将深入探讨一个名为"JLoading"的Java...
总的来说,Java编程实现获取MP3时长和播放MP3文件涉及对音频文件的元数据解析和音频流的处理,借助jaudiotagger和javazoom.jl库可以方便地完成这些任务。在实际应用中,开发者应根据需求选择合适的工具和技术,确保...
《纯JAVA的MP3解码器jmp:深入解析与应用》 MP3解码器是数字音频处理领域的重要工具,它能够将存储的MP3格式音频数据转化为人类可听的声音信号。在众多的MP3解码器中,“jmp123”以其独特的纯JAVA实现和出色的性能...
JLayer能够解析MP3帧,从而让Java应用程序可以播放MP3音频文件。这对于开发音乐播放器或与音频处理相关的项目非常有用。 3. **JMP (jmp123.jar)**: JMP可能是Java Music Player的简称,但由于具体信息不足,我们...
《Java版MP3下载工具——JLoading深度解析》 在当今互联网时代,音频资源的下载是用户日常需求的一部分,尤其对于音乐爱好者来说,拥有一款高效便捷的下载工具至关重要。"JLoading Java版的Mp3下载工具"就是这样一...
4. **提取内容**:解析完成后,用户可以选择将ACV文件内的资源保存为可读格式,如MP3音乐、PNG图片等。这些资源可以用于备份、编辑或二次创作。 5. **自定义设置**:高级的ACV分解工具可能还提供一些自定义选项,如...
本篇文章将详细介绍如何利用Java实现这一功能,主要涉及的技术点包括Java I/O流、音频处理库以及元数据解析。 首先,我们需要一个第三方库来帮助我们处理MP3文件的元数据,这里推荐使用JaudioTagger...