|
NERTC iOS SDK V5.9.10
|
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) | - onNERtcChannelUserVideoStreamDidStart:streamType:streamProfile: |
| 远端用户开启视频回调。 启用后,用户可以进行视频通话或直播。 | |
| (void) | - onNERtcChannelUserVideoDidStop: |
| 远端用户停用视频回调。 关闭后,用户只能进行语音通话或者直播。 | |
| (void) | - onNERtcChannelUserVideoStreamDidStop:streamType: |
| 远端用户停用视频回调。 关闭后,用户只能进行语音通话或者直播。 | |
| (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 |
远端用户开启视频回调。
启用后,用户可以进行视频通话或直播。
| userID | 用户 ID,提示是哪个用户的视频流。 |
| streamType | 视频流类型。 |
| profile | 远端用户的视频 profile 档位。详细信息请参考 NERtcVideoProfileType。 |
|
optionalrequired |
远端用户停用视频回调。
关闭后,用户只能进行语音通话或者直播。
| userID | 远端用户 ID。 |
| streamType | 视频流类型。 |
|
optionalrequired |
提示房间内谁正在说话及说话者瞬时音量的回调。
该回调默认为关闭状态。可以通过 enableAudioVolumeIndication 方法开启。开启后,无论房间内是否有人说话,SDK 都会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。
在返回的数组中:
| speakers | 每个说话者的用户 ID 和音量信息的数组。详细信息请参考 NERtcAudioVolumeInfo。 |
| totalVolume | 混音后的总音量,范围为 0~100。 |