Я хочу записать звук в формате файла AMR. В настоящее время я использую следующий код для записи звука:
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);
Но он генерирует файл .3gp. Как я могу получить файл .amr? Изменение выходного файла на Sample.amr работает. Но так ли это правильно? Пожалуйста, помогите
ИЗМЕНИТЬ ЭТО РЕШЕНО СЕЙЧАС
Это была моя глупая ошибка: я использовал myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
Так должно быть-
myRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
Итак, приведенный ниже код работает для записи в формате AMR:
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);