使用mp3agic更改相册名称

时间:2017-07-03 20:29:12

标签: java mp3 mp3agic

我想循环浏览一个文件夹contains .mp3文件,并将他们的专辑名称(如果他们没有)更改为他们的标题(例如Remix.mp3标题" Remix"获取专辑" Remix")使用mp3agic

到目前为止,这是我的代码:

if (mp3file.hasId3v1Tag()) {
    ID3v1 id3v1Tag = mp3file.getId3v1Tag();

    try {
        if (id3v1Tag.getAlbum().equals("")) {
            id3v1Tag.setAlbum(id3v1Tag.getTitle());
            mp3file.save(SAVE_DIR + "\\" + child.getName());
            System.out.println(SAVE_DIR + "/" + child.getName());
        } else {
            mp3file.save(SAVE_DIR + "/" + child.getName());
        }
    } catch (Exception e) {
        mp3file.save(SAVE_DIR + "/" + child.getName());
    }
}

我收到以下错误:

  

线程中的异常" main" com.mpatric.mp3agic.NotSupportedException:不支持装箱Obselete框架       at com.mpatric.mp3agic.ID3v2ObseleteFrame.packFrame(ID3v2ObseleteFrame.java:32)       at com.mpatric.mp3agic.ID3v2Frame.toBytes(ID3v2Frame.java:83)       at com.mpatric.mp3agic.AbstractID3v2Tag.packSpecifiedFrames(AbstractID3v2Tag.java:275)       at com.mpatric.mp3agic.AbstractID3v2Tag.packFrames(AbstractID3v2Tag.java:261)       at com.mpatric.mp3agic.AbstractID3v2Tag.packTag(AbstractID3v2Tag.java:227)       at com.mpatric.mp3agic.AbstractID3v2Tag.toBytes(AbstractID3v2Tag.java:218)       在com.mpatric.mp3agic.Mp3File.save(Mp3File.java:450)       在de.thejetstream.main.Iterator。(Iterator.java:57)       在de.thejetstream.main.Main.main(Main.java:12)

在此文件中:

  

名称:感觉良好的黑色和黄色.mp3

     

标题:黑与黄感觉良好(壮举.Gorillaz& De La Soul)

     

专辑:黑色和黄色 - 单曲

它在第57行崩溃,这等于最后一次保存(在捕获中)。

此代码有什么问题?是仅仅因为该文件使用旧的编解码器或类似的东西?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

问题是这些文件使用ip3v2标签而不是ip3v1。只需检查上面的内容并相应地调整代码即可解决所有问题。