есть ли возможность сделать запись звука с более высоким качеством?
И как я могу прочитать информацию о том, что Пользователь что-то говорит? В приложении "Аудиозапись" вы можете увидеть такой индикатор (я не знаю его правильного имени).
Спасибо.
Ответ 1
Для записи и мониторинга: вы можете использовать активность диктофона.
Вот фрагмент кода:
Intent recordIntent = new Intent(
MediaStore.Audio.Media.RECORD_SOUND_ACTION);
startActivityForResult(recordIntent, REQUEST_CODE_RECORD);
Для идеального рабочего примера записи звука, который включает входной монитор, загрузите проект Ringdroid с открытым исходным кодом: https://github.com/google/ringdroid
Посмотрите на скриншоты, и вы увидите монитор.
Для повышения качества звука вам понадобится лучший микрофон. Встроенный микрофон может захватывать столько (что не так хорошо). Опять же, посмотрите на проект ringdroid, подберите некоторую информацию оттуда. В этот момент вы можете реализовать некоторые процедуры нормализации и усиления для улучшения звука.
Ответ 2
В настоящий момент большой причиной плохой записи звука на Android является кодек, используемый классом MediaRecorder (кодек AMR-NB). Однако вы можете получить доступ к несжатому аудио через класс AudioRecord и записать его в файл напрямую.
Класс RehearsalAudioRecord также предоставляет метод getMaxAmplitude, который вы можете использовать для определения максимального уровня звука с момента последнего вызова метода (MediaRecorder также предоставляет этот метод).