音频模式
为了满足不同场景对音频设置的需求,同时降低使用复杂度,融云 RTCLib SDK 从 5.1.0 开始,对音频码率(5.1.0 音频通话质量)和音频模式(5.1.0 音频通话模式)进行了接口合并封装,并重新设计,对外提供音频质量 + 音频模式的接口,推荐使用 5.1.0 最新接口。
场景和音质选择
SDK 提供了音频场景 RCRTCAudioScenario 与音频质量 RCRTCAudioQuality 两个枚举类,推荐使用方式如下:
推荐使用场景 | AudioScenario 场景枚举 | AudioQuality 音质枚举 | 码率 |
---|---|---|---|
通话、会议场景(默认) | DEFAULT | SPEECH | 人声音质,编码码率最大值为 32 Kbps |
语聊房、音乐播放场景 | MUSIC_CHATROOM | MUSIC | 标清音乐音质,编码码率最大值为 64 Kbps |
音乐教学场景 | MUSIC_CLASSROOM | MUSIC_HIGH | 高清音乐音质,编码码率最大值为 128 Kbps |
设置音频通话质量和模式
SDK 在 RCRTCMicOutputStream
类中提供了 setAudioQuality:Scenario:
接口,用于设置音频场景 RCRTCAudioScenario 与音频质量 RCRTCAudioQuality。您可以在加入房间前或加入房间后,通过 [RCRTCEngine sharedInstance].defaultAudioStream
实例调用 setAudioQuality:Scenario:
接口进行设置。
接口原型
Objective C
- (int)setAudioQuality:(RCRTCAudioQuality)quality Scenario:(RCRTCAudioScenario)scenario;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
quality | RCRTCAudioQuality | 是 | 音频质量 |
scenario | RCRTCAudioScenario | 是 | 音频场景 |
返回值
设置成功返回 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
实例的属性 audioQuality
和 audioScenario
获取音频场景 RCRTCAudioScenario 与音频质量 RCRTCAudioQuality:
接口原型
Objective C
@property (nonatomic, assign, readonly) RCRTCAudioQuality audioQuality;
@property (nonatomic, assign, readonly) RCRTCAudioScenario audioScenario;
属性说明
属性 | 类型 | 说明 |
---|---|---|
audioQuality | RCRTCAudioQuality | 音频通话质量,默认:人声音质,RCRTCAudioQualitySpeech |
audioScenario | RCRTCAudioScenario | 音频通话模式,默认:普通通话模式,RCRTCAudioScenarioDefault |
代码示例
Objective C
#import <RongRTCLib/RongRTCLib.h>
RCRTCAudioQuality quality = [RCRTCEngine sharedInstance].defaultAudioStream.audioQuality;
RCRTCAudioScenario scenario = [RCRTCEngine sharedInstance].defaultAudioStream.audioScenario;