音视频通话 2.0
iOS
新手接入指南
产品简介
产品介绍
功能特性
产品优势
应用场景
基本概念
使用限制
性能指标
产品计费
按量计费
资源包
更新日志
体验 Demo
下载 SDK 和 示例代码
快速开始
快速跑通 Sample Code
接入流程
创建应用
开通服务
集成 SDK
实现音视频通话
Token 鉴权
高级 Token 鉴权
基础功能
设置音频属性
设置视频属性
设置视频旋转方向
设置通话音量
屏幕共享
通话前网络质量探测
监测发言者音量
通话中质量监测
进阶功能
音频管理
客户端音频录制
原始音频数据
美声变声与混响
耳返
自定义音频采集与渲染
音效与伴音
设置音频订阅优先级
音频裸流传输
媒体补充增强信息
视频管理
视频截图
水印
云信美颜
相芯美颜
自定义视频采集
虚拟背景
视频图像畸变矫正
视频裸流传输
加入多房间
设备管理
视频设备管理
音频设备管理
媒体流管理
媒体流加密
跨房间媒体流转发
视频流回退
云端录制
使用云代理
AI 融合功能
AI 降噪
AI 超分
场景实践
语聊房
PK连麦
在线教育
最佳实践
音视频参数配置推荐
房间连接状态管理
实现音视频安全检测
轻松构建本土Clubhouse
Audio Session 使用建议
API 参考
iOS API 参考
服务端 API
错误码
控制台指南
常见问题处理
FAQ
错题集
获取音频 Dump 文件
音频常见问题排查
视频常见问题排查
服务协议

Audio Session 使用建议

更新时间: 2022/11/25 11:51:24

本文介绍在使用 RTC SDK 时,Audio Session 配置的一些建议。

Audio Session 简介

Audio Session 用于管理 App 对音频硬件设备(麦克风、扬声器)的资源使用。功能架构如下图所示。

audiosession.png

Audio Session 的主要功能如下:

  • 设置 App 的音频是否和其他 App 的音频同时存在,还是中断其他 App 的音频。
  • 手机在静音模式下, App 的音频是否可以播放出声音。
  • 电话或者其他 App 中断本 App 的音频时,该如何处理。
  • 指定音频输入和输出的设备,例如使用听筒输出声音,还是扬声器输出声音。

使用建议

建议在用户进入 RTC 房间后,不要执行任何修改 Audio Session 相关的操作。否则可能会出现无声等音频相关的问题。

如果在使用 RTC 过程中有其他音频业务的需求,操作建议如下:

  • 尽量不要设置 Audio Session,建议直接使用 RTC 的音频业务。
  • 如果其他音频业务使用的是一个第三方 SDK,不确定内部是否会修改 Audio Session。可以先尝试,然后提供通话信息,联系技术支持确认。
  • 如果确定需要业务层改变 Audio Session 才能实现音频业务,可以参考操作步骤中的方法。

操作步骤

在调用音频业务代码前,执行如下步骤:

  1. 调用 NERTC 的 enableLocalAudio 接口,将参数值设置为 NO,关闭音频采集。

  2. 获取当前 Audio Session 的配置,并保存下来。

     AVAudioSession *audioSession = [AVAudioSession sharedInstance];
     //保存以下配置
     AVAudioSessionCategory category = audioSession.category;
     AVAudioSessionCategoryOptions categoryOptions = audioSession.categoryOptions;
     AVAudioSessionMode mode = audioSession.mode;
    

在结束音频业务后,继续 RTC 通话前,执行如下步骤:

  1. 设置之前保存的 Audio Session 配置。

     NSError *error = nil;
     //设置category and option
    [[AVAudioSession sharedInstance] setCategory:category withOptions:categoryOptions error:&error];
     //设置mode
    [[AVAudioSession sharedInstance] setMode:mode error:&error];
     //设置option
    [[AVAudioSession sharedInstance] setCategory:category withOptions:categoryOptions error:&error];
    
    [[AVAudioSession sharedInstance] setActive:YES error:&error];
    
  2. 调用 NERTC 的 enableLocalAudio 接口,将参数值设置为 YES ,开启音频采集。

如果以上方法不能解决音频业务与云信 RTC 的兼容问题,请联系网易云信技术支持提供技术服务。

此文档是否对你有帮助?
有帮助
我要吐槽
  • Audio Session 简介
  • 使用建议
  • 操作步骤