聊聊​WebRTC之音频会话管理

本文深入探讨了WebRTC在iOS平台上的音频会话管理,重点关注AVAudioSession的使用,包括配置音频会话、设备硬件的优化。讨论了不同应用场景下音频会话的分类、选项和模式,并分享了实际开发中遇到的问题和解决方案,如音频设备变更、采样率调整等。
摘要由CSDN通过智能技术生成

WebRTC 提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:Windows,Mac,iOS,Android。本文主要介绍 WebRTC 其 iOS 平台的音频会话 AVAudioSession

概念介绍

iOS 音频会话 AVAudioSession 是每一个进行 iOS 音频开发的开发者必须了解的基本概念。音频会话在操作系统 iOS、tvOS、watchOS 中是一项托管服务,系统通过音频会话在应用程序内、应用程序间和设备间管理音频行为。

我们可以使用音频会话来与系统交流,计划如何在应用程序中使用音频。此时,音频会话充当应用程序与操作系统之间的中介,进而充当基础音频硬件之间的中介。我们可以使用它向操作系统传达应用程序音频的性质,而无需详细说明特定行为或与音频硬件的必要交互。将这些细节的管理委派给音频会话,可以确保对用户的音频体验进行最佳管理。

下图出自《Audio Session Programming Guide》,从图中可以看到 AVAudioSession 就是用来管理多个 APP 对音频硬件设备的资源使用。

音频会话的能力

iOS 的音频会话能力主要分为以下几种情况:

  • 配置音频会话

  • 激活音频会话

  • 响应中断

  • 响应路由更改

  • 配置设备硬件

  • 保护用户隐私

具体的详细说明可以参考官网:《Audio Session Programming Guide》,这里就不再全盘细说,本文将主要分析配置音频会话、配置设备硬件两方面的技术细节以及分享实际开发过程中踩过的坑。

配置音频会话

AVAudioSession 的 Category、CategoryOption、Mode 配合使用,不同的应用类型或者使用场景需要搭配不同的组合。

webRTC最全资料提取:https://docs.qq.com/doc/DWHhNTlVtaFJId0ht

Category 主要有以下7种类型,其主要描述以及特点在表中详细介绍:

 

CategoryOption 主要有以下7种类型:

下图详细列出了 Category、CategoryOption、Mode 配合使用情况:

 分类表达音频角色 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值