I wan to record audio in AMR file format. I am currently using bellow code to record audio:
outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "Sample.3gp";
myRecorder = new MediaRecorder();
myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
myRecorder.setOutputFile(outputFile);
But it generates .3gp file. How can I get .amr file? Changing outputfile to Sample.amr works. But is it a correct way? Please help
EDIT ITS SOLVED NOW
It was my Silly Mistake: I used myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
It should be-
myRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
So bellow code is working for Recording in AMR format:
outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "Sample.amr";
myRecorder = new MediaRecorder();
myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
myRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
myRecorder.setOutputFile(outputFile);
Refer to android OutputFormat document Try below code:
Log.i(TAG,"Record start");
String outputFile;
MediaRecorder myRecorder;
outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + "Sample.amr";
Log.i(TAG,"file name: " + outputFile);
myRecorder = new MediaRecorder();
myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
myRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
myRecorder.setOutputFile(outputFile);
try {
myRecorder.prepare();
myRecorder.start();
} catch (IOException e) {
e.printStackTrace();
}
try {
Thread.sleep(30*1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
myRecorder.stop();
myRecorder.release();
Log.i(TAG,"Record finished");
Key points:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With