mp3tag批量编辑
说明
最近在听有声小说(mp3格式),总共有好几百集,
在手机播放器上发现播放列表居然每一集显示的名字都是“xxx”,根本分不清是哪一集了,
其实我的文件名是类似于:“有声xxx_第x集.mp3” 这种格式,
但是尝试了好几种主流的手机播放器,播放器列表中显示的都不是文件名,而是mp3的“标题”属性,
这时需要手工在window上对每一个mp3的“标题”属性进行修改,
几百个文件太难了,有没有批量修改工具呢?
还真有,在github上找到了一个叫 mp3agic 的开源库。
github地址:https://github.com/mpatric/mp3agic
使用方法
- 通过maven方式引入
<!-- 一个修改mp3文件属性信息工具库 -->
<dependency>
<groupId>com.mpatric</groupId>
<artifactId>mp3agic</artifactId>
<version>0.9.1</version>
</dependency>
- 通过代码批量修改mp3tag属性(mp3文件中这些属性统称为 mp3tag )
package com.join.tools.mp3;
import com.mpatric.mp3agic.*;
import java.io.File;
public class Mp3Tools {
public static void main(String[] args) {
String dir="C:\\Users\\xxx\\Downloads\\";
String destDir="C:\\Users\\xxx\\Downloads\\dest\\";
File parent=new File(dir);
File[] files=parent.listFiles();
for (File file : files) {
//遍历该目录下所有mp3文件
if(file.getName().endsWith(".mp3")){
try {
Mp3File mp3file = new Mp3File(file);
ID3v1 id3v1Tag;
if (mp3file.hasId3v2Tag()) {
id3v1Tag = mp3file.getId3v2Tag();
} else if(mp3file.hasId3v1Tag()){
id3v1Tag = mp3file.getId3v1Tag();
} else {
// mp3 does not have an ID3v1 tag, let's create one..
id3v1Tag = new ID3v1Tag();
mp3file.setId3v1Tag(id3v1Tag);
}
//id3v1Tag.setTrack("5");
id3v1Tag.setArtist("xx书品家");
//这里我把mp3标题Tag修改成与文件名一致,可以根据自己的需求修改title
id3v1Tag.setTitle(file.getName());
//专辑设置
id3v1Tag.setAlbum("有声读物xxx");
//其他属性,根据自己的需求设置
id3v1Tag.setYear("2019");
id3v1Tag.setGenre(12);
id3v1Tag.setComment("modify by mp3agic");
//文件输出到目标目录
mp3file.save(destDir+file.getName());
//System.out.println(file.getName()+ " process success: ");
} catch (Exception e) {
System.out.println(file.getName()+ " process fail: "+e.getLocalizedMessage());
//e.printStackTrace();
}
}
}
}
}
详见: https://github.com/join1024/MP3Processor
原文作者:薛定谔的雄猫
原文地址: https://blog.csdn.net/iteye_19045/article/details/94888313
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/iteye_19045/article/details/94888313
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
相关文章