Подтвердить что ты не робот

Измерьте уровень микрофона в WebRTC для iOS

У меня есть приложение IOS для WebRTC. Там у меня AVAudioSession и RTCAudioSource. Мне нужно определить, когда микрофон начинает получать громкие звуки (например, когда человек начинает говорить), аналогично тому, что hark в браузере с AudioContext. Как я могу его обнаружить или получить что-то похожее на поток, который можно измерить как AVCaptureAudioChannel или AVCaptureAudioDataOutput?

4b9b3361

Ответ 1

После использования AVAudioSession для запроса разрешения на запись звука я рекомендую использовать AVAudioRecorder. Это довольно простой класс и прост как:

  • Создайте экземпляр AVAudioRecorder
  • Вызвать метод prepareToRecord в экземпляре
  • Включить функцию измерения звука с помощью метода meteringEnabled

После включения записи вы можете получить доступ к громкости записи измерения, используя метод averagePowerForChannel:.

Возможно, вы захотите прочитать Apple documentation

~~~~~~~~~~~~~~~~~~~~~~~ N O T E ~~~~~~~~~~~~~~~~~~~~~ ~~

Я не знаком с каркасом/функциональностью WebRTC, но класс AVAudioRecorder предоставит вам возможность измерять аудиовход во время записи.

~~~~~~~~~~~~~~~~~~~~~~ S A M P L E ~~~~~~~~~~~~~~~~~~~~~~

Я включил проект GitHub который я использовал в прошлом. Это настройка для обнаружения чувствительности звука с использованием класса AVAudioRecorder, который я описал.