WebRTC的AudioDeviceMude两种实现使用对比

WebRTC中对于ADM的实现有两种:

  • AudioDeviceWindowsCore

  • WindowsAudioDeviceModule

    这两个类在源码中的位置分别是modules\audio_device\win\audio_device_core_win.h和modules\audio_device\win\audio_device_module_win.cc

简述

1. AudioDeviceWindowsCore

特点是将音频输入与输入混合在一起,导致出现的一个显著缺陷是:只有当音频输入与输出设备都正常时,音频功能才能正常进行。如没有扬声器设备时,即使拥有麦克风设备也无法有效地输入音频数据。

2. WindowsAudioDeviceModule

在吸取了AudioDeviceWindowsCore的教训后,WebRTC提供了ADM在Windows下另一较新的实现 WindowsAudioDeviceModule。它的特点是将音频输入与输出分开进行,二者互不相干,弥补了前者的缺陷。
但作为较新的实现,WindowsAudioDeviceModule中一些接口还并未被实现。如音量控制和设备端AEC、AGC、NSI可用性检查与设置。

如何选择

  • 如果程序没有可以在无某一音频设备的情况下正常运行的要求,当前可以选择AudioDeviceWindowsCore。

    在实际情况中,WindowsAudioDeviceModule并不稳定,它的实现不仅不完整,经过测试它还有一些致命bug(频繁插拔音频设备使WindowsAudioDeviceModule陷入重启中丧失功能,或者在初始化时崩溃)。

  • 使用WindowsAudioDeviceModule是未来趋势。

    因此,需要跟进WebRTC源码中 WindowsAudioDeviceModule 类的实现情况,以便及时更换ADM实现,达到最佳体验。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值