AgoraRtcServiceEvents Protocol Reference

Conforms to NSObject
Declared in AgoraRtcService.h

– rtcServiceDidJoinChannel:elapsed:

成功加入频道回调。

- (void)rtcServiceDidJoinChannel:(NSString *_Nonnull)channelName elapsed:(int)elapsed

Parameters

channelName

频道名。

elapsed

从频道成功创建开始到发生此回调过去的时间(毫秒)。

Declared In

AgoraRtcService.h

– rtcServiceDidLostConnectionOfChannel:

连接丢失回调。

- (void)rtcServiceDidLostConnectionOfChannel:(NSString *_Nonnull)channelName

Parameters

channelName

频道名。

Declared In

AgoraRtcService.h

– rtcServiceDidRejoinChannel:elapsed:

重新成功加入频道回调。

- (void)rtcServiceDidRejoinChannel:(NSString *_Nonnull)channelName elapsed:(int)elapsed

Parameters

channelName

频道名。

elapsed

从开始重连到重连成功的时间(毫秒)。

Discussion

有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。

Declared In

AgoraRtcService.h

– rtcServiceDidOccurWarningInChannel:warningCode:message:

发生警告回调。

- (void)rtcServiceDidOccurWarningInChannel:(NSString *_Nonnull)channelName warningCode:(int)warningCode message:(NSString *_Nonnull)message

Parameters

channelName

频道名。

warningCode

警告码。

message

警告描述。

Discussion

该回调方法表示 SDK 运行时出现了(网络或媒体相关的)警告。通常情况下,SDK 上报的警告信息 App 可以忽略,SDK 会自动恢复。

Declared In

AgoraRtcService.h

– rtcServiceDidOccurErrorInChannel:errorCode:message:

发生错误回调。

- (void)rtcServiceDidOccurErrorInChannel:(NSString *_Nonnull)channelName errorCode:(int)errorCode message:(NSString *_Nonnull)message

Parameters

channelName

频道名。

errorCode

错误码。

message

错误描述。

Discussion

该回调方法表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。

Declared In

AgoraRtcService.h

– rtcServiceRemoteUserDidJoinedInChannel:uid:elapsed:

远端用户加入频道回调。

- (void)rtcServiceRemoteUserDidJoinedInChannel:(NSString *_Nonnull)channelName uid:(uint32_t)uid elapsed:(int)elapsed

Parameters

channelName

频道名。

uid

用户 ID。

elapsed

从频道成功创建开始到发生此回调过去的时间(毫秒)。

Declared In

AgoraRtcService.h

– rtcServiceRemoteUserDidOfflineInChannel:uid:reason:

远端用户离开频道回调。

- (void)rtcServiceRemoteUserDidOfflineInChannel:(NSString *_Nonnull)channelName uid:(uint32_t)uid reason:(int)reason

Parameters

channelName

频道名。

uid

离开频道的用户 ID。

reason

用户离开频道原因:

  • USER_OFFLINE_QUIT(0): 远端用户主动下线。
  • USER_OFFLINE_DROPPED(1): 远端用户超时掉线。

Declared In

AgoraRtcService.h

– rtcServiceRemoteUserDidMuteAudioInChannel:uid:muted:

频道内远端用户暂停/恢复发送音频流回调。

- (void)rtcServiceRemoteUserDidMuteAudioInChannel:(NSString *_Nonnull)channelName uid:(uint32_t)uid muted:(BOOL)muted

Parameters

channelName

频道名。

uid

远端用户的用户 ID。

muted

远端用户是否发送音频流:

  • YES: 该用户暂停发送音频流。
  • NO: 该用户恢复发送音频流。

Declared In

AgoraRtcService.h

– rtcServiceRemoteUserDidMuteVideoInChannel:uid:muted:

频道内远端用户暂停/恢复发送视频流回调。

- (void)rtcServiceRemoteUserDidMuteVideoInChannel:(NSString *_Nonnull)channelName uid:(uint32_t)uid muted:(BOOL)muted

Parameters

channelName

频道名。

uid

远端用户的用户 ID。

muted

远端用户是否发送视频流:

  • YES: 该用户暂停发送视频流。
  • NO: 该用户恢复发送视频流。

Declared In

AgoraRtcService.h

– rtcServiceRemoteUserDidRequestKeyFrameInChannel:uid:streamId:

频道内远端用户请求关键帧回调。

- (void)rtcServiceRemoteUserDidRequestKeyFrameInChannel:(NSString *_Nonnull)channelName uid:(uint32_t)uid streamId:(uint8_t)streamId

Parameters

channelName

频道名。

uid

远端用户的用户 ID。

streamId

需要生成关键帧的视频流 ID。

Declared In

AgoraRtcService.h

– rtcServiceDidReceiveAudioDataInChannel:uid:timestamp:codec:audioData:

收到频道内远端用户的音频帧回调。

- (void)rtcServiceDidReceiveAudioDataInChannel:(NSString *_Nonnull)channelName uid:(uint32_t)uid timestamp:(uint16_t)timestamp codec:(uint8_t)codec audioData:(NSData *_Nonnull)audioData

Parameters

channelName

频道名。

uid

发送音频帧的远端用户的用户 ID。

timestamp

Unix 时间戳(ms),标识发送音频帧的远端用户调用 sendAudioDataToChannel 方法的时间。

codec

采用的音频编解码。

audioData

音频包数据。

Declared In

AgoraRtcService.h

– rtcServiceDidReceiveVideoDataInChannel:uid:timestamp:codec:streamId:isKeyFrame:videoData:

收到频道内远端用户的视频帧回调。

- (void)rtcServiceDidReceiveVideoDataInChannel:(NSString *_Nonnull)channelName uid:(uint32_t)uid timestamp:(uint16_t)timestamp codec:(uint8_t)codec streamId:(uint8_t)streamId isKeyFrame:(BOOL)isKeyFrame videoData:(NSData *_Nonnull)videoData

Parameters

channelName

频道名。

uid

发送视频帧的远端用户的用户 ID。

timestamp

Unix 时间戳(ms)。标识发送视频帧的远端用户调用 sendVideoDataToChannel 方法的时间。

codec

采用的视频编解码。

streamId

视频流 ID。

isKeyFrame

是否为视频关键帧:

  • YES: 关键帧
  • NO: 非关键帧
videoData

视频包数据。

Declared In

AgoraRtcService.h

– rtcServiceDidRdtAvailabilityChangedInChannel:is_available:

可靠数据通道的可用状态发生变化时,SDK 触发该回调。

- (void)rtcServiceDidRdtAvailabilityChangedInChannel:(NSString *_Nonnull)channelName is_available:(int32_t)is_available

Parameters

channelName

频道名。

is_available

可靠数据通道的可用状态:

  • 0: 不可用。
  • 1: 可用。

Discussion

可靠数据通道为端对端通道。当频道内只有两个用户时,可靠数据通道才为可用。

Declared In

AgoraRtcService.h

– rtcServiceDidReceiveCmdInChannel:uid:cmd:param:

收到频道内远端用户的控制指令时,SDK 触发该回调。

- (void)rtcServiceDidReceiveCmdInChannel:(NSString *_Nonnull)channelName uid:(uint32_t)uid cmd:(int32_t)cmd param:(NSData *_Nullable)param

Parameters

channelName

频道名。

uid

发送控制指令的用户的 UID。

cmd

控制指令。

param

控制指令的参数。如无,可设为 nil。

Declared In

AgoraRtcService.h

– rtcServiceDidReceiveDataFromRdtInChannel:uid:Data:

收到频道中通过可靠数据通道传输过来的数据时,SDK 触发该回调。

- (void)rtcServiceDidReceiveDataFromRdtInChannel:(NSString *_Nonnull)channelName uid:(uint32_t)uid Data:(NSData *_Nonnull)Data

Parameters

channelName

频道名。

uid

发送数据的用户的 UID。

Data

数据段。

Declared In

AgoraRtcService.h

– rtcServiceRecommendDecreaseBitrateInChannel:count:

建议应用程序降低码率回调。

- (void)rtcServiceRecommendDecreaseBitrateInChannel:(NSString *_Nonnull)channelName count:(uint32_t)count

Parameters

channelName

频道名。

count

建议降低的码率值(bps)。

Discussion

该回调在网络可用带宽下降时触发。收到该回调后用户应该降低编码器码率。

Declared In

AgoraRtcService.h

– rtcServiceRecommendIncreaseBitrateInChannel:count:

建议应用程序提高码率回调。

- (void)rtcServiceRecommendIncreaseBitrateInChannel:(NSString *_Nonnull)channelName count:(uint32_t)count

Parameters

channelName

频道名。

count

建议提高的码率值(bps)。

Discussion

该回调在网络可用带宽升高时触发。收到该回调后用户应该提高编码器码率。

Declared In

AgoraRtcService.h

– rtcServiceDidRegisterLocalUser:uid:

本地用户成功注册 String 型用户名回调。

- (void)rtcServiceDidRegisterLocalUser:(NSString *_Nonnull)userName uid:(uint32_t)uid

Parameters

userName

本地用户的用户名。

uid

SDK 分配给本地用户的 UID。

Discussion

本地用户调用 initWithAppId 方法使用 String 型用户名初始化成功后,会触发该回调。

Declared In

AgoraRtcService.h

– rtcServiceDidRegisterRemoteUser:uid:

远端用户成功注册 String 型用户名回调。

- (void)rtcServiceDidRegisterRemoteUser:(NSString *_Nonnull)userName uid:(uint32_t)uid

Parameters

userName

远端用户的用户名。

uid

远端用户 ID。

Declared In

AgoraRtcService.h