更新时间:2024-09-13 GMT+08:00
分享

事件回调(HWRtcConnection)

本章节介绍了iOS/macOS SDK的回调接口HWRtcConnectionDelegate的详情。

表1 事件回调说明

接口

描述

connection:onJoinSuccess

成功加入跨房房间回调

connection:onJoinRoomFailure

加入跨房房间失败回调

connection:onRejoinRoomSuccess

重新加入跨房房间成功回调

connection:onLeaveRoom

离开跨房房间回调

connection:onRemoteUserOnline

用户加入跨房房间回调

connection:onRemoteUserOffline

用户离开跨房房间回调

connection:onFirstRemoteVideoDecoded

引擎收到第一帧远端视频流并解码成功回调

connection:onUserRoleChangedNotify

用户角色切换成功回调

connection:onConnectionChangedNotify

连接状态改变回调

connection:onError

错误回调

connectionOnSignatureExpired

签名过期回调

connection:onRemoteAudioStateChange

远端用户音频流状态改变回调

connection:onRemoteVideoStateChange

远端用户视频流状态改变回调

connection:onUserVolumeStatsNotify

音频音量回调

connection:onNetworkQualityNotify

入会中网络质量回调,2s触发一次回调

connection:onVideoStatsNotify

视频流详情,2s触发一次回调

connection:onAudioStatsNotify

音频流详情,2s触发一次回调

connection:onAuxiliaryStreamStatsNotify

辅流流详情,2s触发一次回调

connection:onUserAuxiliaryStreamAvailable

辅流状态回调

connection:onRenderSuccessNotify

用户视频流渲染成功通知回调

connection:onRemoteVideoStatsNotify

远端视频统计回调

connection:onRemoteAudioStatsNotify

远端音频统计回调

connection:onRemoteVideoResolutionChangedNotify

远端视频大小流改变回调

connection:onFirstRemoteAuxiliaryStreamDecoded

远端辅流首帧解码通知

connection:onTopActiveSpeaker

返回当前音量最大的用户ID

connection:onRemoteMicrophoneStateChanged

远端麦克风设备状态变更通知

connection:onMediaAddressNotify

加入房间成功之后sfuip地址回调

connection:onJoinSuccess

- (void)connection:(HWRtcConnection *)connection
 onjoinSuccess:(NSString * _Nonnull)userId;

功能说明

成功加入跨房房间,触发此回调。

回调参数
  • connection:跨房引擎。
  • userId:新加入房间的用户ID。

connection:onJoinRoomFailure

- (void)connection:(HWRtcConnection *)connection
  onJoinRoomFailure:(int)errorCode
           errorMsg:(NSString * _Nonnull)errorMsg;

功能说明

加入房间失败,触发此回调。

回调参数

  • connection:跨房引擎。
  • errorCode:错误码,具体请参见HRTCErrorCode
  • errorMsg:错误信息描述。

connection:onRejoinRoomSuccess

- (void)connection:(HWRtcConnection *)connection
 onRejoinRoomSuccess:(NSString * _Nonnull)userid;

功能说明

重新加入房间回调。例如,网络异常后重连成功加入房间触发。

回调参数
  • connection:跨房引擎。
  • userid:用户ID。

connection:onLeaveRoom

-(void)connection:(HWRtcConnection *)connection
       onLeaveRoom:(HWRtcLeaveReason)leaveReason
         statsInfo:(HWRtcStatsInfo * _Nonnull)statsInfo;

功能说明

离开房间,触发此回调。

回调参数

  • connection:跨房引擎。
  • leaveReason:离开的房间原因,具体请参见HWRtcLeaveReason
  • statsInfo:卡顿统计信息,具体请参见HWRtcStatsInfo
APP调用leaveRoom接口时,会返回HWRtcLeaveReasonUserLeaveRoom,APP可以通过以下任一方式回退到登录界面。
  • APP在调用leaveRoom接口时退到登录界面,或者在收到onLeaveRoom回调,且回调消息不等于HWRtcLeaveReasonUserLeaveRoom时(防止重复操作),退到登录界面。
  • APP只在收到onLeaveRoom消息时退到登录界面。

connection:onRemoteUserOnline

- (void)connection:(HWRtcConnection *)connection
       onRemoteUserOnline:(NSString * _Nonnull)userId
           userName:(NSString * _Nonnull)userName;

功能说明

远端用户加入跨房房间成功,触发此回调。该回调提示有远端用户加入了跨房房间,并返回新加入用户信息。

回调参数

  • connection:跨房引擎。
  • userId:远端用户ID。
  • userName:远端用户昵称。

connection:onRemoteUserOffline

- (void)connection:(HWRtcConnection *)connection
      onRemoteUserOffline:(NSString * _Nonnull)userId
             reason:(NSInteger)reason;

功能说明

远端用户离开跨房房间,触发此回调。

本端用户离开当前房间,会回调当前房间所有用户offline。

回调参数
  • connection:跨房引擎。
  • userId:离开房间的远端用户ID。
  • reason:远端用户离线原因,预留参数。

connection:onFirstRemoteVideoDecoded

- (void)connection:(HWRtcConnection *)connection
 onFirstRemoteVideoDecoded:(NSString * _Nonnull)userId
             width:(int)width height:(int)height;

功能说明

跨房引擎收到第一帧远端视频流并解码成功回调。

回调参数
  • connection:跨房引擎。
  • userId:用户ID。
  • width:视频流宽度。
  • height:视频流高度。

connection:onFirstRemoteVideoDecoded

- (void)connection:(HWRtcConnection *)connection
 onFirstRemoteVideoDecoded:(NSString * _Nonnull)userId
             width:(int)width height:(int)height elapsed:(NSUInteger)elapsed;

功能说明

跨房引擎收到第一帧远端视频流并解码成功回调。

回调参数
  • connection:跨房引擎。
  • userId:用户ID。
  • width:视频流宽度。
  • height:视频流高度。
  • elapsed: 首帧解码后消耗的时间,单位ms。

connection:onUserRoleChangedNotify

- (void)connection:(HWRtcConnection *)connection
 onUserRoleChangedNotify:(HWRtcRole)oldRole
           newRole:(HWRtcRole)newRole;

功能说明

用户跨房的房间内角色切换成功,触发此回调。

回调参数

  • connection:跨房引擎。
  • oldRole:切换前的角色,具体请参见HWRtcRole
  • newRole:切换成功后的角色,具体请参见HWRtcRole

connection:onConnectionChangedNotify

- (void)connection:(HWRtcConnection *)connection
 onConnectionChangedNotify:(HWRtcConnStateType)state
            reason:(HWRtcConnChangeReason)reason
       description:(NSString * _Nonnull)description;

功能说明

网络连接状态发生变化,触发此回调。

回调参数

  • connection:跨房引擎。
  • state:链接服务器状态,具体请参见HWRtcConnStateType
  • reason:连接状态改变原因,具体请参见HWRtcConnChangeReason
  • description:连接状态改变描述。

connection:onError

- (void)connection:(HWRtcConnection *)connection
           onError:(int)errorCode
          errorMsg:(NSString * _Nonnull)errorMsg;

功能说明

发生错误,触发此回调。返回客户端错误码或者服务端错误码。

回调参数

  • connection:跨房引擎。
  • errorCode:错误码,具体请参见HRTCErrorCode
  • errorMsg:错误信息描述。

connection:onAuthorizationExpired

- (void)connectionOnSignatureExpired:(HWRtcConnection *)connection;

功能说明

鉴权签名过期回调,需要app调用renewAuthorization更新签名。

回调参数

connection:跨房引擎。

connection:onRemoteAudioStateChange

- (void)connection:(HWRtcConnection *)connection
onRemoteAudioStateChange:(NSString * _Nonnull)roomid
            userid:(NSString * _Nonnull)userid
             state:(HWRtcRemoteAudioState)state
            reason:(HWRtcRemoteAudioStateReason)reason;

功能说明

远端用户音频流状态发生改变,会触发此回调。

回调参数

  • connection:跨房引擎。
  • roomid:房间ID。
  • userid:远端用户ID。

connection:onRemoteVideoStateChange

- (void)connection:(HWRtcConnection *)connection
onRemoteVideoStateChange:(NSString * _Nonnull)roomid
            userid:(NSString * _Nonnull)userid
             state:(HWRtcRemoteVideoState)state
            reason:(HWRtcRemoteVideoStateReason)reason

功能说明

远端用户视频流状态发生改变,会触发此回调。

回调参数

  • connection:跨房引擎。
  • roomid:房间ID。
  • userid:远端用户ID。
  • state:远端视频流状态,具体请参见HWRtcRemoteVideoState
  • reason:远端视频流状态改变原因,具体请参见HWRtcRemoteVideoStateReason

connection:onUserVolumeStatsNotify

- (void)connection:(HWRtcConnection *)connection
 onUserVolumeStatsNotify:(NSArray <HWRtcMediaUsersVolumeInfo *> *_Nullable)usersVolumeArray
        userNumber:(NSUInteger)userNumber totalVolume:(NSUInteger)totalVolume;

功能说明

用户音量状态回调。通过setVolumeNotifyInterval开启并设置回调周期,定时上报。包括总音量以及各发言人及其对应音量上报显示回调

回调参数

  • connection:跨房引擎。
  • usersVolumeArray:回调发言人音量信息,具体请参见HWRtcMediaUsersVolumeInfo
  • userNumber:上报的发言人人数,最多上报4人,包含本地用户。
  • totalVolume:总音量。

connection:onNetworkQualityNotify

- (void)connection:(HWRtcConnection *)connection
  onNetworkQualityNotify:(NSArray <HWRtcQualityInfo *> * _Nullable)upStreamQualityArray
downStreamQualityInfo:(NSArray <HWRtcQualityInfo *> * _Nullable)downStreamQualityArray;

功能说明

会中基于流级别的网络质量检测回调,音频流、视频流分别回调。

回调参数

  • connection:跨房引擎。
  • upStreamQualityArray:上行网络质量上报。
  • downStreamQualityArray:下行网络质量上报。

connection:onVideoStatsNotify

- (void)connection:(HWRtcConnection *)connection
      onVideoStatsNotify:(NSArray <HWRtcVideoStatsInfo *> * _Nullable)videoStatsArray
   remoteVideoInfo:(NSArray <HWRtcVideoStatsInfo *>* _Nullable)remoteVideoStatsInfos;

功能说明

视频流详情,2s触发一次回调。

回调参数

  • connection:跨房引擎。
  • videoStatsArray:本地视频发流详情,具体请参见HWRtcVideoStatsInfo

connection:onAudioStatsNotify

- (void)connection:(HWRtcConnection *)connection
      onAudioStatsNotify:(NSArray <HWRtcAudioStatsInfo *> * _Nullable)audioStatsArray
   remoteAudioInfo:(NSArray <HWRtcAudioStatsInfo *> * _Nullable)remoteAudioStatsInfos;

功能说明

音频流详情,2s触发一次回调。

回调参数

  • connection:跨房引擎。

connection:onAuxiliaryStreamStatsNotify

- (void)connection:(HWRtcConnection *)connection
  onAuxiliaryStreamStatsNotify:(NSArray <HWRtcVideoStatsInfo *> * _Nullable)subStreamStatsArray
   remoteVideoInfo:(NSArray <HWRtcVideoStatsInfo *> * _Nullable)remoteVideoStatsInfos;

功能说明

辅流详情,2s触发一次回调。

回调参数

  • connection:跨房引擎。

connection:onUserAuxiliaryStreamAvailable

- (void)connection:(HWRtcConnection *)connection
onUserAuxiliaryStreamAvailable:(NSString * _Nonnull)userId
       isAvailable:(BOOL)isAvailable;

功能说明

远端开启,停止辅流后,触发此回调。

回调参数

  • connection:跨房引擎。
  • userId:远端用户ID。
  • isAvailable:YES表示远端开启屏幕共享,NO表示远端停止屏幕共享。

connection:onRenderSuccessNotify

- (void)connection:(HWRtcConnection *)connection
onRenderSuccessNotify:(NSString *_Nonnull)userId
             isAux:(NSUInteger)isAux;

功能说明

用户视频流渲染成功通知回调。首帧渲染成功、分辨率变化或视频流中断后恢复触发。

回调参数

  • connection:跨房引擎。
  • userId:用户ID。
  • isAux:YES表示是辅流,NO表示不是辅流。

connection:onRemoteVideoStatsNotify

- (void)connection:(HWRtcConnection *)connection
onRemoteVideoStatsNotify:(NSArray <HWRtcRemoteVideoStats *> * _Nullable)remoteVideoStatsArray;

功能说明

远端视频流详情,2s触发一次回调。

回调参数

  • connection:跨房引擎。
  • remoteVideoStatsArray:远端视频收流详情参数,具体请参见HWRtcRemoteVideoStats

connection:onRemoteAudioStatsNotify

- (void)connection:(HWRtcConnection *)connection
onRemoteAudioStatsNotify:(NSArray <HWRtcRemoteAudioStats *> * _Nullable)remoteAudioStatsArray;

功能说明

远端音频流详情,2s触发一次回调。

回调参数

  • connection:跨房引擎。
  • remoteAudioStatsArray:远端音频收流详情,具体请参见HWRtcRemoteAudioStats

connection:onRemoteVideoResolutionChangedNotify

- (void)connection:(HWRtcConnection *)connection onRemoteVideoResolutionChangedNotify:(NSString *_Nullable)userId width:(NSInteger)width height:(NSInteger)height;

功能说明

远端视频大小改变回调。

回调参数

  • connection:跨房引擎。
  • userId:用户ID。
  • width:视频流宽度。
  • height:视频流高度。

connection:onFirstRemoteAuxiliaryStreamDecoded

-(void)connection:(HWRtcConnection *)connection
onFirstRemoteAuxiliaryStreamDecoded:(NSString * _Nonnull)userId
                        width:(int)width
                        height:(int)height;

功能说明

引擎收到第一帧远端视频流并解码成功回调。

回调参数
  • connection:跨房引擎。
  • userId:视频流对应的用户ID。
  • width:视频流宽度。
  • height:视频流高度。

connection:onFirstRemoteAuxiliaryStreamDecoded

-(void)connection:(HWRtcConnection *)connection
onFirstRemoteAuxiliaryStreamDecoded:(NSString * _Nonnull)userId
                        width:(int)width
                        height:(int)height 
                        elapsed:(NSUInteger)elapsed;

功能说明

引擎收到第一帧远端视频流并解码成功回调。

回调参数
  • connection:跨房引擎。
  • userId:视频流对应的用户ID。
  • width:视频流宽度。
  • height:视频流高度。
  • elapsed:首帧解码后消耗的时间,单位ms。

connection:onTopActiveSpeaker

- (void)connection:(HWRtcConnection *)connection onTopActiveSpeaker:(NSString *_Nonnull)userId noStream:(BOOL)noStream;

功能说明

返回当前音量最大的用户ID。

回调参数

  • connection:跨房引擎
  • userId:用户ID。
  • noStream:该用户是否有视频流。

connection:onRemoteMicrophoneStateChanged

- (void)connection:(HWRtcConnection *)connection 
   onRemoteMicrophoneStateChanged:(NSString * _Nonnull)userId state:(HWRtcRemoteMicState)state;

功能说明

远端用户麦克风状态变更通知。

回调参数

  • connection:跨房引擎
  • userId:远端用户userId。
  • state:麦克风设备状态,具体请参见HWRtcRemoteMicState

connection:onMediaAddressNotify

- (void)connection:(HWRtcConnection *)connection onMediaAddressNotify:(NSString * _Nonnull)mediaIpv4 mediaIpv6:(NSString * _Nonnull)mediaIpv6;

功能说明

加入房间成功之后,回调SFU的ipv4和ipv6地址。

【回调参数

  • connection:跨房引擎
  • mediaIpv4:sfu ipv4地址。
  • mediaIpv6:sfu ipv6地址。

相关文档