java修改flac,mp3音频标签作者,标题,,jaudiotagger,AudioFile

网络下载的歌曲里面很多的标题和作者都没有,或者是乱写的。音乐播放软件默认会去取这些标签的信息展示。

在这里插入图片描述

本文利用jaudiotagger包的AudioFile,进行for循环修改。

  1. 引包
        <dependency>
            <groupId>org</groupId>
            <artifactId>jaudiotagger</artifactId>
            <version>2.0.3</version>
        </dependency>
  1. java代码

import org.jaudiotagger.audio.AudioFile;
import org.jaudiotagger.audio.flac.FlacFileReader;
import org.jaudiotagger.audio.mp3.MP3FileReader;
import org.jaudiotagger.tag.FieldKey;
import org.jaudiotagger.tag.Tag;

import java.io.File;

/**
 * @author xbh
 */
public class MyUtil {

    public static void main(String[] args) {
        File yFile = new File("E:\\音乐");
        File[] files = yFile.listFiles();
        for (File file : files) {
            if (file.isDirectory()) {
                continue;
            }
            String fName = file.getName(); // 黎明 - 相逢在雨中.flac
            try {
                set(file);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    public static void set(File file) throws Exception {
        String fName = file.getName(); // 黎明 - 相逢在雨中.flac

        String type = fName.substring(fName.lastIndexOf(".") + 1);
        AudioFile audioFile;
        FlacFileReader flacFileReader = new FlacFileReader();
        MP3FileReader mp3FileReader = new MP3FileReader();
        if (type.equalsIgnoreCase("mp3")) {
            audioFile = mp3FileReader.read(file);
        } else if (type.equalsIgnoreCase("flac")) {
            audioFile = flacFileReader.read(file);
        } else {
            // 不支持的格式
            return;
        }
        String authorAndMusicName = fName.substring(0, fName.lastIndexOf("."));

        String musicName = authorAndMusicName.substring(fName.lastIndexOf("-") + 2);
        String author = authorAndMusicName.substring(0, fName.lastIndexOf("-") - 1);
        System.out.println(authorAndMusicName);
        System.out.println(musicName);
        System.out.println(author);

        Tag tag = audioFile.getTag();
        tag.deleteField(FieldKey.TITLE);
        tag.addField(FieldKey.TITLE, musicName);
        tag.deleteField(FieldKey.COMMENT);
        tag.addField(FieldKey.COMMENT, authorAndMusicName);
        tag.deleteField(FieldKey.ARTIST);
        tag.addField(FieldKey.ARTIST, author);
        tag.deleteField(FieldKey.ALBUM);
        tag.setField(FieldKey.ALBUM, musicName);
        audioFile.setTag(tag);
        audioFile.commit();
    }

}
  1. FieldKey里有更多音频标签信息,可以自行探索
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值