在iOS的WebRTC中测量麦克风级别
我有一个WebRTC iOS应用程序。 那里有AVAudioSession
和RTCAudioSource
。 我需要检测麦克风何时开始接收响亮的声音(就像一个人开始说话的时候),类似于使用AudioContext在浏览器中做的事情。 我如何检测它或获取类似于可以像AVCaptureAudioChannel
或AVCaptureAudioDataOutput
一样测量的stream?
使用AVAudioSession
请求权限录制audio后,我会build议使用AVAudioRecorder。 这是一个相当简单的课,如下所示:
- 创build一个
AVAudioRecorder
的实例 - 调用实例上的
prepareToRecord
方法 - 使用
meteringEnabled
方法启用声音测量function
启用录制后,您可以使用方法averagePowerForChannel:
访问录制音量测量 。
您可能想阅读苹果的文档
~~~~~~~~~~~~~~~~~~~~~~~请NOTE
~~~~~~~~~~~~~~~~~~ NOTE
~~~~~~~~~~~~~
我不熟悉WebRTC框架/function,但AVAudioRecorder类将为您提供在录制过程中测量audioinput的function。
~~~~~~~~~~~~~~~~~~~~~~ SAMPLE
~~~~~~~~~~~~~~~~~~~~~~
我已经包含了一个我以前用过的GitHub 示例项目 。 它设置为使用我所描述的AVAudioRecorder类来检测audio的灵敏度。