1. maven
<dependency>
<groupId>com.mpatric</groupId>
<artifactId>mp3agic</artifactId>
<version>0.9.1</version>
</dependency>
2. API
2.1 Mp3File对象方法
方法 | 描述 |
getFrameCount() | 获取MP3文件帧数 |
getStartOffset() | 获取起始设置 |
getEndOffset() | 获取结束设置 |
getLengthInMilliseconds() | 获取MP3长度,单位毫秒 |
getLengthInSeconds() | 获取MP3长度,单位秒 |
isVbr() | 是否为VBR编码,不是为 CBR编码 |
getBitrate() | 获取码率 |
getBitrates() | 获取码率,返回map,key为码率,value为 MutableInteger 对象 |
getChannelMode() | 获取渠道模式 |
isCopyright() | 是否有版权 |
getEmphasis() | 获取强调信息 |
getLayer() | 获取压缩级别 |
getModeExtension() | 获取模式扩展 |
isOriginal() | 是否是原版 |
getSampleRate() | 获取音频采样率 |
getVersion() | 获取版本 |
hasXingFrame() | 判断是否有 xing帧 |
getXingOffset() | 获取xing设置 |
getXingBitrate() | 获取xing比特率 |
hasId3v1Tag() | 判断是否有3v1本版标签 |
getId3v1Tag() | 获取3v1本版标签 |
setId3v1Tag(ID3v1 var1) | 设置3v1本版标签 |
removeId3v1Tag() | 移除3v1本版标签 |
hasId3v2Tag() | 判断是否有3v2本版标签 |
getId3v2Tag() | 获取3v2本版标签 |
setId3v2Tag(ID3v2 var1) | 设置3v2本版标签 |
removeId3v2Tag() | 移除3v2本版标签 |
hasCustomTag() | 判断是否有自定义标签 |
getCustomTag() | 获取自定义标签 |
setCustomTag(byte[] var1) | 设置自定义标签 |
removeCustomTag() | 移除自定义标签 |
save(String var1) | 保存mp3文件 |
2.2 ID3v1对象方法
方法 | 描述 |
getVersion() | 获取版本 |
getTrack() | 获取唱片歌曲数量 |
setTrack(String var1) | 设置唱片歌曲数量 |
getArtist() | 获取艺术家 |
setArtist(String var1) | 设置艺术家 |
getTitle() | 获取歌曲名 |
setTitle(String var1) | 设置歌曲名 |
getAlbum() | 获取唱片名 |
setAlbum(String var1) | 设置唱片名 |
getYear() | 获取发行时间 |
setYear(String var1) | 设置发行时间 |
getGenre() | 获取流派 |
setGenre(int var1) | 设置流派 |
getGenreDescription(); | 获取流派描述 |
getComment(); | 获取注释 |
setComment(String var1) | 设置注释 |
toBytes() | 转换为字节数组 |
2.3 ID3v2对象方法(ID3v2为ID3v1的子类)
方法 | 描述 |
getPadding() | 判断是否填充 |
setPadding(boolean var1) | 设置是否填充 |
hasFooter() | 判断是否有页脚 |
setFooter(boolean var1) | 设置页脚 |
hasUnsynchronisation() | 判断是否有不同步 |
setUnsynchronisation(boolean var1) | 设置是否有不同步 |
getBPM() | 获取每分钟节拍数 |
setBPM(int var1) | 设置每分钟节拍数 |
getGrouping() | 获取分组 |
setGrouping(String var1) | 设置分组 |
getKey() | 获取调号,它关系到我们整首歌曲的音高范围 |
setKey(String var1) | 设置调号 |
getDate() | 获取日期 |
setDate(String var1) | 设置日期 |
getComposer() | 获取作曲家 |
setComposer(String var1) | 设置作曲家 |
getPublisher() | 获取发版者 |
setPublisher(String var1) | 设置发版者 |
getOriginalArtist() | 获取原创艺术家 |
setOriginalArtist(String var1) | 设置原创艺术家 |
getAlbumArtist() | 获取专辑艺术家 |
setAlbumArtist(String var1) | 设置专辑艺术家 |
getCopyright() | 获取版权信息 |
setCopyright(String var1) | 设置版权信息 |
getArtistUrl() | 获取艺术家url地址 |
setArtistUrl(String var1) | 设置艺术家url地址 |
getCommercialUrl() | 获取广告url地址 |
setCommercialUrl(String var1) | 设置广告url地址 |
getCopyrightUrl() | 获取版权url地址 |
setCopyrightUrl(String var1) | 设置版权url地址 |
getAudiofileUrl() | 获取音频文件路径 |
setAudiofileUrl(String var1) | 设置音频文件路径 |
getAudioSourceUrl() | 获取音频资源路径 |
setAudioSourceUrl(String var1) | 设置音频资源路径 |
getRadiostationUrl() | 获取广播url地址 |
setRadiostationUrl(String var1) | 设置广播url地址 |
getPaymentUrl() | 获取付款url地址 |
setPaymentUrl(String var1) | 设置付款url地址 |
getPublisherUrl() | 获取发版url地址 |
setPublisherUrl(String var1) | 设置发版url地址 |
getUrl() | 获取MP3地址 |
setUrl(String var1) | 设置MP3地址 |
getPartOfSet() | 获取部分配置信息 |
setPartOfSet(String var1) | 设置部分配置信息 |
isCompilation() | 获取是否汇编 |
setCompilation(boolean var1) | 设置是否汇编 |
getChapters() | 获取章节 |
setChapters(ArrayList<ID3v2ChapterFrameData> var1) | 设置章节 |
getChapterTOC() | 获取章节目录 |
setChapterTOC(ArrayList<ID3v2ChapterTOCFrameData> var1) | 设置章节目录 |
getEncoder() | 获取编码格式 |
setEncoder(String var1) | 设置编码格式 |
getAlbumImage() | 专辑插画 |
setAlbumImage(byte[] var1, String var2) | 设置专辑插画 |
setAlbumImage(byte[] var1, String var2, byte var3, String var4) | 设置专辑插画 |
clearAlbumImage() | 清除专辑插画 |
getAlbumImageMimeType() | 专辑插画类型 |
getWmpRating() | 获取评分 |
setWmpRating(int var1) | 设置评分 |
getItunesComment() | 获取调音方式 |
setItunesComment(String var1) | 设置调音方式 |
getLyrics() | 获取歌词 |
setLyrics(String var1) | 设置歌词 |
setGenreDescription(String var1) | 设置类型说明 |
getDataLength() | 获取数据长度 |
getLength() | 获取长度 |
getObseleteFormat() | 获取过时的格式 |
getFrameSets() | 获取帧组 |
clearFrameSet(String var1) | 清除帧组 |
3. 实例代码
Mp3File mp3file = new Mp3File("D:/demo/a.mp3");
if (mp3file.hasId3v2Tag()) {
ID3v2 id3v2Tag = mp3file.getId3v2Tag();
System.out.println("唱片歌曲数量: " + id3v2Tag.getTrack());
System.out.println("艺术家: " + id3v2Tag.getArtist());
System.out.println("歌曲名: " + id3v2Tag.getTitle());
System.out.println("唱片名: " + id3v2Tag.getAlbum());
System.out.println("歌曲长度:"+mp3file.getLengthInSeconds()+"秒");
System.out.println("码率: " + mp3file.getBitrate() + " kbps " + (mp3file.isVbr() ? "(VBR)" : "(CBR)"));
System.out.println("专辑插画 : "+id3v2Tag.getAlbumImage());
System.out.println("专辑插画类型"+id3v2Tag.getAlbumImageMimeType());
System.out.println("发行时间: " + id3v2Tag.getYear());
System.out.println("流派: " + id3v2Tag.getGenre() + " (" + id3v2Tag.getGenreDescription() + ")");
System.out.println("注释: " + id3v2Tag.getComment());
System.out.println("歌词: " + id3v2Tag.getLyrics());
System.out.println("作曲家: " + id3v2Tag.getComposer());
System.out.println("发行公司: " + id3v2Tag.getPublisher());
System.out.println("Original artist: " + id3v2Tag.getOriginalArtist());
System.out.println("Album artist: " + id3v2Tag.getAlbumArtist());
System.out.println("版权: " + id3v2Tag.getCopyright());
System.out.println("URL: " + id3v2Tag.getUrl());
System.out.println("编码格式: " + id3v2Tag.getEncoder());
byte[] albumImageData = id3v2Tag.getAlbumImage();
if (albumImageData != null) {
System.out.println("专辑插图长度: " + albumImageData.length + " bytes");
System.out.println("专辑插图类型: " + id3v2Tag.getAlbumImageMimeType());
}
}