跳到主要内容

音频模式

为了满足不同场景对音频设置的需求,同时降低使用复杂度,融云 RTCLib SDK 从 5.1.0 开始,对音频码率(5.1.0 音频通话质量)和音频模式(5.1.0 音频通话模式)进行了接口合并封装,并重新设计,对外提供音频质量 + 音频模式的接口,推荐使用 5.1.0 最新接口。

场景和音质选择

SDK 提供了音频场景 RCRTCAudioScenario 与音频质量 RCRTCAudioQuality 两个枚举类,推荐使用方式如下:

推荐使用场景AudioScenario 场景枚举AudioQuality 音质枚举码率
通话、会议场景(默认)DEFAULTSPEECH人声音质,编码码率最大值为 32 Kbps
语聊房、音乐播放场景MUSIC_CHATROOMMUSIC标清音乐音质,编码码率最大值为 64 Kbps
音乐教学场景MUSIC_CLASSROOMMUSIC_HIGH高清音乐音质,编码码率最大值为 128 Kbps

设置音频通话质量和模式

SDK 在 RCRTCMicOutputStream 类中提供了 setAudioQuality:Scenario: 接口,用于设置音频场景 RCRTCAudioScenario 与音频质量 RCRTCAudioQuality。您可以在加入房间前或加入房间后,通过 [RCRTCEngine sharedInstance].defaultAudioStream 实例调用 setAudioQuality:Scenario: 接口进行设置。

接口原型

Objective C
- (int)setAudioQuality:(RCRTCAudioQuality)quality Scenario:(RCRTCAudioScenario)scenario;

参数说明

参数类型是否必填说明
qualityRCRTCAudioQuality音频质量
scenarioRCRTCAudioScenario音频场景

返回值

设置成功返回 0,失败返回 -1

代码示例

音频通话质量和音频通话模式可以任意组合,以满足特殊场景需求。以下为几种常见场景的推荐值:

Objective C
#import <RongRTCLib/RongRTCLib.h>

// 普通通话模式(普通音质模式),满足正常音视频场景,人声音质,编码码率最大值为 32 Kbps
[[RCRTCEngine sharedInstance].defaultAudioStream setAudioQuality:RCRTCAudioQualitySpeech
Scenario:RCRTCAudioScenarioDefault];

// 音乐教室模式,提升声音质量,适用对乐器演奏音质要求较高的场景,高清音乐音质,编码码率最大值为 128 Kbps
[[RCRTCEngine sharedInstance].defaultAudioStream setAudioQuality:RCRTCAudioQualityMusicHigh
Scenario:RCRTCAudioScenarioMusicClassRoom];

// 音乐聊天室模式,提升声音质量,适用对音乐演唱要求较高的场景,高清音乐音质,编码码率最大值为 128 Kbps
[[RCRTCEngine sharedInstance].defaultAudioStream setAudioQuality:RCRTCAudioQualityMusicHigh
Scenario:RCRTCAudioScenarioMusicChatRoom];

获取音频通话质量和模式

您可以通过 [RCRTCEngine sharedInstance].defaultAudioStream 实例的属性 audioQualityaudioScenario 获取音频场景 RCRTCAudioScenario 与音频质量 RCRTCAudioQuality

接口原型

Objective C
@property (nonatomic, assign, readonly) RCRTCAudioQuality audioQuality;
@property (nonatomic, assign, readonly) RCRTCAudioScenario audioScenario;

属性说明

属性类型说明
audioQualityRCRTCAudioQuality音频通话质量,默认:人声音质,RCRTCAudioQualitySpeech
audioScenarioRCRTCAudioScenario音频通话模式,默认:普通通话模式,RCRTCAudioScenarioDefault

代码示例

Objective C
#import <RongRTCLib/RongRTCLib.h>

RCRTCAudioQuality quality = [RCRTCEngine sharedInstance].defaultAudioStream.audioQuality;
RCRTCAudioScenario scenario = [RCRTCEngine sharedInstance].defaultAudioStream.audioScenario;