音频处理器

WebRTC 的音频处理流水线

情到浓时终转凉″ 提交于 2019-12-25 07:44:44
基于 RTC 场景下要解决的声音的问题,WebRTC 有一个大体如下图所示的音频处理流水线: WebRTC 的音频处理流水线,不是一次性建立起来的,而是分阶段分步骤建立的。整体而言,可以认为这个流水线分两个阶段建立,或者可以认为这个流水线分为两部分:一部分可称为静态流水线,另一部分可称为动态流水线,或者也可以称为前端和后端。静态流水线,在某个时间点建立一次,随后在整个 WebRTC 通信过程中基本保持不变;动态流水线则在通信过程中,可能出现较为频繁的变动,如本地打开或禁用录制启动发送或停止发送音频数据,远端发送者加入或退出频道等,都会改变动态流水线。 如此,WebRTC 的音频处理流水线大致如下图所示: WebRTC 音频的静态流水线,建立之后,其相关节点状态由 AudioState 维护和管理。WebRTC 音频的静态流水线,主要包括 AudioDeviceModule , AudioProcessing ,和 AudioMixer 等,其中 AudioDeviceModule 用于采集和播放音频数据, AudioProcessing 主要用于对录制的音频数据做初始处理,如回声消除,降噪等, AudioMixer 主要用于对远端发送过来的音频数据做混音。 WebRTC 音频的静态流水线在 WebRtcVoiceEngine 初始化时建立: void