2017-05-06 92 views
0

我使用jid3tag librairy修改mp3文件的元数据。 当我保存修改后,它会复制创建“songtitle.mp3”和“songtitle.original.mp3”的mp3文件。 我的问题是:如何修改一个mp3文件而不重复呢?java id3tag复制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(); 
     } 

感谢

+0

它'Mp3File.save的默认行为()。尝试传递原始文件名保存:Mp3File.save(“songtitle.mp3”) – Raphael

+0

谢谢,我试过了,但它仍然重复file.i也试过用mp3file.save(“songtitle.mp3”,tagconstant.mp3_file_save_overwrite);仍然不起作用 –

+0

试试这个'mp3file.save(TagConstants.MP3_FILE_SAVE_OVERWRITE)' 这种方法:https://github.com/AngeloDias/ComuniPro/blob/7c9fb3fe81bdf96ab202db22075db4ade92fc916/Projeto/src/org/farng/mp3/MP3File.java #L859 – Raphael

回答

1

谢谢,我没有找到解决办法。

,所以我只是用文件类这样的删除文件:

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(); 
     }