Alex Rivera | Logout

how to record audio file with better quality in android?

Asked 2013-02-20T05:49:23.223
14

I am creating one application which play recorded file on Android to iphone and vice-versa.

now I am using ,

        audioRecorder = new MediaRecorder();
        audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

file recorded using this code having size 85 kb /15 sec and a very poor quality.

if I use ,

        audioRecorder = new MediaRecorder();
        audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
        audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

then file size is 25kb/15 sec and quality much better than aac. but problem is that AMR is not playable in iPhone.

So please suggest recording schema for Android having better quality, affordable size and can play on iPhone also.

Edit
Report

1 Answer

18

Increase the recorder.setAudioEncodingBitRate(value) if you want to change the quality.

recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.setAudioEncoder(MediaRecorder.getAudioSourceMax());
recorder.setAudioEncodingBitRate(16);
recorder.setAudioSamplingRate(44100);
recorder.setOutputFile(path);
recorder.prepare();
recorder.start(); 

EDIT:

Another option is to add a converter to your app. Convert AMR to AAC.

answered 2013-02-20T06:03:07.580

Your Answer