在WebRTC for iOS中测量麦克风级别

tei*_*vaz 13 audio ios webrtc

我有一个WebRTC iOS应用程序.我有AVAudioSessionRTCAudioSource.我需要检测麦克风何时开始接收响亮的声音(比如一个人开始讲话时),类似于hark在带有AudioContext的浏览器中所做的事情.我怎样才能检测到它或得到的东西,类似于可等来测定流AVCaptureAudioChannelAVCaptureAudioDataOutput

Chr*_*aze 2

在使用AVAudioSession请求录制音频的权限后,我建议使用AVAudioRecorder。这是一个相当简单的类,简单如下:

  • 创建一个实例AVAudioRecorder
  • prepareToRecord调用实例上的方法
  • 使用方法开启声音计量功能meteringEnabled

启用录音后,您可以使用方法访问录音音量测量averagePowerForChannel:

您可能想阅读Apple的文档

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

我不熟悉 WebRTC 框架/功能,但AVAudioRecorder类将为您提供在录音期间测量音频输入的能力。

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

我提供了一个我过去使用过的GitHub示例项目。它被设置为使用我所描述的 AVAudioRecorder 类来检测音频的灵敏度。

  • 问题是,对于 WebRTC 音轨是通过内部方法请求的:`RTCAudioTrack *audioTrack = [self.peerConnectionFactory audioTrackWithTrackId:trackId];` 并且我不创建任何录音机。 (4认同)