diff --git a/app/src/main/java/org/thoughtcrime/securesms/audio/MediaRecorderWrapper.java b/app/src/main/java/org/thoughtcrime/securesms/audio/MediaRecorderWrapper.java index 67374e7cf..db468680b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/audio/MediaRecorderWrapper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/audio/MediaRecorderWrapper.java @@ -24,15 +24,23 @@ public class MediaRecorderWrapper implements Recorder { public void start(ParcelFileDescriptor fileDescriptor) throws IOException { Log.i(TAG, "Recording voice note using MediaRecorderWrapper."); recorder = new MediaRecorder(); - recorder.setAudioSource(MediaRecorder.AudioSource.MIC); - recorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS); - recorder.setOutputFile(fileDescriptor.getFileDescriptor()); - recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); - recorder.setAudioSamplingRate(SAMPLE_RATE); - recorder.setAudioEncodingBitRate(BIT_RATE); - recorder.setAudioChannels(CHANNELS); - recorder.prepare(); - recorder.start(); + + try { + recorder.setAudioSource(MediaRecorder.AudioSource.MIC); + recorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS); + recorder.setOutputFile(fileDescriptor.getFileDescriptor()); + recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); + recorder.setAudioSamplingRate(SAMPLE_RATE); + recorder.setAudioEncodingBitRate(BIT_RATE); + recorder.setAudioChannels(CHANNELS); + recorder.prepare(); + recorder.start(); + } catch (IllegalStateException e) { + Log.w(TAG, "Unable to start recording", e); + recorder.release(); + recorder = null; + throw new IOException(e); + } } @Override