NERtc iOS SDK  V5.5.40
构造函数 | 所有成员列表
<NERtcChannelDelegate>协议 参考

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

#import <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
optional

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

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

◆ onLocalAudioVolumeIndication:withVad:

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

提示房间内本地用户瞬时音量的回调。
该回调默认为关闭状态。可以通过 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 
optional

◆ 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 
optional

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

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

◆ onNERtcChannelDidDisconnectWithReason:

- (void) onNERtcChannelDidDisconnectWithReason: (NERtcError reason
optional

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

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

◆ onNERtcChannelDidError:

- (void) onNERtcChannelDidError: (NERtcError errCode
optional

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

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

◆ onNERtcChannelDidLeaveChannelWithResult:

- (void) onNERtcChannelDidLeaveChannelWithResult: (NERtcError result
optional

退出房间回调。 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 
optional

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

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

◆ onNERtcChannelDidWarning:msg:

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

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

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

◆ onNERtcChannelFirstAudioDataDidReceiveWithUserID:

- (void) onNERtcChannelFirstAudioDataDidReceiveWithUserID: (uint64_t)  userID
optional

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

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

◆ onNERtcChannelFirstAudioFrameDecoded:

- (void) onNERtcChannelFirstAudioFrameDecoded: (uint64_t)  userID
optional

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

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

◆ onNERtcChannelFirstVideoDataDidReceiveWithUserID:

- (void) onNERtcChannelFirstVideoDataDidReceiveWithUserID: (uint64_t)  userID
optional

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

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

◆ onNERtcChannelFirstVideoDataDidReceiveWithUserID:streamType:

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

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

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

◆ onNERtcChannelFirstVideoFrameDecoded:width:height:

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

已显示首帧远端视频回调。
引擎收到第一帧远端视频流并解码成功时,触发此调用。 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 
optional

已显示首帧远端视频回调。 引擎收到第一帧远端视频流并解码成功时,触发此调用。 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 
optional

已接收到远端视频首帧并完成渲染的回调。
当 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 
optional

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

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

◆ onNERtcChannelLiveStreamState:taskID:url:

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

推流状态已改变回调。

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

◆ onNERtcChannelLocalPublishFallbackToAudioOnly:streamType:

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

本地发布流已回退为音频流、或已恢复为音视频流回调。
如果您调用了设置本地推流回退选项 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 
optional

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

自从
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 
optional

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

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

◆ onNERtcChannelMediaRightChangeWithAudio:video:

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

音视频权限被禁止通知

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

◆ onNERtcChannelPermissionKeyWillExpire

- (void) onNERtcChannelPermissionKeyWillExpire
optional

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

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

◆ onNERtcChannelReconnectingStart

- (void) onNERtcChannelReconnectingStart
optional

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

自从
V4.5.0

◆ onNERtcChannelRecvSEIMsg:message:

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

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

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

◆ onNERtcChannelRejoinChannel:

- (void) onNERtcChannelRejoinChannel: (NERtcError result
optional

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

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

◆ onNERtcChannelRemoteSubscribeFallbackToAudioOnly:isFallback:streamType:

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

订阅的远端流已回退为音频流、或已恢复为音视频流回调。
如果你调用了设置远端订阅流回退选项 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 
optional

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

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

◆ onNERtcChannelUpdatePermissionKey:error:timeout:

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

更新权限密钥事件回调。

  • 调用 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 
optional

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

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

◆ onNERtcChannelUser:subStreamAudioMuted:

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

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

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

◆ onNERtcChannelUser:videoMuted:

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

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

注解
当远端用户调用 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 
optional

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

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

◆ onNERtcChannelUserAudioDidStart:

- (void) onNERtcChannelUserAudioDidStart: (uint64_t)  userID
optional

远端用户开启音频回调。

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

◆ onNERtcChannelUserAudioDidStop:

- (void) onNERtcChannelUserAudioDidStop: (uint64_t)  userID
optional

远端用户停用音频回调。

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

◆ onNERtcChannelUserDidJoinWithUserID:userName:

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

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

  • 通信场景下,该回调提示有远端用户加入了频道,并返回新加入用户的 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 
optional

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

  • 远端用户加入房间或断网重连后,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 
optional

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

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

◆ onNERtcChannelUserDidLeaveWithUserID:reason:leaveExtraInfo:

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

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

  • 远端用户离开房间或掉线(在 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
optional

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

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

◆ onNERtcChannelUserSubStreamAudioDidStop:

- (void) onNERtcChannelUserSubStreamAudioDidStop: (uint64_t)  userID
optional

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

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

◆ onNERtcChannelUserSubStreamDidStartWithUserID:subStreamProfile:

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

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

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

◆ onNERtcChannelUserSubStreamDidStop:

- (void) onNERtcChannelUserSubStreamDidStop: (uint64_t)  userID
optional

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

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

◆ onNERtcChannelUserVideoDidStartWithUserID:videoProfile:

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

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

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

◆ onNERtcChannelUserVideoDidStop:

- (void) onNERtcChannelUserVideoDidStop: (uint64_t)  userID
optional

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

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

◆ onRemoteAudioVolumeIndication:totalVolume:

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

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

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

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