java id3tag重复的mp3文件

Posted

技术标签:

【中文标题】java id3tag重复的mp3文件【英文标题】:java id3tag duplicate mp3 files 【发布时间】:2017-05-06 22:35:21 【问题描述】:

我使用 jid3tag 库来修改 mp3 文件的元数据。 当我保存我的修改时,它会复制 mp3 文件,创建一个 "songtitle.mp3" 和一个 "songtitle.original.mp3" 。 我的问题是:如何修改不重复的 mp3 文件?

这是我的代码:

TagOptionSingleton.getInstance().setDefaultSaveMode(TagConstant.MP3_FILE_SAVE_OVERWRITE);
    AbstractID3v2 id3v2= new ID3v2_4();
    // setup id3v2
    AbstractID3v2Frame frame;
    AbstractID3v2FrameBody frameBody;

    frameBody = new FrameBodyTIT2((byte) 0, "songTitle");
    frame = new ID3v2_4Frame(frameBody);
    ((AbstractFrameBodyTextInformation) frame.getBody()).setText(metatitle);
    id3v2.setFrame(frame);
    mp3file.setID3v2Tag(id3v2);
    try 
        mp3file.save();

         catch (IOException | TagException e) 
            // TODO Auto-generated catch block
            e.printStackTrace();
        

谢谢

【问题讨论】:

这是 Mp3File.save() 的默认行为。尝试传递原始文件名保存:Mp3File.save("songtitle.mp3") 谢谢,我试过了,但它仍然复制文件。我也试过 mp3file.save("songtitle.mp3",tagconstant.mp3_file_save_overwrite);还是不行 试试这个mp3file.save(TagConstants.MP3_FILE_SAVE_OVERWRITE)这个方法:github.com/AngeloDias/ComuniPro/blob/… 是的,我已经尝试过了,但文件仍然重复 【参考方案1】:

谢谢,没找到解决办法。

所以我只是像这样使用 Files 类删除文件:

 try 
        mp3file.save(TagConstant.MP3_FILE_SAVE_OVERWRITE);
        String p = destFile.getPath();
        String[] s = p.split(".mp3");
        Path path = Paths.get(s[0]+".original.mp3");
        System.out.println(path);
        Files.deleteIfExists(path);

         catch (IOException | TagException e) 
            // TODO Auto-generated catch block
            e.printStackTrace();
        

【讨论】:

以上是关于java id3tag重复的mp3文件的主要内容,如果未能解决你的问题,请参考以下文章

php中的mp3 id3tag编码

浅谈如何使用代码为MP3文件写入ID3Tags

浅谈如何使用代码为MP3文件写入ID3Tags

MP3 文件格式解析

如何获取特定 URL 中音频文件的 ID3Tags 信息?

正确读取被 ID3 标签破坏的 MP3 文件