webrtc 渲染_[WebRTC架构分析]本地音频数据录制和播放

前言

音频采集和播放是和机器硬件设备强相关的。在 PC、移动设备上,由于操作系统的不同,操作硬件设备的 API 也是不同的。WebRTC 为了支持跨平台,对于音频设备操作层,抽象了一层公共接口。对于不同的平台的实现,采用桥接模式提供具体的实现。

本文分析 WebRTC 在 windows 系统中音频采集和播放过程。windows 系统是通过 MMDevice(Windows Multimedia Device) 来访问音频设备的,具体的 API 是一套 COM 风格的接口。API 的具体使用,参考 MSDN 即可。WebRTC windows 版本的代码也是有完整的实现,实现代码在 modulesaudio_devicewindows 目录下面。下文中源码分析,是基于 m66 版本。

音频采集依赖的系统库

库名称 库的说明

Strmiids.lib DirectShow 用到的库,导出 CLSID 和 IID

dmoguids.lib, msdmo.lib DirectX Media Object (DMO) 依赖库

wmcodecdspuuid.lib Vista+ DSP 依赖库

Winmm.lib timeGetTime 函数所在的库

音频设备封装

WebRTC 中音频设备部分是作为一个 Module 来封装的。实现代码在 WebRTC 源码的 modules/audio_device 目录下面。

类图:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值