2016-04-10 21 views
1

Also ich versuche, die Tags von Musikdateien in meiner App zu bearbeiten. Dies ist der CodeAndroid: JAudioTagger ändert die Tags nicht

TagOptionSingleton.getInstance().setAndroid(true); 
AudioFile f = AudioFileIO.read(sel); 
Tag tag = f.getTag(); 
tag.setField(FieldKey.TITLE, "ABC"); 
f.commit(); 

ich versucht habe AudioFileIO.write(f) statt f.commit() aber die Änderungen, die ich mache nicht in den Dateien wieder. Sie haben immer noch dieselben alten Daten.

Ich habe versucht, eine Reihe von Versionen von JAudioTagger, aber kein Glück. Kann mir bitte jemand helfen? Danke im Voraus !!

Antwort

1

Ich weiß, es ist ein bisschen spät, aber die folgenden Werke für mich (ich verwende den gleichen Rahmen für die anderen Tags

 public String getmp3TrackTitleTag(File SourceFile) 
     throws Exception { 
    String TrackTitle = null; 
    try { 
     MP3File musicFile = (MP3File) AudioFileIO.read(SourceFile); 
     if (musicFile != null && musicFile.hasID3v2Tag()) { 
      ID3v24Tag id3v24 = (ID3v24Tag) musicFile.getID3v2TagAsv24(); 
      TrackTitle = id3v24.getFirst(ID3v24Frames.FRAME_ID_TITLE); 
     } 
    } catch (CannotReadException | IOException | TagException 
      | ReadOnlyFileException | InvalidAudioFrameException e5) { 
     throw e5; 
    } 
    return TrackTitle; 
} 

und den Titel zu setzen

 public String setmp3TrackTitleTag(File SourceFile, String strTrackTitle) 
     throws Exception { 
    String error = null; 
    AbstractID3v2Tag v2tag = null; 

    try { 
     MP3File musicFile = (MP3File) AudioFileIO.read(SourceFile); 
     if (musicFile != null && musicFile.hasID3v2Tag()) { 
      v2tag = musicFile.getID3v2Tag(); 
      try { 
       v2tag.setField(FieldKey.TITLE, strTrackTitle); 
       musicFile.setTag(v2tag); 
       musicFile.commit(); 
      } catch (KeyNotFoundException e) { 
       e.printStackTrace(); 
       error = e.getMessage(); 
      } catch (FieldDataInvalidException e) { 
       e.printStackTrace(); 
       error = e.getMessage(); 
      } catch (CannotWriteException e) { 
       e.printStackTrace(); 
       error = e.getMessage(); 
      } 
     } 
    } catch (CannotReadException | IOException | TagException 
      | ReadOnlyFileException | InvalidAudioFrameException e5) { 

     throw e5; 
    } 
    return error; 
} 
+0

ich zurückgekehrt sind zurück zu Verwenden der ID3-Bibliothek für MP3-Dateien.jaudiotagger funktioniert nicht wirklich für diese Dateien auf Android.Error bestimmter Io-Dateien fehlt. Das Lesen der Problemliste auf GitHub bestätigt, dass dies ein Problem ist.Überraschend bearbeiten flac und m4a Tags scheint gut zu funktionieren – Theo