不同操作系统管理音频设备及提供的音频接口方式各不同,ADM用于屏蔽音频设备管理及接口的差异,抽象统一接口。它的全称是Adio Device Module。
设备管理模块(ADM)
类结构图
首先它肯定是个接口类,不同平台的实现都继承于它,实现具体的接口。如下为整个ADM体系的类结构图。
AudioDeviceWindowCore
和AudiDeviceMac
就分属windows和mac下的实现,linux下的实现为AudioDeviceLinuxALSA
。
ADM的接口分为三大类:
- 音频设备管理:检索音频设备,初始化音频设备,指定使用的音频设备。
- 音频回放。
- 音频采集。
在整个音频模块中,它属于最底层,将上层的处理后的音频数据给到音频设备进行回放或采集音频给到上层处理。
创建时机
全局只有一个ADM对象,由所有的pc(peerconnection)对象所共享。
相关堆栈