Skip to content

Instantly share code, notes, and snippets.

@seadowg
Last active January 28, 2021 10:49
Show Gist options
  • Save seadowg/e6cbab21e032fe2fcd9afb9b4f458ab9 to your computer and use it in GitHub Desktop.
Save seadowg/e6cbab21e032fe2fcd9afb9b4f458ab9 to your computer and use it in GitHub Desktop.
MediaRecorder pause and then stop fails
package org.odk.collect.android.instrumented;
import android.media.MediaRecorder;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.io.File;
@RunWith(AndroidJUnit4.class)
public class MediaRecorderTest {
@Test
public void whenRecordingAMR_pause_andThenStop_works() throws Exception {
MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setAudioSamplingRate(8000);
mediaRecorder.setAudioEncodingBitRate(12200);
mediaRecorder.setOutputFile(File.createTempFile("test", ".amr").getAbsolutePath());
mediaRecorder.prepare();
mediaRecorder.start();
Thread.sleep(1000); // Make sure we get some data before pausing so stop doesn't fail
mediaRecorder.pause();
mediaRecorder.stop();
}
@Test
public void whenRecordingAAC_pause_andThenStop_works() throws Exception {
MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setAudioSamplingRate(32000);
mediaRecorder.setAudioEncodingBitRate(64000);
mediaRecorder.setOutputFile(File.createTempFile("test", ".mp4").getAbsolutePath());
mediaRecorder.prepare();
mediaRecorder.start();
Thread.sleep(1000); // Make sure we get some data before pausing so stop doesn't fail
mediaRecorder.pause();
mediaRecorder.stop();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment