У меня есть приложение IOS для WebRTC.
Там у меня AVAudioSession
и RTCAudioSource
.
Мне нужно определить, когда микрофон начинает получать громкие звуки (например, когда человек начинает говорить), аналогично тому, что hark в браузере с AudioContext.
Как я могу его обнаружить или получить что-то похожее на поток, который можно измерить как AVCaptureAudioChannel
или AVCaptureAudioDataOutput
?
Измерьте уровень микрофона в WebRTC для iOS
Ответ 1
После использования AVAudioSession
для запроса разрешения на запись звука я рекомендую использовать AVAudioRecorder. Это довольно простой класс и прост как:
- Создайте экземпляр
AVAudioRecorder
- Вызвать метод
prepareToRecord
в экземпляре - Включить функцию измерения звука с помощью метода
meteringEnabled
После включения записи вы можете получить доступ к громкости записи измерения, используя метод averagePowerForChannel:
.
Возможно, вы захотите прочитать Apple documentation
~~~~~~~~~~~~~~~~~~~~~~~ N O T E
~~~~~~~~~~~~~~~~~~~~~ ~~
Я не знаком с каркасом/функциональностью WebRTC, но класс AVAudioRecorder предоставит вам возможность измерять аудиовход во время записи.
~~~~~~~~~~~~~~~~~~~~~~ S A M P L E
~~~~~~~~~~~~~~~~~~~~~~
Я включил проект GitHub который я использовал в прошлом. Это настройка для обнаружения чувствительности звука с использованием класса AVAudioRecorder, который я описал.