Минимальный порог громкости при использовании AudioRecord на Android

Я создаю приложение, как Говорящий Том. я использую AudioRecorder для записи. У меня только базовый Android, без Sound Touch. Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно записывать только звук выше определенной громкости.

Заявление:

if (recorder.getState() == AudioRecord.STATE_INITIALIZED)
{
    return recorder;
} 

Рекордер инициализируется даже при низком уровне громкости и продолжает запись, даже когда я прекращаю говорить, а фоновый звук очень низкого уровня.

1 ответ

Решение

Вы могли бы запустить свой AudioRecord непрерывно и проверяйте уровень (среднеквадратическое или другое измерение, которое вы предпочитаете) с относительно короткими интервалами. Когда уровень звука превысит желаемое вами пороговое значение, сохраняйте данные буфера до тех пор, пока они не упадут ниже порогового значения остановки в течение заданного промежутка времени, в противном случае выбросьте данные.

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