Как записать аудио файл с лучшим качеством в Android?
Я создаю одно приложение, которое воспроизводит записанный файл на Android для iPhone и наоборот.
сейчас я использую,
audioRecorder = new MediaRecorder();
audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
файл, записанный с использованием этого кода, имеет размер 85 кб /15 с и очень низкого качества.
если я использую,
audioRecorder = new MediaRecorder();
audioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
audioRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
audioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
тогда размер файла составляет 25 КБ /15 с, а качество намного лучше, чем у AAC. но проблема в том, что AMR не воспроизводится в iPhone.
Поэтому, пожалуйста, предложите схему записи для Android, имеющую лучшее качество, доступный размер и способную воспроизводить на iPhone.
2 ответа
Увеличьте Recorder.setAudioEncodingBitRate(значение), если вы хотите изменить качество.
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();
РЕДАКТИРОВАТЬ:
Другой вариант - добавить конвертер в ваше приложение. Конвертировать AMR в AAC.
Эта ссылка очень полезна: поддерживаемые Android форматы мультимедиа
Этот раздел дает нам больше информации об аудио и видео форматах.