2024/09/19 14:52:02
设置音频编码属性
不同的 App 需要设置不同的音频编码属性或应用场景。本文介绍如何使用声网 RTC SDK 在你的 App 中设置合适的音频编码属性和应用场景。
技术原理
SDK 默认使用 AudioProfileDefault
编码属性和 AudioScenarioDefault
应用场景。如果默认设置无法满足你的需求,调用如下 API 设置音频编码属性和应用场景。
API | 描述 |
---|---|
initialize(RtcEngineContext context); | 在创建 IRtcEngine 实例时,设置音频应用场景。默认值为 AudioScenarioDefault 。 |
setAudioProfile(profile) | 在加入频道前后均可设置音频编码属性。 |
setAudioScenario(scenario) | 在加入频道前后均可设置音频应用场景。 |
前提条件
在实现设置音频编码属性和应用场景前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。
实现方法
本节介绍如何为常见应用设置音频编码属性和应用场景。你可以将如下示例代码添加至你的项目中。
1 对 1 互动教学
1 对 1 互动教学主要要求保证通话质量、传输流畅。在你的项目中添加如下代码:
TypeScript
// 在初始化 IRtcEngine 实例时,设置音频应用场景
const engine = createAgoraRtcEngine();
engine.initialize({
appId,
...,
audioScenario: AudioScenarioType.AudioScenarioDefault,
});
// 设置音频编码属性
engine.setAudioProfile(AudioProfileType.AudioProfileDefault);
KTV
KTV 主要要求高音质、对音乐和歌声的表现力好。在你的项目中添加如下代码:
TypeScript
// 在初始化 IRtcEngine 实例时,设置音频应用场景
const engine = createAgoraRtcEngine();
engine.initialize({
appId,
...,
audioScenario: AudioScenarioType.AudioScenarioDefault,
});
// 设置音频编码属性
engine.setAudioProfile(AudioProfileType.AudioProfileMusicHighQuality);
语音电台
语音电台一般会使用专业的音频设备,主要要求高音质和立体声。在你的项目中添加如下代码:
TypeScript
// 在初始化 IRtcEngine 实例时,设置音频应用场景
const engine = createAgoraRtcEngine();
engine.initialize({
appId,
...,
audioScenario: AudioScenarioType.AudioScenarioGameStreaming,});
// 设置音频编码属性
engine.setAudioProfile(AudioProfileType.AudioProfileMusicHighQualityStereo);
音乐教学
该场景主要要求高音质,支持将扬声器播放的音效传输到远端。声网推荐如下设置:
TypeScript
// 在初始化 IRtcEngine 实例时,设置音频应用场景
const engine = createAgoraRtcEngine();
engine.initialize({
appId,
...,
audioScenario: AudioScenarioType.AudioScenarioDefault,
});
// 设置音频编码属性
engine.setAudioProfile(AudioProfileType.AudioProfileMusicStandardStereo);
参考信息
注意事项
由于 iOS 系统限制,部分音频路由在通话音量模式下无法识别。因此,如需使用外接声卡,建议将音频应用场景设置为高音质场景 AudioScenarioGameStreaming
(3)。在这种场景下,SDK 会切换到媒体音量规避该问题。