mp3tag批量編輯

說明

最近在聽有聲小說(mp3格式),總共有好幾百集,
在手機播放器上發現播放列表居然每一集顯示的名字都是“xxx",根本分不清是哪一集了,
其實我的文件名是類似於:“有聲xxx_第x集.mp3” 這種格式,
但是嘗試了好幾種主流的手機播放器,播放器列表中顯示的都不是文件名,而是mp3的“標題”屬性,
Mp3 Tag

這時需要手工在window上對每一個mp3的“標題”屬性進行修改,
幾百個文件太難了,有沒有批量修改工具呢?
還真有,在github上找到了一個叫 mp3agic 的開源庫。

github地址:https://github.com/mpatric/mp3agic


使用方法

  1. 通過maven方式引入
        <!-- 一個修改mp3文件屬性信息工具庫 -->
        <dependency>
            <groupId>com.mpatric</groupId>
            <artifactId>mp3agic</artifactId>
            <version>0.9.1</version>
        </dependency>
  1. 通過代碼批量修改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






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章