设置音频编码属性
不同的 App 需要设置不同的音频编码属性或应用场景。本文介绍如何使用声网 RTC SDK 在你的 App 中设置合适的音频编码属性和应用场景。
技术原理
SDK 默认使用 AUDIO_PROFILE_DEFAULT
编码属性和 AUDIO_SCENARIO_DEFAULT
应用场景。如果默认设置无法满足你的需求,调用如下 API 设置音频编码属性和应用场景。
API | 描述 |
---|---|
Initialize(context.audioScenario) | 在创建 IRtcEngine 实例时,设置音频应用场景。默认值为 AUDIO_SCENARIO_DEFAULT 。 |
SetAudioProfile(profile, scenario) | 在加入频道前后均可设置音频编码属性和应用场景。 |
SetAudioScenario | 在加入频道前后均可设置音频应用场景。 |
前提条件
在实现设置音频编码属性和应用场景前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现方法
本节介绍如何为常见应用设置音频编码属性和音频应用场景。
设置音频编码属性
本小节介绍如何调用 SetAudioProfile
设置音频编码属性。
1. 创建 UMG
创建一个 ComboBoxString (下拉列表框) 控件,命名为 CBS_Audio_Profile,你可以在下拉列表中按需选择音频编码属性,其中默认选项为 AUDIO_PROFILE_DEFAULT,其他选项详见 EAUDIO_PROFILE_TYPE
。如下图所示:
2. 绑定 UI 事件
创建 Bind Event to On Selection Changed 节点,分别连接 CBS_Audio_Profile 控件和 OnSetAudioProfile 回调。当你在 CBS_Audio_Profile 下拉列表框中选择不同的音频编码属性时,会触发 OnSetAudioProfile 回调。如下图所示:
3. 实现回调函数
创建 OnSetAudioProfile 回调函数,配置以下参数:
输入参数 | 数据类型 | 参数描述 |
---|---|---|
SelectedItem | String | 音频编码属性选项。 |
SelectionType | Enum | 选择信息枚举类型,详见 ESelectInfo。 |
触发该回调后,你选择的音频编码属性会传入 Set Audio Profile 的 Profile 参数,并调用 Set Audio Profile 方法完成设置。如下图所示:
设置音频应用场景
本小节介绍如何调用 SetAudioScenario
设置音频应用场景。
1. 创建 UMG
创建一个 ComboBoxString (下拉列表框) 控件,命名为 CBS_Audio_Scenario,你可以在下拉列表中按需选择音频应用场景,其中默认选项为 AUDIO_SCENARIO_DEFAULT,其他选项详见 EAUDIO_SCENARIO_TYPE
。如下图所示:
2. 绑定 UI 事件
创建 Bind Event to On Selection Changed 节点,分别连接 CBS_Audio_Scenario 控件和 OnSetAudioScenario 回调。当你在 CBS_Audio_Scenario 下拉列表框中选择不同的音频应用场景时,会触发 OnSetAudioScenario 回调。如下图所示:
3. 实现回调函数
创建 OnSetAudioScenario 回调函数,配置以下参数:
输入参数 | 数据类型 | 参数描述 |
---|---|---|
SelectedItem | String | 音频应用场景选项。 |
SelectionType | Enum | 选择信息枚举类型,详见 ESelectInfo。 |
触发该回调后,你选择的音频编码属性会传入 Set Audio Scenario 的 Scenario 参数,并调用 Set Audio Scenario 方法完成设置。如下图所示:
推荐设置
常见应用的音频编码属性和音频应用场景推荐设置如下:
常见应用 | 音频编码属性 | 音频应用场景 |
---|---|---|
1 对 1 互动教学,主要要求保证通话质量、传输流畅 | AUDIO_PROFILE_DEFAULT | AUDIO_SCENARIO_DEFAULT |
KTV,主要要求高音质、对音乐和歌声的表现力好 | AUDIO_PROFILE_MUSIC_HIGH_QUALITY | AUDIO_SCENARIO_GAME_STREAMING |
语音电台,一般会使用专业的音频设备,主要要求高音质和立体声 | AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO | AUDIO_SCENARIO_GAME_STREAMING |
音乐教学,主要要求高音质,支持将扬声器播放的音效传输到远端 | AUDIO_PROFILE_MUSIC_STANDARD_STEREO | AUDIO_SCENARIO_GAME_STREAMING |
参考信息
注意事项
由于 iOS 系统限制,部分音频路由在通话音量模式下无法识别。因此,如需使用外接声卡,建议将音频应用场景设置为高音质场景 AUDIO_SCENARIO_GAME_STREAMING
(3)。在这种场景下,SDK 会切换到媒体音量规避该问题。
相关文档
示例项目
声网提供了开源的示例项目供你参考,你可以前往下载或查看其中的源代码。