Note that there are some explanatory texts on larger screens.

plurals
  1. POandroid - MediaRecorder throws illegalstateexception
    primarykey
    data
    text
    <p>I am trying to develop a simple android audio recorder.Everything builds fine and it also runs fine on the android device. It seems like i can start the recording but when i want to stop it throws a IllegalStateException. I can't find the mistake. Here is the code:</p> <pre><code>public class VoiceRecorder { MediaRecorder recorder= new MediaRecorder(); static Context cont; public void startRecord(Context context) throws IllegalStateException, IOException{ cont = context; recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile(cont.getFilesDir()+"/recordings.3gp"); recorder.prepare(); recorder.start(); } public void stopRecording(Context context) { cont = context; recorder.stop(); recorder.release(); File file = new File (cont.getFilesDir()+"/recordings.3gp"); UploadFile.uploadFile("recordings.3gp", file); recorder = null; } } </code></pre> <p>I want to trigger it with:</p> <p>VoiceRecorder vr = new VoiceRecorder();</p> <p>vr.startRecord(cont);</p> <p>vr.stopRecording(cont);</p> <p>when calling start Logcat says: (what should be ok)</p> <pre><code>09-06 22:56:42.830: D/AudioHardwareMSM72XX(123): audpre_index = 0, tx_iir_index = 0 09-06 22:56:42.840: D/HTC Acoustic(123): msm72xx_enable_audpre: 0x0000 09-06 22:56:42.850: I/AudioHardwareMSM72XX(123): Routing audio to Speakerphone 09-06 22:56:42.850: D/HTC Acoustic(123): msm72xx_enable_audpp: 0x0001 09-06 22:56:42.850: I/AudioHardwareMSM72XX(123): Routing audio to Speakerphone 09-06 22:56:42.860: D/HTC Acoustic(123): msm72xx_enable_audpp: 0x0001 09-06 22:56:42.870: D/AudioFlinger(123): setParameters(): io 3, keyvalue routing=262144;vr_mode=0, tid 156, calling tid 123 09-06 22:56:42.870: I/AudioHardwareMSM72XX(123): Routing audio to Speakerphone 09-06 22:56:42.880: D/AudioHardwareMSM72XX(123): audpre_index = 0, tx_iir_index = 0 09-06 22:56:42.880: D/HTC Acoustic(123): msm72xx_enable_audpre: 0x0000 09-06 22:56:42.880: I/AudioHardwareMSM72XX(123): do input routing device 40000 09-06 22:56:42.880: I/AudioHardwareMSM72XX(123): Routing audio to Speakerphone 09-06 22:56:42.890: D/HTC Acoustic(123): msm72xx_enable_audpp: 0x0001 </code></pre> <p>But when i call stop:</p> <pre><code>09-06 22:59:52.440: E/MediaRecorder(1069): stop called in an invalid state: 1 09-06 22:59:52.440: W/System.err(1069): java.lang.IllegalStateException 09-06 22:59:52.460: W/System.err(1069): at android.media.MediaRecorder.stop(Native Method) 09-06 22:59:52.460: W/System.err(1069): at de.spyapp.VoiceRecorder.stopRecording(VoiceRecorder.java:33) 09-06 22:59:52.460: W/System.err(1069): at de.spyapp.CheckCMD.checkCMD(CheckCMD.java:30) 09-06 22:59:52.460: W/System.err(1069): at de.spyapp.AppActivity$2.run(AppActivity.java:44) 09-06 22:59:52.460: W/System.err(1069): at java.lang.Thread.run(Thread.java:1096) </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload