diff --git a/app/src/main/java/protect/babysleepsounds/LoopingAudioPlayer.java b/app/src/main/java/protect/babysleepsounds/LoopingAudioPlayer.java index 28ecbcd..c1e8018 100644 --- a/app/src/main/java/protect/babysleepsounds/LoopingAudioPlayer.java +++ b/app/src/main/java/protect/babysleepsounds/LoopingAudioPlayer.java @@ -154,10 +154,7 @@ public void onPeriodicNotification(AudioTrack track) } finally { - if(audioTrack.getState() != AudioTrack.STATE_UNINITIALIZED) - { - audioTrack.stop(); - } + audioTrack.release(); try { diff --git a/app/src/main/java/protect/babysleepsounds/MainActivity.java b/app/src/main/java/protect/babysleepsounds/MainActivity.java index 0762fde..2ff9048 100644 --- a/app/src/main/java/protect/babysleepsounds/MainActivity.java +++ b/app/src/main/java/protect/babysleepsounds/MainActivity.java @@ -6,7 +6,6 @@ import android.content.pm.PackageManager; import android.media.AudioManager; import android.os.Bundle; -import android.os.Environment; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; @@ -49,6 +48,9 @@ public class MainActivity extends AppCompatActivity { private final static String TAG = "BabySleepSounds"; + private static final String ORIGINAL_MP3_FILE = "original.mp3"; + private static final String PROCESSED_RAW_FILE = "processed.raw"; + private Map _soundMap; private Map _timeMap; @@ -244,27 +246,12 @@ private void startPlayback() try { - File dir = getExternalFilesDir (Environment.DIRECTORY_MUSIC); - if(dir == null) - { - throw new IOException("No external files dir available, cannot prepare file"); - } - - if(dir.exists() == false) - { - boolean result = dir.mkdirs(); - if(result == false) - { - throw new IOException("Unable to create folder in external file dir, cannot prepare file"); - } - } - - File originalFile = new File(dir, "original.mp3"); + File originalFile = new File(getFilesDir(), ORIGINAL_MP3_FILE); Log.i(TAG, "Writing file out prior to WAV conversion"); writeToFile(id, originalFile); - final File processed = new File(dir, "processed.raw"); + final File processed = new File(getFilesDir(), PROCESSED_RAW_FILE); if(processed.exists()) { boolean result = processed.delete(); @@ -383,8 +370,12 @@ private void writeToFile(int resource, File output) throws IOException */ private void reportPlaybackFailure() { - _encodingProgress.hide(); - _encodingProgress = null; + if(_encodingProgress != null) + { + _encodingProgress.dismiss(); + _encodingProgress = null; + } + Toast.makeText(this, R.string.playbackFailure, Toast.LENGTH_LONG).show(); } @@ -468,6 +459,16 @@ protected void onDestroy() _mediaPlayer.stop(); } + for(String toDelete : new String[]{ORIGINAL_MP3_FILE, PROCESSED_RAW_FILE}) + { + File file = new File(getFilesDir(), toDelete); + boolean result = file.delete(); + if(result == false) + { + Log.w(TAG, "Failed to delete file on exit: " + file.getAbsolutePath()); + } + } + super.onDestroy(); }