NERtc iOS SDK V5.6.25
载入中...
搜索中...
未找到
构造函数 | 所有成员列表
<NERtcChannelDelegate>协议 参考

NERtcChannelDelegate 类监听和报告指定房间的事件和数据。 更多...

#include <NERtcChannelDelegate.h>

类 <NERtcChannelDelegate> 继承关系图:

构造函数

(void) - onNERtcChannelConnectionStateChangeWithState:reason:
 房间连接状态已改变回调。
该回调在房间连接状态发生改变时触发,并告知用户当前的房间连接状态和引起状态改变的原因。
 
(void) - onNERtcChannelDidLeaveChannelWithResult:
 退出房间回调。 App 调用 leaveChannel 方法后,SDK 提示 App 退出房间是否成功。
 
(void) - onNERtcChannelUserDidJoinWithUserID:userName:
 远端用户(通信场景)/主播(直播场景)加入当前频道回调。
 
(void) - onNERtcChannelUserDidJoinWithUserID:userName:joinExtraInfo:
 远端用户加入房间事件回调。
 
(void) - onNERtcChannelUserDidLeaveWithUserID:reason:
 远端用户离开当前房间回调。
提示有远端用户离开了房间(或掉线)。用户离开房间有两个原因,即正常离开和超时掉线:
 
(void) - onNERtcChannelUserDidLeaveWithUserID:reason:leaveExtraInfo:
 远端用户离开房间事件回调。
 
(void) - onNERtcChannelDidClientRoleChanged:newRole:
 直播场景下用户角色已切换回调。
用户加入房间后,通过 INERtcEngine#setClientRole: 切换用户角色后会触发此回调。例如从主播切换为观众、从观众切换为主播。
 
(void) - onNERtcChannelUserAudioDidStart:
 远端用户开启音频回调。
 
(void) - onNERtcChannelUserAudioDidStop:
 远端用户停用音频回调。
 
(void) - onNERtcChannelUser:audioMuted:
 远端用户暂停或恢复发送音频流的回调。
 
(void) - onNERtcChannelUserSubStreamAudioDidStart:
 远端用户开启音频辅流回调。
 
(void) - onNERtcChannelUserSubStreamAudioDidStop:
 远端用户停用音频辅流回调。
 
(void) - onNERtcChannelUser:subStreamAudioMuted:
 远端用户暂停或恢复发送音频辅流的回调。
 
(void) - onNERtcChannelUserVideoDidStartWithUserID:videoProfile:
 远端用户开启视频回调。
启用后,用户可以进行视频通话或直播。
 
(void) - onNERtcChannelUserVideoDidStop:
 远端用户停用视频回调。
关闭后,用户只能进行语音通话或者直播。
 
(void) - onNERtcChannelUserSubStreamDidStartWithUserID:subStreamProfile:
 远端用户开启屏幕共享辅流通道的回调。
 
(void) - onNERtcChannelUserSubStreamDidStop:
 远端用户停止屏幕共享辅流通道的回调。
 
(void) - onNERtcChannelUser:videoMuted:
 远端用户暂停或恢复发送视频流回调。
 
(void) - onNERtcChannelUser:videoMuted:streamType:
 远端用户暂停或恢复发送视频流回调。
 
(void) - onNERtcChannelDidDisconnectWithReason:
 与服务器连接中断,可能原因包括:网络连接失败、服务器关闭该房间、用户被踢出房间等。
 
(void) - onNERtcChannelReconnectingStart
 重连开始回调。
客户端和服务器断开连接时,SDK 会进行重连,重连开始时触发此回调。重连结果请参考 onNERtcEngineRejoinChannel 、onNERtcEngineDidDisconnectWithReason。
 
(void) - onNERtcChannelRejoinChannel:
 重新加入房间回调。
在弱网环境下,若客户端和服务器失去连接,SDK 会自动重连。自动重连成功后触发此回调方法。
 
(void) - onNERtcChannelFirstAudioDataDidReceiveWithUserID:
 已接收到远端音频首帧回调。
 
(void) - onNERtcChannelFirstVideoDataDidReceiveWithUserID:
 已接收到远端视频首帧回调。
第一帧远端视频显示在视图上时,触发此调用。
 
(void) - onNERtcChannelFirstVideoDataDidReceiveWithUserID:streamType:
 已接收到远端视频首帧回调。
第一帧远端视频显示在视图上时,触发此调用。
 
(void) - onNERtcChannelFirstAudioFrameDecoded:
 已解码远端音频首帧的回调。
 
(void) - onNERtcChannelFirstVideoFrameDecoded:width:height:
 已显示首帧远端视频回调。
引擎收到第一帧远端视频流并解码成功时,触发此调用。 App 可在此回调中设置该用户的视频画布。
 
(void) - onNERtcChannelFirstVideoFrameDecoded:width:height:streamType:
 已显示首帧远端视频回调。 引擎收到第一帧远端视频流并解码成功时,触发此调用。 App 可在此回调中设置该用户的视频画布。
 
(void) - onNERtcChannelFirstVideoFrameRender:width:height:elapsed:streamType:
 已接收到远端视频首帧并完成渲染的回调。
当 SDK 收到远端视频并渲染成功时,会触发该回调。
 
(void) - onNERtcChannelRemoteVideoSizeDidChangedWithUserID:width:height:streamType:
 远端视频分辨率发生变化的回调。
当远端视频的画面分辨率发生变化,会触发此回调。
 
(void) - onNERtcChannelLocalVideoRenderSizeChanged:width:height:
 本地视频预览的分辨率变化回调, 与是否进入房间的状态无关,与硬件状态有关,也适用于预览。
 
(void) - onNERtcChannelRecvSEIMsg:message:
 收到远端流的 SEI 内容回调。
当远端成功发送 SEI 后,本端会收到此回调。
 
(void) - onNERtcChannelLiveStreamState:taskID:url:
 推流状态已改变回调。
 
(void) - onLocalAudioVolumeIndication:
 提示房间内本地用户瞬时音量的回调。
该回调默认禁用。可以通过 enableAudioVolumeIndication 方法开启。
开启后,本地用户说话,SDK 会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。
如果本地用户将自己静音,即调用了 muteLocalAudio,SDK 不再报告该回调。
 
(void) - onLocalAudioVolumeIndication:withVad:
 提示房间内本地用户瞬时音量的回调。
该回调默认为关闭状态。可以通过 INERtcEngineEx#enableAudioVolumeIndication:interval:vad: 方法开启;开启后,本地用户说话,SDK 会按该方法中设置的时间间隔触发该回调。
如果本地用户将自己静音(调用了 INERtcEngineEx#muteLocalAudio:),SDK 将音量设置为 0 后回调给应用层。
 
(void) - onRemoteAudioVolumeIndication:totalVolume:
 提示房间内谁正在说话及说话者瞬时音量的回调。
该回调默认为关闭状态。可以通过 enableAudioVolumeIndication 方法开启。开启后,无论房间内是否有人说话,SDK 都会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。
在返回的数组中:
 
(void) - onNERtcChannelLocalPublishFallbackToAudioOnly:streamType:
 本地发布流已回退为音频流、或已恢复为音视频流回调。
如果您调用了设置本地推流回退选项 setLocalPublishFallbackOption 接口,并将 option 设置为 kNERtcStreamFallbackOptionAudioOnly 后,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。
 
(void) - onNERtcChannelRemoteSubscribeFallbackToAudioOnly:isFallback:streamType:
 订阅的远端流已回退为音频流、或已恢复为音视频流回调。
如果您调用了设置远端订阅流回退选项 setRemoteSubscribeFallbackOption 接口并将 option 设置 kNERtcStreamFallbackOptionAudioOnly 后,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
 
(void) - onNERtcChannelDidError:
 发生错误回调。
该回调方法表示 SDK 运行时出现了网络或媒体相关的错误。
通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。
 
(void) - onNERtcChannelMediaRightChangeWithAudio:video:
 音视频权限被禁止通知
 
(void) - onNERtcChannelDidWarning:msg:
 发生警告回调。
该回调方法表示 SDK 运行时出现了网络或媒体相关的警告。
通常情况下,SDK 上报的警告意味着 SDK 无法自动适配,需要 App 干预或提示用户。
 
(void) - onNERtcChannelApiDidExecuted:errCode:msg:
 
(void) - onNERtcChannelMediaRelayStateDidChange:channelName:
 跨房间媒体流转发状态发生改变回调。
 
(void) - onNERtcChannelDidReceiveChannelMediaRelayEvent:channelName:error:
 媒体流相关转发事件回调。
 
(void) - onNERtcChannelPermissionKeyWillExpire
 权限密钥即将过期事件回调。
 
(void) - onNERtcChannelUpdatePermissionKey:error:timeout:
 更新权限密钥事件回调。
 
(void) - onNERtcChannelLabFeatureDidCallbackWithKey:param:
 实验功能回调接口,用于回调一些非正式的事件及数据通知
 

详细描述

NERtcChannelDelegate 类监听和报告指定房间的事件和数据。

自从
V4.5.0

函数文档

◆ onLocalAudioVolumeIndication:

- (void) onLocalAudioVolumeIndication: (int) volume
optionalrequired

提示房间内本地用户瞬时音量的回调。
该回调默认禁用。可以通过 enableAudioVolumeIndication 方法开启。
开启后,本地用户说话,SDK 会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。
如果本地用户将自己静音,即调用了 muteLocalAudio,SDK 不再报告该回调。

自从
V4.5.0
参数
volume混音后的音量,范围为 0~100。

◆ onLocalAudioVolumeIndication:withVad:

- (void) onLocalAudioVolumeIndication: (int) volume
withVad: (BOOL) enableVad 
optionalrequired

提示房间内本地用户瞬时音量的回调。
该回调默认为关闭状态。可以通过 INERtcEngineEx#enableAudioVolumeIndication:interval:vad: 方法开启;开启后,本地用户说话,SDK 会按该方法中设置的时间间隔触发该回调。
如果本地用户将自己静音(调用了 INERtcEngineEx#muteLocalAudio:),SDK 将音量设置为 0 后回调给应用层。

自从
V4.6.10
参数
volume混音后的音量,范围为 0 ~ 100。
enableVad是否检测到人声。

◆ onNERtcChannelApiDidExecuted:errCode:msg:

- (void) onNERtcChannelApiDidExecuted: (NSString *) apiName
errCode: (NERtcError) errCode
msg: (NSString *) msg 
optionalrequired

◆ onNERtcChannelConnectionStateChangeWithState:reason:

- (void) onNERtcChannelConnectionStateChangeWithState: (NERtcConnectionStateType) state
reason: (NERtcReasonConnectionChangedType) reason 
optional

房间连接状态已改变回调。
该回调在房间连接状态发生改变时触发,并告知用户当前的房间连接状态和引起状态改变的原因。

自从
V4.5.0
参数
state当前的连接状态。详细信息请参考 NERtcConnectionStateType
reason引起当前连接状态改变的原因。详细信息请参考 NERtcReasonConnectionChangedType

◆ onNERtcChannelDidClientRoleChanged:newRole:

- (void) onNERtcChannelDidClientRoleChanged: (NERtcClientRole) oldRole
newRole: (NERtcClientRole) newRole 
optionalrequired

直播场景下用户角色已切换回调。
用户加入房间后,通过 INERtcEngine#setClientRole: 切换用户角色后会触发此回调。例如从主播切换为观众、从观众切换为主播。

注解
直播场景下,如果您在加入房间后调用该方法切换用户角色,调用成功后,会触发以下回调:
自从
V4.5.0
参数
oldRole切换前的角色。详细信息请参考 NERtcClientRole
newRole切换后的角色。详细信息请参考 NERtcClientRole

◆ onNERtcChannelDidDisconnectWithReason:

- (void) onNERtcChannelDidDisconnectWithReason: (NERtcError) reason
optionalrequired

与服务器连接中断,可能原因包括:网络连接失败、服务器关闭该房间、用户被踢出房间等。

注解
  • SDK 在调用 joinChannel 加入房间成功后,如果和服务器失去连接,就会触发该回调。
自从
V4.5.0
参数
reason网络连接中断原因。详细信息请查看 NERtcEngineErrorCode.NERtcError

◆ onNERtcChannelDidError:

- (void) onNERtcChannelDidError: (NERtcError) errCode
optionalrequired

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

自从
V4.5.0
参数
errCode错误码。详细信息请参考 NERtcEngineErrorCode.NERtcError

◆ onNERtcChannelDidLeaveChannelWithResult:

- (void) onNERtcChannelDidLeaveChannelWithResult: (NERtcError) result
optionalrequired

退出房间回调。 App 调用 leaveChannel 方法后,SDK 提示 App 退出房间是否成功。

自从
V4.5.0
参数
result退出房间结果。详细信息请参考 NERtcEngineErrorCode.NERtcError。在快速切换房间时 code 为 kNERtcErrChannelLeaveBySwitchAction。

◆ onNERtcChannelDidReceiveChannelMediaRelayEvent:channelName:error:

- (void) onNERtcChannelDidReceiveChannelMediaRelayEvent: (NERtcChannelMediaRelayEvent) event
channelName: (NSString *) channelName
error: (NERtcError) error 
optionalrequired

媒体流相关转发事件回调。

自从
V4.5.0
参数
event当前媒体流转发事件。详细信息请参考 NERtcChannelMediaRelayEvent
channelName转发的目标房间名。
error相关错误码。详细信息请参考 NERtcEngineErrorCode.NERtcError

◆ onNERtcChannelDidWarning:msg:

- (void) onNERtcChannelDidWarning: (NERtcWarning) warnCode
msg: (NSString *) msg 
optionalrequired

发生警告回调。
该回调方法表示 SDK 运行时出现了网络或媒体相关的警告。
通常情况下,SDK 上报的警告意味着 SDK 无法自动适配,需要 App 干预或提示用户。

自从
V4.5.0
参数
warnCode错误码。详细信息请参考 NERtcWarning
msg警告描述。

◆ onNERtcChannelFirstAudioDataDidReceiveWithUserID:

- (void) onNERtcChannelFirstAudioDataDidReceiveWithUserID: (uint64_t) userID
optionalrequired

已接收到远端音频首帧回调。

自从
V4.5.0
参数
userID远端用户 ID,指定是哪个用户的音频流。

◆ onNERtcChannelFirstAudioFrameDecoded:

- (void) onNERtcChannelFirstAudioFrameDecoded: (uint64_t) userID
optionalrequired

已解码远端音频首帧的回调。

自从
V4.5.0
参数
userID远端用户 ID,指定是哪个用户的音频流。

◆ onNERtcChannelFirstVideoDataDidReceiveWithUserID:

- (void) onNERtcChannelFirstVideoDataDidReceiveWithUserID: (uint64_t) userID
optionalrequired

已接收到远端视频首帧回调。
第一帧远端视频显示在视图上时,触发此调用。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
自从
V4.5.0
参数
userID远端用户 ID,指定是哪个用户的视频流。

◆ onNERtcChannelFirstVideoDataDidReceiveWithUserID:streamType:

- (void) onNERtcChannelFirstVideoDataDidReceiveWithUserID: (uint64_t) userID
streamType: (NERtcStreamChannelType) type 
optionalrequired

已接收到远端视频首帧回调。
第一帧远端视频显示在视图上时,触发此调用。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
自从
V4.6.20
参数
userID远端用户 ID,指定是哪个用户的视频流。
type视频流通道类型,指定主流或辅流。

◆ onNERtcChannelFirstVideoFrameDecoded:width:height:

- (void) onNERtcChannelFirstVideoFrameDecoded: (uint64_t) userID
width: (uint32_t) width
height: (uint32_t) height 
optionalrequired

已显示首帧远端视频回调。
引擎收到第一帧远端视频流并解码成功时,触发此调用。 App 可在此回调中设置该用户的视频画布。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
自从
V4.5.0
参数
userID远端用户 ID,指定是哪个用户的视频流。
width首帧视频宽,单位为 px。
height首帧视频高,单位为 px。

◆ onNERtcChannelFirstVideoFrameDecoded:width:height:streamType:

- (void) onNERtcChannelFirstVideoFrameDecoded: (uint64_t) userID
width: (uint32_t) width
height: (uint32_t) height
streamType: (NERtcStreamChannelType) type 
optionalrequired

已显示首帧远端视频回调。 引擎收到第一帧远端视频流并解码成功时,触发此调用。 App 可在此回调中设置该用户的视频画布。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
自从
V4.6.20
参数
userID远端用户 ID,指定是哪个用户的视频流。
width首帧视频宽,单位为 px。
height首帧视频高,单位为 px。
type视频流通道类型,默认为主流 kNERtcStreamChannelTypeMainStream。 NERtcStreamChannelType

◆ onNERtcChannelFirstVideoFrameRender:width:height:elapsed:streamType:

- (void) onNERtcChannelFirstVideoFrameRender: (uint64_t) userID
width: (uint32_t) width
height: (uint32_t) height
elapsed: (uint64_t) elapsed
streamType: (NERtcStreamChannelType) streamType 
optionalrequired

已接收到远端视频首帧并完成渲染的回调。
当 SDK 收到远端视频并渲染成功时,会触发该回调。

自从
V5.5.10
参数说明
参数名称 类型 描述
userID uint64_t 用户 ID,提示是哪个用户的视频流。
width uint32_t 首帧视频的宽度,单位为 px。
height uint32_t 首帧视频的高度,单位为 px。
elapsed uint64_t 从订阅动作开始到发生此事件过去的时间(毫秒)。
type NERtcStreamChannelType 视频通道类型:
  • kNERtcStreamChannelTypeMainStream:主流。
  • kNERtcStreamChannelTypeSubStream:辅流。

◆ onNERtcChannelLabFeatureDidCallbackWithKey:param:

- (void) onNERtcChannelLabFeatureDidCallbackWithKey: (NSString *) key
param: (id) param 
optionalrequired

实验功能回调接口,用于回调一些非正式的事件及数据通知

自从
V5.5.0
参数
key功能对应的 key
param回调的参数,每个 key 对应的参数,数据类型不一样,需要转换后使用,详情请 提交工单 联系网易云信技术支持工程师

◆ onNERtcChannelLiveStreamState:taskID:url:

- (void) onNERtcChannelLiveStreamState: (NERtcLiveStreamStateCode) state
taskID: (NSString *) taskID
url: (NSString *) url 
optionalrequired

推流状态已改变回调。

自从
V4.5.0
参数
state推流状态,详细信息请参考 NERtcLiveStreamStateCode
taskID推流任务 ID。
url推流任务对应的 URL 地址。

◆ onNERtcChannelLocalPublishFallbackToAudioOnly:streamType:

- (void) onNERtcChannelLocalPublishFallbackToAudioOnly: (BOOL) isFallback
streamType: (NERtcStreamChannelType) streamType 
optionalrequired

本地发布流已回退为音频流、或已恢复为音视频流回调。
如果您调用了设置本地推流回退选项 setLocalPublishFallbackOption 接口,并将 option 设置为 kNERtcStreamFallbackOptionAudioOnly 后,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。

自从
V4.5.0
参数
isFallback本地发布流已回退或已恢复。
  • YES: 由于网络环境不理想,发布的媒体流已回退为音频流。
  • NO:由于网络环境改善,从音频流恢复为音视频流。
streamType对应的视频流类型,即主流或辅流。详细信息请参考 NERtcStreamChannelType

◆ onNERtcChannelLocalVideoRenderSizeChanged:width:height:

- (void) onNERtcChannelLocalVideoRenderSizeChanged: (NERtcStreamChannelType) streamType
width: (uint32_t) width
height: (uint32_t) height 
optionalrequired

本地视频预览的分辨率变化回调, 与是否进入房间的状态无关,与硬件状态有关,也适用于预览。

自从
V5.4.1
触发时机
当本地视频的分辨率发生变化,会触发此回调。当调用 SetCaptureConfig 设置采集分辨率或调用 SetVideoConfig 设置编码属性时可以触发该回调。回调的分辨率宽和高为本地预览的宽和高,和实际编码发送的分辨率不一定一致
业务场景
开发者可以根据该回调的分辨率来动态调整预览视图的比例等。
参数说明
参数名称 类型 描述
streamType NERtcStreamChannelType 当前的流类型。
  • kNERtcStreamChannelTypeMainStream:视频主流。
  • kNERtcStreamChannelTypeSubStream:视频辅流。
width uint32_t 首帧视频的宽,单位为 px。
height uint32_t 首帧视频的高,单位为 px。

◆ onNERtcChannelMediaRelayStateDidChange:channelName:

- (void) onNERtcChannelMediaRelayStateDidChange: (NERtcChannelMediaRelayState) state
channelName: (NSString *) channelName 
optionalrequired

跨房间媒体流转发状态发生改变回调。

自从
V4.5.0
参数
state当前跨房间媒体流转发状态。详细信息请参考 NERtcChannelMediaRelayState
channelName媒体流转发的目标房间名。

◆ onNERtcChannelMediaRightChangeWithAudio:video:

- (void) onNERtcChannelMediaRightChangeWithAudio: (BOOL) isAudioBannedByServer
video: (BOOL) isVideoBannedByServer 
optionalrequired

音视频权限被禁止通知

参数
isAudioBannedByServer音频是否被服务器禁止
isVideoBannedByServer视频是否被服务器禁止

◆ onNERtcChannelPermissionKeyWillExpire

- (void) onNERtcChannelPermissionKeyWillExpire
optionalrequired

权限密钥即将过期事件回调。

  • 由于 PermissionKey 具有一定的时效,在通话过程中如果 PermissionKey 即将失效,SDK 会提前 30 秒触发该回调,提醒用户更新 PermissionKey。
    自从
    V4.6.29
    使用前提
    请在 INERtcChannel 接口类中通过 INERtcChannel#setChannelDelegate: 接口设置回调监听。
    相关接口
    在收到此回调后可以调用 INERtcChannel#updatePermissionKey: 方法更新权限密钥。

◆ onNERtcChannelReconnectingStart

- (void) onNERtcChannelReconnectingStart
optionalrequired

重连开始回调。
客户端和服务器断开连接时,SDK 会进行重连,重连开始时触发此回调。重连结果请参考 onNERtcEngineRejoinChannel 、onNERtcEngineDidDisconnectWithReason。

自从
V4.5.0

◆ onNERtcChannelRecvSEIMsg:message:

- (void) onNERtcChannelRecvSEIMsg: (uint64_t) userID
message: (NSData *) message 
optionalrequired

收到远端流的 SEI 内容回调。
当远端成功发送 SEI 后,本端会收到此回调。

注解
纯音频 SDK 禁用该回调,如需使用请前往云信官网下载并替换成视频 SDK。
自从
V4.5.0
参数
userID发送 SEI 的用户 ID。
message对应用户的 SEI 信息。

◆ onNERtcChannelRejoinChannel:

- (void) onNERtcChannelRejoinChannel: (NERtcError) result
optionalrequired

重新加入房间回调。
在弱网环境下,若客户端和服务器失去连接,SDK 会自动重连。自动重连成功后触发此回调方法。

自从
V4.5.0
参数
result重连结果。详细信息请参考 NERtcEngineErrorCode.NERtcError

◆ onNERtcChannelRemoteSubscribeFallbackToAudioOnly:isFallback:streamType:

- (void) onNERtcChannelRemoteSubscribeFallbackToAudioOnly: (uint64_t) uid
isFallback: (BOOL) isFallback
streamType: (NERtcStreamChannelType) streamType 
optionalrequired

订阅的远端流已回退为音频流、或已恢复为音视频流回调。
如果您调用了设置远端订阅流回退选项 setRemoteSubscribeFallbackOption 接口并将 option 设置 kNERtcStreamFallbackOptionAudioOnly 后,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。

自从
V4.5.0
参数
isFallback远端订阅流已回退或恢复:
  • YES: 由于网络环境不理想,订阅的远端流已回退为音频流。
  • NO:由于网络环境改善,订阅的远端流从音频流恢复为音视频流。
uid远端用户 ID。
streamType对应的视频流类型,即主流或辅流。详细信息请参考 NERtcStreamChannelType

◆ onNERtcChannelRemoteVideoSizeDidChangedWithUserID:width:height:streamType:

- (void) onNERtcChannelRemoteVideoSizeDidChangedWithUserID: (uint64_t) userID
width: (uint32_t) width
height: (uint32_t) height
streamType: (NERtcStreamChannelType) streamType 
optionalrequired

远端视频分辨率发生变化的回调。
当远端视频的画面分辨率发生变化,会触发此回调。

自从
V5.4.1
参数说明
参数名称 类型 描述
userID uint64_t 用户 ID,提示是哪个用户的视频流。
type NERtcStreamChannelType 视频通道类型:
  • kNERtcStreamChannelTypeMainStream:主流。
  • kNERtcStreamChannelTypeSubStream:辅流。

◆ onNERtcChannelUpdatePermissionKey:error:timeout:

- (void) onNERtcChannelUpdatePermissionKey: (NSString *) key
error: (NERtcError) error
timeout: (NSUInteger) timeout 
optionalrequired

更新权限密钥事件回调。

  • 调用 INERtcChannel#updatePermissionKey: 方法主动更新权限密钥后,SDK 会触发该回调,返回权限密钥更新的结果。
    自从
    V4.6.29
    使用前提
    请在 INERtcChannel 接口类中通过 INERtcChannel#setChannelDelegate: 接口设置回调监听。
    参数说明
    参数名称 类型 描述
    key NSString * 新的权限密钥。
    error NERtcEngineErrorCode.NERtcError 错误码。
    • kNERtcErrChannelPermissionKeyError(30901):权限密钥错误。
    • kNERtcErrChannelPermissionKeyTimeout(30902):权限密钥超时。
    timeout NSUInteger 更新后的权限密钥剩余有效时间。单位为秒。

◆ onNERtcChannelUser:audioMuted:

- (void) onNERtcChannelUser: (uint64_t) userID
audioMuted: (BOOL) muted 
optionalrequired

远端用户暂停或恢复发送音频流的回调。

自从
V4.5.0
注解
该回调由远端用户调用 muteLocalAudio 方法开启或关闭音频发送触发。
参数
userID用户 ID,提示是哪个用户的音频流。
muted是否暂停发送音频流。

◆ onNERtcChannelUser:subStreamAudioMuted:

- (void) onNERtcChannelUser: (uint64_t) userID
subStreamAudioMuted: (BOOL) muted 
optionalrequired

远端用户暂停或恢复发送音频辅流的回调。

自从
V4.6.10
参数
userID用户 ID,提示是哪个用户的音频辅流。
muted是否停止发送音频辅流。
  • YES:该用户已暂停发送音频辅流。
  • NO:该用户已恢复发送音频辅流。

◆ onNERtcChannelUser:videoMuted:

- (void) onNERtcChannelUser: (uint64_t) userID
videoMuted: (BOOL) muted 
optionalrequired

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

注解
当远端用户调用 muteLocalVideo 取消或者恢复发布视频流时,SDK 会触发该回调向本地用户报告远程用户的发流状况。
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
自从
V4.5.0
参数
userID用户 ID,提示是哪个用户的视频流。
muted是否暂停发送视频流。
  • YES:该用户已暂停发送视频流。 = NO:该用户已恢复发送视频流。

◆ onNERtcChannelUser:videoMuted:streamType:

- (void) onNERtcChannelUser: (uint64_t) userID
videoMuted: (BOOL) muted
streamType: (NERtcStreamChannelType) streamType 
optionalrequired

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

注解
当远端用户调用 muteLocalVideo 取消或者恢复发布视频流时,SDK 会触发该回调向本地用户报告远程用户的发流状况。
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
自从
V4.6.20
参数
userID用户 ID,提示是哪个用户的视频流。
muted是否暂停发送视频流。
  • YES:该用户已暂停发送视频流。 = NO:该用户已恢复发送视频流。
streamType视频流通道类型,默认为主流 kNERtcStreamChannelTypeMainStream。 NERtcStreamChannelType

◆ onNERtcChannelUserAudioDidStart:

- (void) onNERtcChannelUserAudioDidStart: (uint64_t) userID
optionalrequired

远端用户开启音频回调。

自从
V4.5.0
注解
该回调由远端用户调用 enableLocalAudio 方法开启音频采集和发送触发。
参数
userID远端用户 ID。

◆ onNERtcChannelUserAudioDidStop:

- (void) onNERtcChannelUserAudioDidStop: (uint64_t) userID
optionalrequired

远端用户停用音频回调。

自从
V4.5.0
注解
该回调由远端用户调用 enableLocalAudio 方法关闭音频采集和发送触发。
参数
userID远端用户 ID。

◆ onNERtcChannelUserDidJoinWithUserID:userName:

- (void) onNERtcChannelUserDidJoinWithUserID: (uint64_t) userID
userName: (NSString *) userName 
optionalrequired

远端用户(通信场景)/主播(直播场景)加入当前频道回调。

  • 通信场景下,该回调提示有远端用户加入了频道,并返回新加入用户的 ID;如果加入之前,已经有其他用户在频道中了,新加入的用户也会收到这些已有用户加入频道的回调。
  • 直播场景下,该回调提示有主播加入了频道,并返回该主播的用户 ID。如果在加入之前,已经有主播在频道中了,新加入的用户也会收到已有主播加入频道的回调。

该回调在如下情况下会被触发:

  • 远端用户调用 joinChannel 方法加入房间。
  • 远端用户网络中断后重新加入房间。
    自从
    V4.5.0
    注解
    直播场景下:
    • 主播间能相互收到新主播加入频道的回调,并能获得该主播的用户 ID。
    • 观众也能收到新主播加入频道的回调,并能获得该主播的用户 ID。
    • 当 Web 端加入直播频道时,只要 Web 端有推流,SDK 会默认该 Web 端为主播,并触发该回调。
    参数
    userID新加入房间的远端用户 ID。
    userName新加入房间的远端用户名。废弃字段,无需关注。

◆ onNERtcChannelUserDidJoinWithUserID:userName:joinExtraInfo:

- (void) onNERtcChannelUserDidJoinWithUserID: (uint64_t) userID
userName: (NSString *) userName
joinExtraInfo: (NERtcUserJoinExtraInfo *) joinExtraInfo 
optionalrequired

远端用户加入房间事件回调。

  • 远端用户加入房间或断网重连后,SDK 会触发该回调,可以通过返回的用户 ID 订阅对应用户发布的音、视频流。
    • 通信场景下,该回调通知有远端用户加入了房间,并返回新加入用户的 ID;若该用户加入之前,已有其他用户在房间中,该新加入的用户也会收到这些已有用户加入房间的回调。
    • 直播场景下,该回调通知有主播加入了房间,并返回该主播的用户 ID;若该用户加入之前,已经有主播在频道中了,新加入的用户也会收到已有主播加入房间的回调。
      自从
      V4.6.29
      使用前提
      请在 NERtcChannelDelegate 接口类中通过 INERtcEngine#setupEngineWithContext: 接口设置回调监听。
      注解
  • 同类型事件发生后,NERtcEngineDelegate#onNERtcEngineUserDidJoinWithUserID:userName: 回调可能会与该回调同时触发,建议您仅注册此回调,不能同时处理两个回调。
  • 当 Web 端用户加入直播场景的房间中,只要该用户发布了媒体流,SDK 会默认该用户为主播,并触发此回调。
    参数说明
    参数名称 类型 描述
    userID uint64_t 新加入房间的远端用户 ID。
    joinExtraInfo NERtcUserJoinExtraInfo * 该远端用户加入的额外信息。

◆ onNERtcChannelUserDidLeaveWithUserID:reason:

- (void) onNERtcChannelUserDidLeaveWithUserID: (uint64_t) userID
reason: (NERtcSessionLeaveReason) reason 
optionalrequired

远端用户离开当前房间回调。
提示有远端用户离开了房间(或掉线)。用户离开房间有两个原因,即正常离开和超时掉线:

  • 正常离开的时候,远端用户会收到相关消息消息,判断用户离开房间。
  • 超时掉线的依据是,在一定时间内(40~50s),用户没有收到对方的任何数据包,则判定为对方掉线。
自从
V4.5.0
参数
userID离开房间的远端用户 ID。
reason远端用户离开的原因。详细信息请参考 NERtcSessionLeaveReason

◆ onNERtcChannelUserDidLeaveWithUserID:reason:leaveExtraInfo:

- (void) onNERtcChannelUserDidLeaveWithUserID: (uint64_t) userID
reason: (NERtcSessionLeaveReason) reason
leaveExtraInfo: (NERtcUserLeaveExtraInfo *) leaveExtraInfo 
optionalrequired

远端用户离开房间事件回调。

  • 远端用户离开房间或掉线(在 40 ~ 50 秒内本端用户未收到远端用户的任何数据包)后,SDK 会触发该回调。
    自从
    V4.6.29
    使用前提
    请在 NERtcChannelDelegate 接口类中通过 INERtcEngine#setupEngineWithContext: 接口设置回调监听。
    注解
    同类型事件发生后,NERtcEngineDelegate#onNERtcEngineUserDidLeaveWithUserID:reason: 回调可能会与该回调同时触发,建议您仅注册此回调,不能同时处理两个回调。
    参数说明
    参数名称 类型 描述
    uid long 离开房间的远端用户 ID。
    reason int 该远端用户离开的原因,更多请参考 NERtcEngineErrorCode.NERtcError
    • kNERtcSessionLeaveNormal(0):正常离开。
    • kNERtcSessionLeaveForFailOver(1):用户断线导致离开房间。
    • kNERTCSessionLeaveForUpdate(2):用户因 Failover 导致离开房间,仅 SDK 内部使用。
    • kNERtcSessionLeaveForKick(3):用户被踢导致离开房间。
    • kNERtcSessionLeaveTimeout(4):用户超时退出房间。
    leaveExtraInfo NERtcUserLeaveExtraInfo * 该远端用户离开的额外信息。

◆ onNERtcChannelUserSubStreamAudioDidStart:

- (void) onNERtcChannelUserSubStreamAudioDidStart: (uint64_t) userID
optionalrequired

远端用户开启音频辅流回调。

自从
V4.6.10
参数
userID远端用户 ID。

◆ onNERtcChannelUserSubStreamAudioDidStop:

- (void) onNERtcChannelUserSubStreamAudioDidStop: (uint64_t) userID
optionalrequired

远端用户停用音频辅流回调。

自从
V4.6.10
参数
userID远端用户 ID。

◆ onNERtcChannelUserSubStreamDidStartWithUserID:subStreamProfile:

- (void) onNERtcChannelUserSubStreamDidStartWithUserID: (uint64_t) userID
subStreamProfile: (NERtcVideoProfileType) profile 
optionalrequired

远端用户开启屏幕共享辅流通道的回调。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
自从
V4.5.0
参数
userID远端用户 ID。
profile远端视频分辨率等级。详细信息请参考 NERtcVideoProfileType

◆ onNERtcChannelUserSubStreamDidStop:

- (void) onNERtcChannelUserSubStreamDidStop: (uint64_t) userID
optionalrequired

远端用户停止屏幕共享辅流通道的回调。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
自从
V4.5.0
参数
userID远端用户 ID。

◆ onNERtcChannelUserVideoDidStartWithUserID:videoProfile:

- (void) onNERtcChannelUserVideoDidStartWithUserID: (uint64_t) userID
videoProfile: (NERtcVideoProfileType) profile 
optionalrequired

远端用户开启视频回调。
启用后,用户可以进行视频通话或直播。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
自从
V4.5.0
参数
userID用户 ID,提示是哪个用户的视频流。
profile远端用户的视频 profile 档位。详细信息请参考 NERtcVideoProfileType

◆ onNERtcChannelUserVideoDidStop:

- (void) onNERtcChannelUserVideoDidStop: (uint64_t) userID
optionalrequired

远端用户停用视频回调。
关闭后,用户只能进行语音通话或者直播。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
自从
V4.5.0
参数
userID远端用户 ID。

◆ onRemoteAudioVolumeIndication:totalVolume:

- (void) onRemoteAudioVolumeIndication: (nullable NSArray< NERtcAudioVolumeInfo * > *) speakers
totalVolume: (int) totalVolume 
optionalrequired

提示房间内谁正在说话及说话者瞬时音量的回调。
该回调默认为关闭状态。可以通过 enableAudioVolumeIndication 方法开启。开启后,无论房间内是否有人说话,SDK 都会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。
在返回的数组中:

  • 如果有 uid 出现在上次返回的数组中,但不在本次返回的数组中,则默认该 uid 对应的远端用户没有说话。
  • 如果 volume 为 0,表示该用户没有说话。
  • 如果数组为空,则表示此时远端没有人说话。
自从
V4.5.0
参数
speakers每个说话者的用户 ID 和音量信息的数组。详细信息请参考 NERtcAudioVolumeInfo
totalVolume混音后的总音量,范围为 0~100。

该协议的文档由以下文件生成: