typedef NS_ENUM(NSUInteger, GameRTCAudioPerfProfile)
音频处理策略等级
| 类型 | 值 | 说明 |
|---|---|---|
| AUDIO_PERF_PROFILE_AUTO | 0 | 自动策略。默认值。根据应用所在机型等级,自动适配音频处理策略。 |
| AUDIO_PERF_PROFILE_LOW | 1 | 低配策略。关闭 AEC、ANS、AGC 算法,音频采样率设置为 16000。 |
| AUDIO_PERF_PROFILE_MID | 2 | 中配策略。开启 AEC、ANS、AGC 算法,音频采样率设置为 16000。 |
| AUDIO_PERF_PROFILE_HIGH | 3 | 高配策略。开启 AEC、ANS、AGC 算法,音频采样率设置为 48000。 |
@interface GameRTCEngineConfig : NSObject
引擎配置信息
| 类型 | 名称 |
|---|---|
| NSString* | appId |
| NSString* | deviceId |
| GameRTCAudioPerfProfile | audioPerfProfile |
@property (nonatomic, copy) NSString * _Nonnull appId;
应用 ID。只有使用相同 appId 创建的 Engine 实例之间才能进行实时音视频通话
@property (nonatomic, copy) NSString * _Nonnull deviceId;
设备 ID,用来唯一区分使用实时语音的设备
@property (nonatomic, assign) GameRTCAudioPerfProfile audioPerfProfile;
音频处理策略等级,参看 GameRTCAudioPerfProfile。
typedef NS_ENUM(NSInteger, GameRTCRoomType)
房间类型
| 类型 | 值 | 说明 |
|---|---|---|
| GameRTCRoomTypeTeam | 0 | 小队房间。默认值。 进入同一小队房间的成员是队友关系。 进入小队房间后,打开麦克风可以向房间内所有队友讲话;打开扬声器就可以收听房间内所有队友讲话。 |
| GameRTCRoomTypeWorld | 1 | 世界房间。 你需要判断进入同一房间的成员是否为队友关系,进而决定收听逻辑。 |
@interface GameRTCRoomConfig : NSObject
房间配置信息
| 类型 | 名称 |
|---|---|
| BOOL | enableRangeAudio |
| int | audioVolumeIndicationInterval |
| GameRTCRoomType | roomType |
@property (nonatomic, assign) BOOL enableRangeAudio;
设置是否开启范围语音
@property (nonatomic, assign) int audioVolumeIndicationInterval;
收到音量提示回调的时间间隔:
0:启用音量提示功能,并设置收到音量提示回调的时间间隔。单位为毫秒。
@property (nonatomic, assign) GameRTCRoomType roomType;
房间类型,参看 GameRTCRoomType
@interface GameRTCReceiveRange : NSObject
使用范围语音功能时,语音的接收范围
| 类型 | 名称 |
|---|---|
| int | min |
| int | max |
@property (nonatomic, assign) int min;
收听声音无衰减的最小范围值。
当收听者和声源距离小于 min 的时候,收听到的声音完全无衰减。
@property (nonatomic, assign) int max;
能够收听到声音的最大范围。
当收听者和声源距离大于 max 的时候,无法收听到声音。
当收听者和声源距离处于 [min, max) 之间时,收听到的音量根据距离有衰减。
@interface GameRTCPositionInfo : NSObject
玩家位置信息
| 类型 | 名称 |
|---|---|
| int | x |
| int | y |
| int | z |
@property (nonatomic, assign) int x;
x 坐标
@property (nonatomic, assign) int y;
y 坐标
@property (nonatomic, assign) int z;
z 坐标
typedef NS_ENUM(NSUInteger, GameRTCUserLeaveType)
用户离开房间的原因
| 类型 | 值 | 说明 |
|---|---|---|
| GameRTCUserLeaveTypeQuit | 0 | 用户主动离开,即调用 rtcEngine:onLeaveRoom: 方法退出房间 |
| GameRTCUserLeaveTypeDropped | 1 | 用户掉线。用户因为网络等原因掉线 |
typedef NS_ENUM(NSInteger, GameRTCConnectionState)
用户与 RTC 服务器的连接状态
| 类型 | 值 | 说明 |
|---|---|---|
| GameRTCConnectionStateDisconnected | 0 | 连接中断。 |
| GameRTCConnectionStateConnecting | 1 | 首次连接,正在连接中。 |
| GameRTCConnectionStateConnected | 2 | 首次连接成功。 |
| GameRTCConnectionStateReconnecting | 3 | 连接断开后,重新连接中。 |
| GameRTCConnectionStateReconnected | 4 | 连接断开后,重连成功。 |
typedef NS_ENUM(NSUInteger, GameRTCNetworkQuality)
用户的媒体流网络上下行质量
| 类型 | 值 | 说明 |
|---|---|---|
| GameRTCNetworkQualityUnknown | 0 | 网络质量未知。 |
| GameRTCNetworkQualityExcellent | 1 | 网络质量极好。 |
| GameRTCNetworkQualityGood | 2 | 网络质量好。 |
| GameRTCNetworkQualityPoor | 3 | 网络质量较差,但不影响沟通。 |
| GameRTCNetworkQualityBad | 4 | 网络质量差,沟通不顺畅。 |
| GameRTCNetworkQualityVBad | 5 | 网络质量非常差。 |
typedef NS_ENUM(NSInteger, GameRTCRoomWarningCode)
引擎警告码
| 类型 | 值 | 说明 |
|---|---|---|
| GRWARN_JOIN_ROOM_FAILED | -2001 | 加入房间失败。 用户加入房间或断网重连时,加入房间失败。此时,会自动重试加入房间。 |
| GRWARN_PUBLISH_STREAM_FAILED | -2002 | 发布音频流失败。 用户在所在房间中发布音视频流时,由于服务器错误导致发布失败。此时,会自动重试发布。 |
| GRWARN_SUBSCRIBE_STREAM_FAILED_404 | -2003 | 订阅音频流失败。 当前房间中找不到订阅的音视频流导致订阅失败。 建议退出房间,重新进房。 |
| GRWARN_SUBSCRIBE_STREAM_FAILED_5xx | -2004 | 订阅音频流失败。 用户订阅所在房间中的音视频流时,由于服务器错误导致订阅失败。 SDK 会自动重试订阅。 |
typedef NS_ENUM(NSInteger, GameRTCEngineWarningCode)
引擎警告码
| 类型 | 值 | 说明 |
|---|---|---|
| GRWARN_PERMISSION_MICROPHONE | -5002 | 麦克风权限异常,当前应用没有获取麦克风权限 |
| GRWARN_ADM_RECORDING_START_FAIL | -5003 | 启动录音设备失败,当前录音设备可能被其他应用占用。 |
| GRWARN_ADM_PLAYOUT_START_FAIL | -5004 | 播放设备启动失败警告 可能由于系统资源不足,或参数错误 |
| GameRTEngineWarningADMNoRecordingDevice | -5005 | 无可用录音设备 启动录音设备失败,请插入可用的录音设备 |
| GameRTEngineWarningADMNoPlayoutDevice | -5006 | 无可用播放设备 启动播放设备失败,请插入可用的播放设备 |
typedef NS_ENUM(NSInteger, GameRTCRoomErrorCode)
房间错误码
| 类型 | 值 | 说明 |
|---|---|---|
| GRERR_INVALID_TOKEN | -1000 | 加入房间时,使用的 Token 无效。 需要重新获取 Token,并调用 updateToken:room: 方法更新 Token。 |
| GRERR_JOIN_ROOM_ERROR | -1001 | 加入房间错误。 加入房间时,发生未知错误导致加入房间失败。需要重新加入房间。 |
| GRERR_NO_PUBLISH_PERMISSION | -1002 | 因没有发布音频流权限,导致在房间中发布音视频流失败。 需要检查 appId 是否正确。 |
| GRERR_NO_SUBSCRIBE_PERMISSION | -1003 | 因没有订阅音频流权限,导致在房间中订阅音视频流失败。 需要检查 appId 是否正确。 |
| GRERR_DUPLICATE_LOGIN | -1004 | 有新用户加入房间,且用户 ID 和本端用户一致,导致本端用户被踢出房间。 |
@interface GameRTCAudioVolumeInfo : NSObject
音频流来源的用户 ID, 及对应的音量。
| 类型 | 名称 |
|---|---|
| NSString* | uid |
| NSUInteger | volume |
@property (copy, nonatomic) NSString * _Nonnull uid;
音频流来源的用户 ID
@property (assign, nonatomic) NSUInteger volume;
音量,取值范围是:[0,255]