NERtc iOS SDK V5.6.30
|
NERtcChannelDelegate
类监听和报告指定房间的事件和数据。
更多...
#include <NERtcChannelDelegate.h>
构造函数 | |
(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
类监听和报告指定房间的事件和数据。
|
optionalrequired |
提示房间内本地用户瞬时音量的回调。
该回调默认禁用。可以通过 enableAudioVolumeIndication 方法开启。
开启后,本地用户说话,SDK 会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。
如果本地用户将自己静音,即调用了 muteLocalAudio,SDK 不再报告该回调。
volume | 混音后的音量,范围为 0~100。 |
|
optionalrequired |
提示房间内本地用户瞬时音量的回调。
该回调默认为关闭状态。可以通过 INERtcEngineEx#enableAudioVolumeIndication:interval:vad:
方法开启;开启后,本地用户说话,SDK 会按该方法中设置的时间间隔触发该回调。
如果本地用户将自己静音(调用了 INERtcEngineEx#muteLocalAudio:
),SDK 将音量设置为 0 后回调给应用层。
volume | 混音后的音量,范围为 0 ~ 100。 |
enableVad | 是否检测到人声。 |
|
optionalrequired |
|
optional |
房间连接状态已改变回调。
该回调在房间连接状态发生改变时触发,并告知用户当前的房间连接状态和引起状态改变的原因。
state | 当前的连接状态。详细信息请参考 NERtcConnectionStateType 。 |
reason | 引起当前连接状态改变的原因。详细信息请参考 NERtcReasonConnectionChangedType 。 |
|
optionalrequired |
直播场景下用户角色已切换回调。
用户加入房间后,通过 INERtcEngine#setClientRole:
切换用户角色后会触发此回调。例如从主播切换为观众、从观众切换为主播。
NERtcEngineDelegate#onNERtcEngineUserDidLeaveWithUserID:reason:
回调。NERtcEngineDelegate#onNERtcEngineUserDidJoinWithUserID:userName:
回调。 oldRole | 切换前的角色。详细信息请参考 NERtcClientRole 。 |
newRole | 切换后的角色。详细信息请参考 NERtcClientRole 。 |
|
optionalrequired |
与服务器连接中断,可能原因包括:网络连接失败、服务器关闭该房间、用户被踢出房间等。
reason | 网络连接中断原因。详细信息请查看 NERtcEngineErrorCode.NERtcError 。 |
|
optionalrequired |
发生错误回调。
该回调方法表示 SDK 运行时出现了网络或媒体相关的错误。
通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。
errCode | 错误码。详细信息请参考 NERtcEngineErrorCode.NERtcError 。 |
|
optionalrequired |
退出房间回调。 App 调用 leaveChannel 方法后,SDK 提示 App 退出房间是否成功。
result | 退出房间结果。详细信息请参考 NERtcEngineErrorCode.NERtcError 。在快速切换房间时 code 为 kNERtcErrChannelLeaveBySwitchAction。 |
|
optionalrequired |
媒体流相关转发事件回调。
event | 当前媒体流转发事件。详细信息请参考 NERtcChannelMediaRelayEvent 。 |
channelName | 转发的目标房间名。 |
error | 相关错误码。详细信息请参考 NERtcEngineErrorCode.NERtcError 。 |
|
optionalrequired |
发生警告回调。
该回调方法表示 SDK 运行时出现了网络或媒体相关的警告。
通常情况下,SDK 上报的警告意味着 SDK 无法自动适配,需要 App 干预或提示用户。
warnCode | 错误码。详细信息请参考 NERtcWarning 。 |
msg | 警告描述。 |
|
optionalrequired |
已接收到远端音频首帧回调。
userID | 远端用户 ID,指定是哪个用户的音频流。 |
|
optionalrequired |
已解码远端音频首帧的回调。
userID | 远端用户 ID,指定是哪个用户的音频流。 |
|
optionalrequired |
已接收到远端视频首帧回调。
第一帧远端视频显示在视图上时,触发此调用。
userID | 远端用户 ID,指定是哪个用户的视频流。 |
|
optionalrequired |
已接收到远端视频首帧回调。
第一帧远端视频显示在视图上时,触发此调用。
userID | 远端用户 ID,指定是哪个用户的视频流。 |
type | 视频流通道类型,指定主流或辅流。 |
|
optionalrequired |
已显示首帧远端视频回调。
引擎收到第一帧远端视频流并解码成功时,触发此调用。 App 可在此回调中设置该用户的视频画布。
userID | 远端用户 ID,指定是哪个用户的视频流。 |
width | 首帧视频宽,单位为 px。 |
height | 首帧视频高,单位为 px。 |
|
optionalrequired |
已显示首帧远端视频回调。 引擎收到第一帧远端视频流并解码成功时,触发此调用。 App 可在此回调中设置该用户的视频画布。
userID | 远端用户 ID,指定是哪个用户的视频流。 |
width | 首帧视频宽,单位为 px。 |
height | 首帧视频高,单位为 px。 |
type | 视频流通道类型,默认为主流 kNERtcStreamChannelTypeMainStream。 NERtcStreamChannelType |
|
optionalrequired |
已接收到远端视频首帧并完成渲染的回调。
当 SDK 收到远端视频并渲染成功时,会触发该回调。
参数名称 | 类型 | 描述 |
---|---|---|
userID | uint64_t | 用户 ID,提示是哪个用户的视频流。 |
width | uint32_t | 首帧视频的宽度,单位为 px。 |
height | uint32_t | 首帧视频的高度,单位为 px。 |
elapsed | uint64_t | 从订阅动作开始到发生此事件过去的时间(毫秒)。 |
type | NERtcStreamChannelType | 视频通道类型:
|
|
optionalrequired |
实验功能回调接口,用于回调一些非正式的事件及数据通知
key | 功能对应的 key |
param | 回调的参数,每个 key 对应的参数,数据类型不一样,需要转换后使用,详情请 提交工单 联系网易云信技术支持工程师 |
|
optionalrequired |
推流状态已改变回调。
state | 推流状态,详细信息请参考 NERtcLiveStreamStateCode 。 |
taskID | 推流任务 ID。 |
url | 推流任务对应的 URL 地址。 |
|
optionalrequired |
本地发布流已回退为音频流、或已恢复为音视频流回调。
如果您调用了设置本地推流回退选项 setLocalPublishFallbackOption 接口,并将 option 设置为 kNERtcStreamFallbackOptionAudioOnly 后,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。
isFallback | 本地发布流已回退或已恢复。
|
streamType | 对应的视频流类型,即主流或辅流。详细信息请参考 NERtcStreamChannelType 。 |
|
optionalrequired |
本地视频预览的分辨率变化回调, 与是否进入房间的状态无关,与硬件状态有关,也适用于预览。
参数名称 | 类型 | 描述 |
---|---|---|
streamType | NERtcStreamChannelType | 当前的流类型。
|
width | uint32_t | 首帧视频的宽,单位为 px。 |
height | uint32_t | 首帧视频的高,单位为 px。 |
|
optionalrequired |
跨房间媒体流转发状态发生改变回调。
state | 当前跨房间媒体流转发状态。详细信息请参考 NERtcChannelMediaRelayState 。 |
channelName | 媒体流转发的目标房间名。 |
|
optionalrequired |
音视频权限被禁止通知
isAudioBannedByServer | 音频是否被服务器禁止 |
isVideoBannedByServer | 视频是否被服务器禁止 |
|
optionalrequired |
权限密钥即将过期事件回调。
INERtcChannel#setChannelDelegate:
接口设置回调监听。 INERtcChannel#updatePermissionKey:
方法更新权限密钥。
|
optionalrequired |
重连开始回调。
客户端和服务器断开连接时,SDK 会进行重连,重连开始时触发此回调。重连结果请参考 onNERtcEngineRejoinChannel 、onNERtcEngineDidDisconnectWithReason。
|
optionalrequired |
收到远端流的 SEI 内容回调。
当远端成功发送 SEI 后,本端会收到此回调。
userID | 发送 SEI 的用户 ID。 |
message | 对应用户的 SEI 信息。 |
|
optionalrequired |
重新加入房间回调。
在弱网环境下,若客户端和服务器失去连接,SDK 会自动重连。自动重连成功后触发此回调方法。
result | 重连结果。详细信息请参考 NERtcEngineErrorCode.NERtcError 。 |
|
optionalrequired |
订阅的远端流已回退为音频流、或已恢复为音视频流回调。
如果您调用了设置远端订阅流回退选项 setRemoteSubscribeFallbackOption 接口并将 option 设置 kNERtcStreamFallbackOptionAudioOnly 后,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
isFallback | 远端订阅流已回退或恢复:
|
uid | 远端用户 ID。 |
streamType | 对应的视频流类型,即主流或辅流。详细信息请参考 NERtcStreamChannelType 。 |
|
optionalrequired |
远端视频分辨率发生变化的回调。
当远端视频的画面分辨率发生变化,会触发此回调。
参数名称 | 类型 | 描述 |
---|---|---|
userID | uint64_t | 用户 ID,提示是哪个用户的视频流。 |
type | NERtcStreamChannelType | 视频通道类型:
|
|
optionalrequired |
更新权限密钥事件回调。
INERtcChannel#updatePermissionKey:
方法主动更新权限密钥后,SDK 会触发该回调,返回权限密钥更新的结果。 INERtcChannel#setChannelDelegate:
接口设置回调监听。 参数名称 | 类型 | 描述 |
---|---|---|
key | NSString * | 新的权限密钥。 |
error | NERtcEngineErrorCode.NERtcError | 错误码。
|
timeout | NSUInteger | 更新后的权限密钥剩余有效时间。单位为秒。 |
|
optionalrequired |
远端用户暂停或恢复发送音频流的回调。
userID | 用户 ID,提示是哪个用户的音频流。 |
muted | 是否暂停发送音频流。 |
|
optionalrequired |
远端用户暂停或恢复发送音频辅流的回调。
userID | 用户 ID,提示是哪个用户的音频辅流。 |
muted | 是否停止发送音频辅流。
|
|
optionalrequired |
远端用户暂停或恢复发送视频流回调。
userID | 用户 ID,提示是哪个用户的视频流。 |
muted | 是否暂停发送视频流。
|
|
optionalrequired |
远端用户暂停或恢复发送视频流回调。
userID | 用户 ID,提示是哪个用户的视频流。 |
muted | 是否暂停发送视频流。
|
streamType | 视频流通道类型,默认为主流 kNERtcStreamChannelTypeMainStream。 NERtcStreamChannelType |
|
optionalrequired |
远端用户开启音频回调。
userID | 远端用户 ID。 |
|
optionalrequired |
远端用户停用音频回调。
userID | 远端用户 ID。 |
|
optionalrequired |
远端用户(通信场景)/主播(直播场景)加入当前频道回调。
该回调在如下情况下会被触发:
userID | 新加入房间的远端用户 ID。 |
userName | 新加入房间的远端用户名。废弃字段,无需关注。 |
|
optionalrequired |
远端用户加入房间事件回调。
INERtcEngine#setupEngineWithContext:
接口设置回调监听。 NERtcEngineDelegate#onNERtcEngineUserDidJoinWithUserID:userName:
回调可能会与该回调同时触发,建议您仅注册此回调,不能同时处理两个回调。参数名称 | 类型 | 描述 |
---|---|---|
userID | uint64_t | 新加入房间的远端用户 ID。 |
joinExtraInfo | NERtcUserJoinExtraInfo * | 该远端用户加入的额外信息。 |
|
optionalrequired |
远端用户离开当前房间回调。
提示有远端用户离开了房间(或掉线)。用户离开房间有两个原因,即正常离开和超时掉线:
userID | 离开房间的远端用户 ID。 |
reason | 远端用户离开的原因。详细信息请参考 NERtcSessionLeaveReason 。 |
|
optionalrequired |
远端用户离开房间事件回调。
INERtcEngine#setupEngineWithContext:
接口设置回调监听。 NERtcEngineDelegate#onNERtcEngineUserDidLeaveWithUserID:reason:
回调可能会与该回调同时触发,建议您仅注册此回调,不能同时处理两个回调。 参数名称 | 类型 | 描述 |
---|---|---|
uid | long | 离开房间的远端用户 ID。 |
reason | int | 该远端用户离开的原因,更多请参考 NERtcEngineErrorCode.NERtcError 。
|
leaveExtraInfo | NERtcUserLeaveExtraInfo * | 该远端用户离开的额外信息。 |
|
optionalrequired |
远端用户开启音频辅流回调。
userID | 远端用户 ID。 |
|
optionalrequired |
远端用户停用音频辅流回调。
userID | 远端用户 ID。 |
|
optionalrequired |
远端用户开启屏幕共享辅流通道的回调。
userID | 远端用户 ID。 |
profile | 远端视频分辨率等级。详细信息请参考 NERtcVideoProfileType 。 |
|
optionalrequired |
远端用户停止屏幕共享辅流通道的回调。
userID | 远端用户 ID。 |
|
optionalrequired |
远端用户开启视频回调。
启用后,用户可以进行视频通话或直播。
userID | 用户 ID,提示是哪个用户的视频流。 |
profile | 远端用户的视频 profile 档位。详细信息请参考 NERtcVideoProfileType 。 |
|
optionalrequired |
远端用户停用视频回调。
关闭后,用户只能进行语音通话或者直播。
userID | 远端用户 ID。 |
|
optionalrequired |
提示房间内谁正在说话及说话者瞬时音量的回调。
该回调默认为关闭状态。可以通过 enableAudioVolumeIndication 方法开启。开启后,无论房间内是否有人说话,SDK 都会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。
在返回的数组中:
speakers | 每个说话者的用户 ID 和音量信息的数组。详细信息请参考 NERtcAudioVolumeInfo 。 |
totalVolume | 混音后的总音量,范围为 0~100。 |