@protocol GameRTCEngineDelegate <NSObject>
- (void)rtcEngine:(GameRTCEngineKit *)engine onJoinRoomSuccess:(NSString *)roomId uid:(NSString *)uid isRejoined:(BOOL)isRejoined elapsed:(int)elapsed;
用户成功加入房间/重连进房后,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | GameRTCEngineKit* | GameRTCEngineKit 实例 |
| roomId | NSString* | 房间 ID |
| uid | NSString* | 用户 ID |
| isRejoined | BOOL | 是否为重连进房: • true: 是重连进房 • false:是初次进房 |
| elapsed | int | 加入房间耗时。用户从调用 joinRoom:uid:token:config: 方法到加入房间成功所经历的时间间隔,单位为 ms。 |
- (void)rtcEngine:(GameRTCEngineKit *)engine onLeaveRoom:(NSString *)roomId;
离开房间成功回调
用户调用 leaveRoom: 方法后,SDK 会停止所有的发布订阅流,并释放所有通话相关的音视频资源。SDK 完成所有的资源释放后,用户收到此回调。
离开房间结束通话后,如果 App 需要使用系统音视频设备,建议在收到此回调后再初始化音视频设备.否则可能由于 SDK 占用了导致 App 初始化音视频设备失败。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | GameRTCEngineKit* | GameRTCEngineKit 实例 |
| roomId | NSString* | 房间 ID |
注意 用户调用 leaveRoom: 方法离开房间后,如果立即调用 destroy 方法销毁 GameRTC 引擎,则将无法收到此回调事件。
- (void)rtcEngine:(GameRTCEngineKit *)engine onUserJoined:(NSString *)roomId uid:(NSString *)uid;
远端用户加入房间回调。
以下情形下,本地用户会收到此回调:
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | GameRTCEngineKit* | GameRTCEngineKit 实例 |
| roomId | NSString* | 房间 ID |
| uid | NSString* | 用户 ID |
- (void)rtcEngine:(GameRTCEngineKit *)engine onUserLeave:(NSString *)roomId uid:(NSString *)uid reason:(GameRTCUserLeaveType)reason;
远端用户离开房间回调。
房间中有用户主动调用 leaveRoom: 方法离开房间或断线超时离开房间时,房间中其他用户都会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | GameRTCEngineKit* | GameRTCEngineKit 实例 |
| roomId | NSString* | 房间 ID |
| uid | NSString* | 离开房间的用户的用户 ID |
| reason | GameRTCUserLeaveType | 用户离开的原因。参看 GameRTCUserLeaveType |
- (void)rtcEngine:(GameRTCEngineKit *)engine onMicrophoneEnabled:(BOOL)enabled room:(NSString *)roomId uid:(NSString *)uid;
远端用户开关麦克风回调
当用户调用 enableMicrophone:room: 更改本地音频采集和发布状态时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | GameRTCEngineKit* | GameRTCEngineKit 实例 |
| enabled | BOOL | • true: 打开麦克风 • false: 关闭麦克风 |
| roomId | NSString* | 房间 ID |
| uid | NSString* | 更改本地音频采集和发布状态的用户的 ID |
- (void)rtcEngine:(GameRTCEngineKit *)engine onAudioSendEnabled:(BOOL)enabled room:(NSString *)roomId uid:(NSString *)uid;
远端用户启停音频数据发送的回调
当用户调用 enableAudioSend:room: 更改本地音频发送状态时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | GameRTCEngineKit* | GameRTCEngineKit 实例 |
| enabled | BOOL | • true: 开启音频发送 • false: 停止音频发送 |
| roomId | NSString* | 房间 ID |
| uid | NSString* | 更改本地音频发送状态的用户的 ID |
- (void)rtcEngine:(GameRTCEngineKit *)engine onSpeakerphoneEnabled:(BOOL)enabled room:(NSString *)roomId uid:(NSString *)uid;
远端用户启停音频数据接收的回调
当用户调用 enableSpeakerphone:room: 更改远端音频接收状态时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | GameRTCEngineKit* | GameRTCEngineKit 实例 |
| enabled | BOOL | • true: 开启接收远端音频 • false: 停止接收远端音频 |
| roomId | NSString* | 房间 ID |
| uid | NSString* | 更改远端音频接收状态的用户的 ID |
- (void)rtcEngine:(GameRTCEngineKit *)engine onAudioVolumeIndication:(NSString *)roomId speakers:(NSArray<GameRTCAudioVolumeInfo *> *)speakers totalVolume:(NSInteger)totalVolume;
提示本地采集的音量信息和在房间内订阅的远端用户的音量信息。
本回调默认不开启。你可以通过 GameRTCRoomConfig 中的参数 audioVolumeIndicationInterval 开启。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | GameRTCEngineKit* | GameRTCEngineKit 实例 |
| roomId | NSString* | 房间 ID |
| speakers | NSArray |
本地用户和订阅的远端用户的 ID 和音量。参见:GameRTCAudioVolumeInfo。 |
| totalVolume | NSInteger | speakers 中包含的所有音频音量之和,取值范围是:[0,255] |
注意
- (void)rtcEngine:(GameRTCEngineKit *)engine onConnectionStateChanged:(GameRTCConnectionState)state;
用户与 RTC 服务器连接状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | GameRTCEngineKit* | GameRTCEngineKit 实例 |
| state | GameRTCConnectionState | 用户当前与 RTC 服务器的连接状态,参看 GameRTCConnectionState |
- (void)rtcEngine:(GameRTCEngineKit *)engine onNetworkQuality:(NSString*)roomId uid:(NSString *)uid txQuality:(GameRTCNetworkQuality)txQuality rxQuality:(GameRTCNetworkQuality)rxQuality;
通话中用户的媒体流网络上下行质量报告回调。加入房间成功后,每隔 2 秒会触发此回调,通知房间内用户与媒体服务器之间数据交互的网络质量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | GameRTCEngineKit* | GameRTCEngineKit 实例 |
| roomId | NSString* | 房间 ID |
| uid | NSString* | 回调的网络质量报告所属用户的用户 ID 。 |
| txQuality | GameRTCNetworkQuality | 用户的媒体流上行网络质量,参看 GameRTCNetworkQuality。 |
| rxQuality | GameRTCNetworkQuality | 用户的媒体流下行网络质量,参看 GameRTCNetworkQuality。 |
注意
- (void)rtcEngine:(GameRTCEngineKit *)engine onEngineWarning:(GameRTCEngineWarningCode)Code;
SDK 运行时出现了引擎相关的警告时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | GameRTCEngineKit* | GameRTCEngineKit 实例 |
| Code | GameRTCEngineWarningCode | 警告码,详情定义见: GameRTCEngineWarningCode |
注意 通常情况下,SDK 上报的警告信息可以忽略,SDK 能够自动恢复。
- (void)rtcEngine:(GameRTCEngineKit *)engine onRoomWarning:(GameRTCRoomWarningCode)Code room:(NSString *)roomId;
SDK 运行时,出现房间相关警告,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | GameRTCEngineKit* | GameRTCEngineKit 实例 |
| Code | GameRTCRoomWarningCode | 警告代码,详情定义见: GameRTCRoomWarningCode |
| roomId | NSString* | 房间 ID |
注意 通常情况下,SDK 上报的警告信息可以忽略,SDK 能够自动恢复。
- (void)rtcEngine:(GameRTCEngineKit *)engine onRoomError:(GameRTCRoomErrorCode)Code room:(NSString *)roomId;
房间相关错误回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | GameRTCEngineKit* | GameRTCEngineKit 实例 |
| Code | GameRTCRoomErrorCode | 错误码,参见 GameRTCRoomErrorCode |
| roomId | NSString* | 房间 ID |