音频模式
为了满足不同场景对音频设置的需求,同时降低使用复杂度,对音频码率(音频通话质量)和音频模式(音频通话模式)进行了接口合并封装。
音频模式和音质
音频模式与音质合称为音频属性。SDK 针对不同使用场景设计了音频模式,并提供了三个音质选项。音频模式与音质可任意配合使用。
了解音频模式
SDK 提供三种音频模式(RCRTCAudioScenario
)。请在推荐场景下使用。
音频模式枚举 | 使用场景建议 |
---|---|
DEFAULT | 仅推荐通话,会议或类似场景下使用。如果在语聊房、直播、音乐 教学场景中使用 DEFAULT 模式,可能会出现音乐音质差、伴奏音量高低不稳定的问题. |
MUSIC_CHATROOM | 语聊房,音乐播放场景。不可在会议场景下使用 MUSIC_CHATROOM ,否则会影响 VOIP 应用的音频模式规则。 |
MUSIC_CLASSROOM | 音乐教学场景。不建议在会议、语聊房、直播场景中使用 MUSIC_CLASSROOM ,否则有出现回声问题的风险。 |
了解音质与码率
SDK 提供三种音频质量模式(RCRTCAudioQuality
)。请在推荐场景下使用。
音质枚举 | 码率 | 推荐使用场景 |
---|---|---|
SPEECH | 人声音质,编码码率最大值为 32Kbps | 通话,会议场景(默认) |
MUSIC | 标清音乐音质,编码码率最大值为 64Kbps | 语聊房,音乐播放场景 |
MUSIC_HIGH | 高清音乐音质,编码码率最大值为 128Kbps | 音乐教学场景 |
设置音频属性
您可以通过 RCRTCEngine
类中的 SetAudioConfig
方法设置音频模式与音质。请在加入房间前或者加入房间后,通过 RCRTCEngine
实例进行调用设置。详情如下:
提示
由于 DEFAULT 模式和其他两种模式在播放音量上存在差别,会导致切换前后播放音量不一致,因此不建议使用 DEFAULT 模式和其他两种模式连续切换。
/// <summary>
/// 设置默认音频参数, 仅供会议用户或直播主播用户使用
/// </summary>
/// <param name="config">音频参数</param>
/// <returns></returns>
void SetAudioConfig(RCRTCAudioConfig audioConfig);
-
示例代码:
/**
普通通话模式(普通音质模式), 满足正常音频场景,人声音质,编码码率最大值为32Kbps。音量调节 '通话音量'。
*/
var audioConfig = RCRTCAudioConfig.Create()
.SetQuality(RCRTCAudioQuality.SPEECH)
.SetScenario(RCRTCAudioScenario.DEFAULT);
Engine.SetAudioConfig(audioConfig);
/**
音乐教室模式, 提升声音质量, 适用对乐器演奏音质要求较高的场景,高清音乐音质,编码码率最大值为128Kbps。此模式下需要收听一端静音麦克风,音量调节 ’媒体音量‘。
*/
var config = RCRTCAudioConfig.Create()
.SetQuality(RCRTCAudioQuality.MUSIC_HIGH)
.SetScenario(RCRTCAudioScenario.MUSIC_CLASSROOM);
Engine.SetAudioConfig(config);
/**
音乐聊天室模式, 提升声音质量, 适用对音乐演唱要求较高的场景,高清音乐音质,编码码率最大值为128Kbps。音量调节 '媒体音量'。
*/
var config = RCRTCAudioConfig.Create()
.SetQuality(RCRTCAudioQuality.MUSIC_HIGH)
.SetScenario(RCRTCAudioScenario.MUSIC_CHATROOM);
Engine.SetAudioConfig(config);
如何匹配模式和音质
音频通话模式与音质可以任意组合,达到特殊场景需求。下表列出了几种常见场景推荐值,您也可以直接参考上文中的示例代码。
场景 | AudioScenario 音频模式 | AudioQuality 音质 |
---|---|---|
通话,会议场景(默认) | DEFAULT | SPEECH |
语聊房,音乐播放场景 | MUSIC_CHATROOM | MUSIC |
音乐教学场景 | MUSIC_CLASSROOM | MUSIC_HIGH |