2017-05-06 89 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(); 
     }