У меня есть приложение 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, который я описал.