事件回调(HWRtcConnection)
本章节介绍了iOS/macOS SDK的回调接口HWRtcConnectionDelegate的详情。
接口 |
描述 |
---|---|
成功加入跨房房间回调 |
|
加入跨房房间失败回调 |
|
重新加入跨房房间成功回调 |
|
离开跨房房间回调 |
|
用户加入跨房房间回调 |
|
用户离开跨房房间回调 |
|
引擎收到第一帧远端视频流并解码成功回调 |
|
用户角色切换成功回调 |
|
连接状态改变回调 |
|
错误回调 |
|
签名过期回调 |
|
远端用户音频流状态改变回调 |
|
远端用户视频流状态改变回调 |
|
音频音量回调 |
|
入会中网络质量回调,2s触发一次回调 |
|
视频流详情,2s触发一次回调 |
|
音频流详情,2s触发一次回调 |
|
辅流流详情,2s触发一次回调 |
|
辅流状态回调 |
|
用户视频流渲染成功通知回调 |
|
远端视频统计回调 |
|
远端音频统计回调 |
|
远端视频大小流改变回调 |
|
远端辅流首帧解码通知 |
|
返回当前音量最大的用户ID |
|
远端麦克风设备状态变更通知 |
|
加入房间成功之后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。
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: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。
- state:远端音频流状态,具体请参见HWRtcRemoteAudioState。
- reason:远端音频流状态改变原因,具体请参见HWRtcRemoteAudioStateReason。
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。
- remoteVideoStatsInfo:远端视频收流详情,具体请参见HWRtcVideoStatsInfo。
connection:onAudioStatsNotify
- (void)connection:(HWRtcConnection *)connection onAudioStatsNotify:(NSArray <HWRtcAudioStatsInfo *> * _Nullable)audioStatsArray remoteAudioInfo:(NSArray <HWRtcAudioStatsInfo *> * _Nullable)remoteAudioStatsInfos;
【功能说明】
音频流详情,2s触发一次回调。
【回调参数】
- connection:跨房引擎。
- audioStatsArray:本地音频发流详情,具体请参见HWRtcAudioStatsInfo。
- remoteAudioStatsInfos:远端音频收流详情,具体请参见HWRtcAudioStatsInfo。
connection:onAuxiliaryStreamStatsNotify
- (void)connection:(HWRtcConnection *)connection onAuxiliaryStreamStatsNotify:(NSArray <HWRtcVideoStatsInfo *> * _Nullable)subStreamStatsArray remoteVideoInfo:(NSArray <HWRtcVideoStatsInfo *> * _Nullable)remoteVideoStatsInfos;
【功能说明】
辅流详情,2s触发一次回调。
【回调参数】
- connection:跨房引擎。
- subStreamStatsArray:本地辅流发流详情,具体请参见HWRtcVideoStatsInfo。
- remoteVideoStatsInfos:远端辅流收流详情,具体请参见HWRtcVideoStatsInfo。
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。