Search code examples
androidandroid-audiorecord

AudioRecord doesn't work for Motorola Milestone


I'm having this problem only on Motorola Milestone. Code:

// init recorder
recordInstance = new AudioRecord(MediaRecorder.AudioSource.MIC,
    8000, AudioFormat.CHANNEL_CONFIGURATION_MONO,
    AudioFormat.ENCODING_PCM_16BIT, 8000);

recordInstance.startRecording();

//more code here

recordInstance.stop();

The errorinformation I have (can't find more for the moment since I don't have a milestone myself for debugging):

Uncaught handler: thread main exiting due to uncaught exception
java.lang.IllegalStateException: stop() called on an uninitialized AudioRecord.
at android.media.AudioRecord.stop(AudioRecord.java:51 6)

Apparantly I'm not the only one with this problem. Some very similar threads I found (without solution):

http://groups.google.com/group/android-developers/browse_thread/thread/6dd24aeb484b2e40 http://web.archive.org/web/20100824043744/http://androidcommunity.com:80/forums/f2/problem-using-audiorecord-in-motorola-milestone-30935/ http://community.developer.motorola.com/t5/Android-App-Development-for/Problem-using-AudioRecord-on-Milestone-device/m-p/3889 http://www.fring.com/forums/showthread.php?t=16194 http://groups.google.com/group/android-developers/browse_thread/thread/63be273ba59c635e/1c4a010fd470d328


Solution

  • This should work:

    recordInstance = new AudioRecord(MediaRecorder.AudioSource.MIC,
    16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, 16000);
    

    Just stick to the standard sample rates http://en.wikipedia.org/wiki/Sampling_rate#Audio. I wonder why Milestone does not support recording with 8bit encoding. This gives me an error too - "Invalid audio format".