Улучшить качество записи звука Android? - PullRequest
23 голосов
/ 17 сентября 2009

Есть ли способ записать звук в высоком качестве?

А как я могу прочитать информацию, которую пользователь что-то говорит? В приложении Audio Recording вы можете увидеть такой индикатор (я не знаю правильное название для него).

Ответы [ 2 ]

30 голосов
/ 23 октября 2009

В настоящее время основной причиной плохой записи звука на Android является кодек, используемый классом MediaRecorder (кодек AMR-NB). Однако вы можете получить доступ к несжатому аудио через класс AudioRecord и напрямую записать его в файл.

Приложение Rehearsal Assistant делает это для сохранения несжатого аудио в файл WAV - взгляните на исходный код класса RehearsalAudioRecord .

Класс RehearsalAudioRecord также предоставляет метод getMaxAmplitude, который можно использовать для определения максимального уровня звука с момента последнего вызова метода (MediaRecorder также предоставляет этот метод).

18 голосов
/ 17 сентября 2009

Для записи и мониторинга: Вы можете использовать активность диктофона. Вот фрагмент кода:

Intent recordIntent = new Intent(
                MediaStore.Audio.Media.RECORD_SOUND_ACTION);
            startActivityForResult(recordIntent, REQUEST_CODE_RECORD);

Для идеального рабочего примера того, как записывать звук, который включает монитор ввода, загрузите проект Ringdroid с открытым исходным кодом: https://github.com/google/ringdroid

Посмотрите на скриншоты, и вы увидите монитор.

Для повышения качества звука вам понадобится лучший микрофон. Встроенный микрофон может захватывать только так много (что не так хорошо). Снова, посмотрите на проект ringdroid, почерпните некоторую информацию оттуда. В этот момент вы можете реализовать некоторые процедуры нормализации и усиления для улучшения звука.

...