我们先来看看WebRTC中提供音频设备输入输出功能的类结构:

从上图中我们看到:

  • AudioDeviceModule接口类是音频设备模型的基类,该接口类及其子类并不提供任何针对音频的实际操作,实际操作都是由AudioDeviceGeneric接口类的子类来提供。

  • AudioDeviceGeneric接口类是音频设备实际操作(如录音、播放、声音控制等)的基类,然后根据平台不同由不同的类来实现具体操作,如windows平台由AudioDeviceWindowsCore来负责实现。

通过代码追踪,我们可以发现WebRTC默认使用的是计算机上的系统默认音频输入输出设备,以及默认的视频采集设备,这些我们通过adm_helpers.cc::Init函数来验证(笔者这里使用的是m77分支):

      if (adm->SetPlayoutDevice(AUDIO_DEVICE_ID) != 0) {RTC_LOG(LS_ERROR) << "Unable to set playout device

WebRTC -- 添加选择音频输入输出设备功能相关推荐

  1. linux下查看音频输入输出设备

    输入: arecord -l 2.输出: aplay -l

  2. WebRTC源码分析-呼叫建立过程之四(上)(创建并添加本地音频轨到PeerConnection)

    目录 1. 引言 2. 音频轨创建和添加 2.1 音频源AudioSource的创建 2.1.1 音频源继承树 2.1.2 近端音频源LocalAudioSource 2.1.3 远端音频源Remot ...

  3. 【Android 高性能音频】OboeTester 音频性能测试应用 ( Oboe 输出测试参数 | API 选择 | 音频输出设备选择 | 采样率 | 通道 | 采样格式 | 播放偏好 )

    文章目录 一.Oboe 输出测试参数面板 二.Oboe 输出测试参数 API 及 设备选择 三.Oboe 输出测试参数 音频参数 四.Oboe 输出测试参数 播放偏好 五.Oboe 输出测试参数 ( ...

  4. WebRTC 系列之音频会话管理

    导读:WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音对话或视频对话的 API.W3C 和 IETF 在2021年1月26日共同宣布 WebRTC ...

  5. atitit 音频 项目 系列功能表 音乐 v3 t67.docx Atitit 音频 项目 系列功能表 1.音频 音乐 语言领域的功能表 听歌识曲功能 酷我功能。 铃声 功能。。 音频切割(按

    atitit 音频 项目 系列功能表 音乐 v3 t67.docx Atitit 音频 项目 系列功能表 音频 音乐 语言领域的功能表 听歌识曲功能 酷我功能. 铃声 功能.. 音频切割(按照副歌部分 ...

  6. atitit 音频 项目 系列功能表 音乐 v3 t67.docx Atitit 音频 项目 系列功能表 音频 音乐 语言领域的功能表 听歌识曲功能 酷我功能。 铃声 功能。。 音频切割(按照副歌部

    atitit 音频 项目 系列功能表 音乐 v3 t67.docx Atitit 音频 项目 系列功能表 音频 音乐 语言领域的功能表 听歌识曲功能 酷我功能. 铃声 功能.. 音频切割(按照副歌部分 ...

  7. jssip + webRtc + Freeswitch 实现web端接打电话功能

    jssip + webRtc + Freeswitch 实现web端接打电话功能(接听,挂断,静音,取消静音) 做这些功能的前提,先要把freeswitch和webRtc搭建好 ** 注意: 服务器域 ...

  8. ZOOM H1n录音笔怎么连接电脑做音频输入麦克风【教程】

    一.ZOOM 录音笔连接电脑做音频输入麦克风,以H1n为例 以前试过用usb连接,但是发现音质不对.又试过用公对公3.5mm接头连接电脑麦口和录音笔耳机输出口,一顿操作猛如虎,一听音质超级糊. 因为买 ...

  9. FFmpeg命令行使用手册-devices输入输出设备汇总篇

    ffmpeg命令系列: FFmpeg命令行使用手册-protocols协议汇总篇 FFmpeg命令行使用手册-devices输入输出设备汇总篇 一.前言 本系列介绍ffmpeg命令行中有关-devic ...

最新文章

  1. ThreadPoolExecutor的七个参数详解
  2. 一步步开发自己的博客 .NET版(5、Lucenne.Net 和 必应站内搜索)
  3. 从零开始学电脑办公_电脑办公从零开始
  4. JDBC连接mysql数据库操作
  5. 笨办法学 Python · 续 练习 47:`bc`
  6. easyui datagrid中添加右键菜单事件
  7. 建筑节能市场为中央空调发展推波助澜
  8. linux中删除文件命令
  9. UCI数据集汇总及描述
  10. 程序员的超大文件下载方法
  11. Office 2010 excel在打开两个表格的时候,仅能在一个窗口显示
  12. mysql将收入增加200_关于一些视图的基本操作(结合YGGL.sql)
  13. 鸿蒙OS应用(HarmonyOS Application)开发常见示例源码
  14. 红黑树·删除操作,详细图解
  15. 2020-08-21
  16. 常用的数据集成ETL工具有哪些?
  17. 实现阿拉伯数字转中文大写
  18. 如果大家看了我的tools专栏,里面的小工具有不少,我提炼出来给大家——变换控制台颜色
  19. 3款强大且实用的电脑软件,颠覆你的认知,值得一试
  20. [已完结]我在学校举办软件安全讲座提纲

热门文章

  1. Geogebra拓扑学家的正弦曲线
  2. 【基金量化研究系列】大类资产配置研究(一)——股债二八配置策略与股债风险平价策略
  3. 【LeetCode】40. 组合总和 II (JavaScript)
  4. 某些老司机直播APP这么受欢迎?作为Android程序员如何进军音视频?
  5. 安装Windows 10X 教你如何安装Win10X正式版 及下载地址Win10X 20279.1002
  6. 2020大二HTML5期末课业
  7. 怎么点亮段码屏_段码LCD液晶屏参考程序
  8. 【财务架构day1】财务系统的领域建模——五视图法的分析
  9. pygal画世界地图
  10. 用于软件测试的最佳免费自动化工具