very poor quality of audio recorded on my droidx using MediaRecorder, why?

android-developer picture android-developer · Feb 15, 2011 · Viewed 8.6k times · Source

my project requires me to be able to record audio on an android device. i implemented solution using the MediaRecorder() but the recorded audio is in a terrible quality. what am i doing wrong? i must think that this cant be the only way to record audio :) perhaps i am doing something wrong, i am including my code below. please point me to the right direction.

thanks!

MediaRecorder recorder = new MediaRecorder();
File outputFile = new File(Environment.getExternalStorageDirectory(), "audio.3gp");
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(outputFile.getAbsolutePath());
recorder.prepare();
recorder.start();
// stop
recorder.stop();
recorder.reset(); 
recorder.release();

Answer

keltor picture keltor · Feb 16, 2011

AMR_NB stinks.

Set the bitrate to 16 and sampling rate to 44100.

3gpp generally stinks, try using AAC/MPEG_4 instead.

Try this and update us.