diff --git a/core/src/zero1hd/rhythmbullet/audio/AudioMetadata.java b/core/src/zero1hd/rhythmbullet/audio/AudioMetadata.java index 92bc7e1..ec60475 100755 --- a/core/src/zero1hd/rhythmbullet/audio/AudioMetadata.java +++ b/core/src/zero1hd/rhythmbullet/audio/AudioMetadata.java @@ -22,7 +22,7 @@ public interface AudioMetadata extends Disposable { public RhythmBulletMetadata getRBMetadata(); - public void flushRBMetadata(); + public boolean flushRBMetadata(); @Override public void dispose(); diff --git a/core/src/zero1hd/rhythmbullet/audio/MP3Metadata.java b/core/src/zero1hd/rhythmbullet/audio/MP3Metadata.java index aec32e5..2db857f 100755 --- a/core/src/zero1hd/rhythmbullet/audio/MP3Metadata.java +++ b/core/src/zero1hd/rhythmbullet/audio/MP3Metadata.java @@ -11,6 +11,7 @@ import com.badlogic.gdx.utils.Json; import com.mpatric.mp3agic.ID3v1; import com.mpatric.mp3agic.InvalidDataException; import com.mpatric.mp3agic.Mp3File; +import com.mpatric.mp3agic.NotSupportedException; import com.mpatric.mp3agic.UnsupportedTagException; public class MP3Metadata implements AudioMetadata { @@ -105,12 +106,21 @@ public class MP3Metadata implements AudioMetadata { } @Override - public void flushRBMetadata() { + public boolean flushRBMetadata() { try { Mp3File mp3file = new Mp3File(fileHandle.file()); mp3file.setCustomTag(Base64Coder.encodeString(json.toJson(rbMetadata)).getBytes()); - } catch (UnsupportedTagException | InvalidDataException | IOException e) { + String tempName = "." + fileHandle.name() + ".tmp"; + mp3file.save(tempName); + String path = fileHandle.path(); + path.substring(0, path.length() - path.indexOf(tempName)); + path += tempName; + fileHandle.delete(); + fileHandle = Gdx.files.absolute(path); + return true; + } catch (UnsupportedTagException | InvalidDataException | IOException | NotSupportedException e) { e.printStackTrace(); + return false; } } diff --git a/core/src/zero1hd/rhythmbullet/audio/WAVMetadata.java b/core/src/zero1hd/rhythmbullet/audio/WAVMetadata.java index 96efadf..347533c 100755 --- a/core/src/zero1hd/rhythmbullet/audio/WAVMetadata.java +++ b/core/src/zero1hd/rhythmbullet/audio/WAVMetadata.java @@ -60,9 +60,9 @@ public class WAVMetadata implements AudioMetadata { } @Override - public void flushRBMetadata() { + public boolean flushRBMetadata() { // TODO Auto-generated method stub - + return false; } @Override