Как записать аудио файл с лучшим качеством в 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 форматы мультимедиа

Этот раздел дает нам больше информации об аудио и видео форматах.

Другие вопросы по тегам