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

NERtcEngine 扩展回调。 更多...

#include <NERtcEngineDelegate.h>

类 <NERtcEngineDelegateEx> 继承关系图:
<NERtcEngineDelegate> <NERtcEngineVideoFrameObserver> <NERtcEngineAudioSessionObserver> <NERtcEngineLiveStreamObserver> <NERtcEngineVideoSEIObserver> <NERtcEnginePushStreamingObserver>

构造函数

(void) - onNERtcEngineUserVideoProfileDidUpdate:maxProfile:
 远端用户视频编码配置已更新回调。
 
(void) - onNERtcEngineUser:videoMuted:
 远端用户暂停或恢复发送视频流回调。
当远端用户调用 muteLocalVideo 取消或者恢复发布视频流时,SDK 会触发该回调向本地用户报告远程用户的发流状况。
 
(void) - onNERtcEngineUser:videoMuted:streamType:
 远端用户暂停或恢复发送视频回调。
当远端用户调用 INERtcEngineEx#muteLocalVideo:streamType: 方法取消或者恢复发布视频流时,SDK 会触发该回调向本地用户通知远端用户的发流情况。
 
(void) - onNERtcEngineUser:audioMuted:
 远端用户暂停或恢复发送音频流的回调。
 
(void) - onNERtcEngineFirstVideoDataDidReceiveWithUserID:
 已接收到远端视频首帧回调。 SDK 收到远端第一帧视频并解码成功时,触发此调用。每次重新调用 enableLocalVideo 开启本地视频采集,也会触发该回调(V5.5.10 版本开始)。App 可在此回调中设置该用户的视频画布。
 
(void) - onNERtcEngineFirstVideoDataDidReceiveWithUserID:streamType:
 已显示远端视频首帧的回调。
 
(void) - onNERtcEngineRemoteVideoSizeDidChangedWithUserID:width:height:streamType:
 接收的远端视频分辨率变化回调。
 
(void) - onNERtcEngineLocalVideoRenderSizeChanged:width:height:
 本地视频预览的分辨率变化回调, 与是否进入房间的状态无关,与硬件状态有关,也适用于预览。
 
(void) - onNERtcEngineFirstAudioDataDidReceiveWithUserID:
 已接收到远端音频首帧回调。
 
(void) - onEngineFirstAudioFrameDecoded:
 已接收到远端音频首帧并完成解码的回调。
 
(void) - onNERtcEngineLocalFirstAudioPacketSent:
 本地第一帧音频发送到远端的回调。
 
(void) - onEngineFirstVideoFrameDecoded:width:height:
 已接收到远端视频首帧并完成解码的回调。 引擎收到第一帧远端视频流并解码成功时,触发此调用。 App 可在此回调中设置该用户的视频画布。
 
(void) - onEngineFirstVideoFrameDecoded:width:height:streamType:
 已接收到远端视频首帧并完成解码的回调。
当 SDK 收到远端视频并解码成功时,会触发该回调。应用层可在该回调中设置此用户的视频画布。
 
(void) - onEngineFirstVideoFrameRender:width:height:elapsed:streamType:
 已接收到远端视频首帧并完成渲染的回调。
当 SDK 第一帧远端视频流并渲染成功时,会触发该回调。
 
(void) - onNERtcEngineAudioDeviceStateChangeWithDeviceID:deviceType:deviceState:
 音频设备状态已改变回调。
 
(void) - onNERtcEngineVideoDeviceStateChangeWithDeviceID:deviceType:deviceState:
 视频设备变化回调。 该回调提示系统视频设备状态发生改变,比如被拔出或移除。如果设备已使用外接摄像头采集,外接摄像头被拔开后,视频会中断。
 
(void) - onNERtcEngineNetworkConnectionTypeChanged:
 本地网络类型已改变回调。 本地网络连接类型发生改变时,SDK 会触发该回调,并在回调中声明当前正在使用的网络连接类型。
 
(void) - onAudioMixingStateChanged:errorCode:
 本地用户的音乐文件播放状态改变回调。 调用 startAudioMixing 播放混音音乐文件后,当音乐文件的播放状态发生改变时,会触发该回调。
 
(void) - onAudioMixingTimestampUpdate:
 本地用户的音乐文件播放进度回调。 调用 startAudioMixingWithOption 播放混音音乐文件后,当音乐文件的播放进度改变时,会触发该回调。
 
(void) - onAudioEffectFinished:
 本地音效文件播放已结束回调。
 
(void) - onAudioEffectTimestampUpdateWithId:timeStampMS:
 本地用户的指定音效文件播放进度回调。
 
(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) - onNERtcEngineHardwareResourceReleased:
 硬件资源已释放回调。 如果回调结果成功,表示 SDK 已经完全释放了硬件资源。 您可以在收到回调成功后重新配置或者使用硬件资源,例如 AVAudioSession 等配置。
 
(void) - onNERtcCameraFocusChanged:
 摄像头对焦区域已改变回调。 该回调表示相机的对焦区域发生了改变。 该回调是由本地用户调用 setCameraFocusPosition 方法改变对焦位置触发的。
 
(void) - onNERtcCameraExposureChanged:
 摄像头曝光区域已改变回调。 该回调是由本地用户调用 setCameraExposurePosition 方法改变曝光位置触发的。
 
(void) - onNERtcEngineAudioHasHowling
 
(void) - onNERtcEngineAudioHasHowling:
 检测啸叫回调, 调用 JoinChannel 成功后,会一直周期性触发该回调, 不建议在该回调里做频繁的 API 调用和耗时操作。 当声源与扩音设备之间因距离过近时,可能会产生啸叫。NERTC SDK 支持啸叫检测,当检测到有啸叫信号产生的时候,参数 flag 为 YES,无啸叫时参数 flag 为 NO。App 应用层可以在有啸叫时,提示用户静音麦克风,或直接静音麦克风。
 
(void) - onNERtcEngineChannelMediaRelayStateDidChange:channelName:
 跨房间媒体流转发状态发生改变回调。
 
(void) - onNERtcEngineDidReceiveChannelMediaRelayEvent:channelName:error:
 媒体流相关转发事件回调。
 
(void) - onNERtcEngineAudioRecording:filePath:
 音频录制状态回调。
 
(void) - onNERtcEngineLocalPublishFallbackToAudioOnly:streamType:
 本地发布流已回退为音频流、或已恢复为音视频流回调。 如果您调用了设置本地推流回退选项 setLocalPublishFallbackOption 接口,并将 option 设置为 kNERtcStreamFallbackOptionAudioOnly 后,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。

 
(void) - onNERtcEngineRemoteSubscribeFallbackToAudioOnly:isFallback:streamType:
 订阅的远端流已回退为音频流、或已恢复为音视频流回调。 如果您调用了设置远端订阅流回退选项 setRemoteSubscribeFallbackOption 接口并将 option 设置 kNERtcStreamFallbackOptionAudioOnly 后,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
 
(void) - onNERtcEngineLastmileQuality:
 通话前网络上下行 last mile 质量状态回调。
该回调描述本地用户在加入房间前的 last mile 网络探测的结果,以打分形式描述上下行网络质量的主观体验,您可以通过该回调预估本地用户在音视频通话中的网络体验。
在调用 startLastmileProbeTest 之后,SDK 会在约 5 秒内返回该回调。
 
(void) - onNERtcEngineLastmileProbeTestResult:
 通话前网络上下行 Last mile 质量探测报告回调。
该回调描述本地用户在加入房间前的 last mile 网络探测详细报告,报告中通过客观数据反馈上下行网络质量,包括网络抖动、丢包率等数据。您可以通过该回调客观预测本地用户在音视频通话中的网络状态。
在调用 startLastmileProbeTest 之后,SDK 会在约 30 秒内返回该回调。
 
(void) - onNERtcEngineVirtualBackgroundSourceEnabled:reason:
 通知虚拟背景是否成功开启的回调。
调用 INERtcEngineEx#enableVirtualBackground:backData: 接口启用虚拟背景功能后,SDK 会触发此回调。
 
(void) - onNERtcEngineLocalVideoWatermarkStateWithStreamType:state:
 本地视频水印生效结果回调。
 
(void) - onNERtcEnginePermissionKeyWillExpire
 权限密钥即将过期事件回调。
 
(void) - onNERtcEngineUpdatePermissionKey:error:timeout:
 更新权限密钥事件回调。
 
(void) - onNERtcEngineUserDataDidStart:
 远端用户开启数据通道的回调。
 
(void) - onNERtcEngineUserDataDidStop:
 远端用户停用数据通道的回调。
 
(void) - onNERtcEngineUserDataReceiveMessage:data:
 远端用户通过数据通道发送数据的回调。
 
(void) - onNERtcEngineUserDataStateChanged:
 远端用户数据通道状态变更回调。
 
(void) - onNERtcEngineUserDataBufferedAmountChanged:previousAmount:
 远端用户数据通道 buffer 变更回调。
 
(void) - onNERtcEngineLabFeatureDidCallbackWithKey:param:
 实验功能回调接口,用于回调一些非正式的事件及数据通知
 
- 构造函数 继承自 <NERtcEngineDelegate>
(void) - onNERtcEngineDidError:
 发生错误回调。 该回调方法表示 SDK 运行时出现了网络或媒体相关的错误。 通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。
 
(void) - onNERtcEngineDidWarning:msg:
 发生警告回调。 该回调方法表示 SDK 运行时出现了网络或媒体相关的警告。 通常情况下,SDK 上报的警告意味着 SDK 无法自动适配,需要 App 干预或提示用户。
 
(void) - onNERtcEngineApiDidExecuted:errCode:msg:
 
(void) - onNERtcEngineConnectionStateChangeWithState:reason:
 SDK 和服务端的连接状态已改变回调。 该回调在 SDK 和服务端的连接状态发生改变时触发,并告知用户当前的连接状态和引起状态改变的原因。
 
(void) - onNERtcEngineDidLeaveChannelWithResult:
 退出房间回调。 App 调用 leaveChannel 方法后,SDK 提示 App 退出房间是否成功。
 
(void) - onNERtcEngineDidDisconnectWithReason:
 与服务器连接中断,可能原因包括:网络连接失败、服务器关闭该房间、用户被踢出房间等。
 
(void) - onNERtcEngineRejoinChannel:
 重新加入房间回调。 在弱网环境下,若客户端和服务器失去连接,SDK 会自动重连。自动重连成功后触发此回调方法。
 
(void) - onNERtcEngineUserDidJoinWithUserID:userName:
 远端用户加入当前房间回调。 该回调提示有远端用户加入了房间,并返回新加入用户的 ID;如果加入之前,已经有其他用户在房间中了,新加入的用户也会收到这些已有用户加入房间的回调。
 
(void) - onNERtcEngineUserDidJoinWithUserID:userName:joinExtraInfo:
 远端用户加入房间事件回调。
 
(void) - onNERtcEngineUserDidLeaveWithUserID:reason:
 远端用户离开当前房间回调。 提示有远端用户离开了房间(或掉线)。用户离开房间有两个原因,即正常离开和超时掉线:
 
(void) - onNERtcEngineUserDidLeaveWithUserID:reason:leaveExtraInfo:
 远端用户离开房间事件回调。
 
(void) - onNERtcEngineDidClientRoleChanged:newRole:
 直播场景下用户角色已切换回调。
用户加入房间后,通过 INERtcEngine#setClientRole: 切换用户角色后会触发此回调。例如从主播切换为观众、从观众切换为主播。
 
(void) - onNERtcEngineReconnectingStart
 重连开始回调。 客户端和服务器断开连接时,SDK 会进行重连,重连开始时触发此回调。重连结果请参考 onNERtcEngineRejoinChannel 、onNERtcEngineDidDisconnectWithReason。
 
(void) - onNERtcEngineUserAudioDidStart:
 远端用户开启音频回调。
 
(void) - onNERtcEngineUserAudioDidStop:
 远端用户停用音频回调。
 
(void) - onNERtcEngineUserVideoDidStartWithUserID:videoProfile:
 远端用户开启视频回调。
启用后,用户可以进行视频通话或直播。
 
(void) - onNERtcEngineUserVideoDidStop:
 远端用户停用视频回调。
关闭后,用户只能进行语音通话或者直播。
 
(void) - onNERtcEngineUserSubStreamDidStartWithUserID:subStreamProfile:
 远端用户开启屏幕共享辅流通道的回调。
 
(void) - onNERtcEngineUserSubStreamDidStop:
 远端用户停止屏幕共享辅流通道的回调。
 
(void) - onNERtcEngineMediaRightChangeWithAudio:video:
 服务端禁言音视频权限变化回调。
 
(void) - onNERtcEngineUserSubStreamAudioDidStart:
 远端用户开启音频辅流回调。
 
(void) - onNERtcEngineUserSubStreamAudioDidStop:
 远端用户停用音频辅流回调。
 
(void) - onNERtcEngineUser:subStreamAudioMuted:
 远端用户暂停或恢复发送音频辅流的回调。
 
- 构造函数 继承自 <NERtcEngineVideoFrameObserver>
(void) - onNERtcEngineVideoFrameCaptured:rotation:
 设置视频采集数据回调,用于美颜等操作。 同步返回,Engine 将会继续视频处理流程。
 
- 构造函数 继承自 <NERtcEngineAudioSessionObserver>
(void) - onNERtcEngineAudioDeviceRoutingDidChange:
 音频路由变化回调。
 
- 构造函数 继承自 <NERtcEngineLiveStreamObserver>
(void) - onNERTCEngineLiveStreamState:taskID:url:
 推流状态已改变回调。
 
- 构造函数 继承自 <NERtcEngineVideoSEIObserver>
(void) - onNERtcEngineRecvSEIMsg:message:
 收到远端流的 SEI 内容回调。 当远端成功发送 SEI 后,本端会收到此回调。
 
- 构造函数 继承自 <NERtcEnginePushStreamingObserver>
(void) - onNERtcEngineStartPushStreamingWithResult:channelId:
 startPushStreaming 开始推流的结果回调。
 
(void) - onNERtcEngineStopPushStreaming:
 stopPushStreaming 停止 RTMP 推流的结果回调。
 
(void) - onNERtcEnginePushStreamingChangeToReconnectingWithReason:
 推流过程中推流状态变为重连中的回调
 
(void) - onNERtcEnginePushStreamingReconnectedSuccess
 推流过程中重连成功的回调。
 

详细描述

NERtcEngine 扩展回调。

函数文档

◆ onAudioEffectFinished:

- (void) onAudioEffectFinished: (uint32_t) effectId
optionalrequired

本地音效文件播放已结束回调。

参数
effectId指定音效的 ID。每个音效均有唯一的 ID。

◆ onAudioEffectTimestampUpdateWithId:timeStampMS:

- (void) onAudioEffectTimestampUpdateWithId: (uint32_t) effectId
timeStampMS: (uint64_t) timeStampMS 
optionalrequired

本地用户的指定音效文件播放进度回调。

◆ onAudioMixingStateChanged:errorCode:

- (void) onAudioMixingStateChanged: (NERtcAudioMixingState) state
errorCode: (NERtcAudioMixingErrorCode) errorCode 
optionalrequired

本地用户的音乐文件播放状态改变回调。 调用 startAudioMixing 播放混音音乐文件后,当音乐文件的播放状态发生改变时,会触发该回调。

  • 如果播放音乐文件正常结束,state 会返回相应的状态码 kNERtcAudioMixingStateFinished,error_code 返回 kNERtcAudioMixingErrorOK。
  • 如果播放出错,则返回状态码 kNERtcAudioMixingStateFailed,error_code 返回相应的出错原因。
  • 如果本地音乐文件不存在、文件格式不支持、无法访问在线音乐文件 URL,error_code 都会返回 kNERtcAudioMixingErrorCanNotOpen。
    参数
    state音乐文件播放状态,详细信息请参考 NERtcAudioMixingState
    errorCode错误码,详细信息请参考 NERtcAudioMixingErrorCode

◆ onAudioMixingTimestampUpdate:

- (void) onAudioMixingTimestampUpdate: (uint64_t) timeStampMS
optionalrequired

本地用户的音乐文件播放进度回调。 调用 startAudioMixingWithOption 播放混音音乐文件后,当音乐文件的播放进度改变时,会触发该回调。

参数
timeStampMS音乐文件播放进度,单位为毫秒。

◆ onEngineFirstAudioFrameDecoded:

- (void) onEngineFirstAudioFrameDecoded: (uint64_t) userID
optionalrequired

已接收到远端音频首帧并完成解码的回调。

注解
该回调仅在接收远端用户的音频首帧并完成解码时会触发。
参数
userID远端用户 ID,指定是哪个用户的音频流。

◆ onEngineFirstVideoFrameDecoded:width:height:

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

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

注解
该回调仅在接收远端用户的主流视频首帧并完成解码时会触发,若您希望同时接收到接收辅流的相关通知,请监听 onEngineFirstVideoFrameDecoded:width:height:streamType: 回调。
参数
userID远端用户 ID,指定是哪个用户的视频流。
width首帧视频宽,单位为 px。
height首帧视频高,单位为 px。

◆ onEngineFirstVideoFrameDecoded:width:height:streamType:

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

已接收到远端视频首帧并完成解码的回调。
当 SDK 收到远端视频并解码成功时,会触发该回调。应用层可在该回调中设置此用户的视频画布。

自从
V4.6.20
参数说明
参数名称 类型 描述
userID uint64_t 用户 ID,提示是哪个用户的视频流。
width uint32_t 首帧视频的宽度,单位为 px。
height uint32_t 首帧视频的高度,单位为 px。
type NERtcStreamChannelType 视频通道类型:
  • kNERtcStreamChannelTypeMainStream:主流。
  • kNERtcStreamChannelTypeSubStream:辅流。

◆ onEngineFirstVideoFrameRender:width:height:elapsed:streamType:

- (void) onEngineFirstVideoFrameRender: (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:辅流。

◆ onLocalAudioVolumeIndication:

- (void) onLocalAudioVolumeIndication: (int) volume
optionalrequired

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

参数
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是否检测到人声。

◆ onNERtcCameraExposureChanged:

- (void) onNERtcCameraExposureChanged: (CGPoint) exposurePoint
optionalrequired

摄像头曝光区域已改变回调。 该回调是由本地用户调用 setCameraExposurePosition 方法改变曝光位置触发的。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
exposurePoint新的曝光区域位置。

◆ onNERtcCameraFocusChanged:

- (void) onNERtcCameraFocusChanged: (CGPoint) focusPoint
optionalrequired

摄像头对焦区域已改变回调。 该回调表示相机的对焦区域发生了改变。 该回调是由本地用户调用 setCameraFocusPosition 方法改变对焦位置触发的。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
focusPoint新的对焦区域位置。

◆ onNERtcEngineAudioDeviceStateChangeWithDeviceID:deviceType:deviceState:

- (void) onNERtcEngineAudioDeviceStateChangeWithDeviceID: (NSString *) deviceID
deviceType: (NERtcAudioDeviceType) deviceType
deviceState: (NERtcAudioDeviceState) deviceState 
optionalrequired

音频设备状态已改变回调。

参数
deviceID设备 ID。
deviceType设备类型。详细信息请参考 NERtcAudioDeviceType
deviceState设备状态。详细信息请参考 NERtcAudioDeviceState

◆ onNERtcEngineAudioHasHowling

- (void) onNERtcEngineAudioHasHowling
optionalrequired

弃用
该回调将在未来版本中废弃,请使用- (void)onNERtcEngineAudioHasHowling:flag. 检测到啸叫回调。 当声源与扩音设备之间因距离过近时,可能会产生啸叫。NERTC SDK 支持啸叫检测,当检测到有啸叫信号产生的时候,自动触发该回调直至啸叫停止。App 应用层可以在收到啸叫回调时,提示用户静音麦克风,或直接静音麦克风。
注解
啸叫检测功能一般用于语音聊天室或在线会议等纯人声环境,不推荐在包含背景音乐的娱乐场景中使用。

◆ onNERtcEngineAudioHasHowling:

- (void) onNERtcEngineAudioHasHowling: (BOOL) flag
optionalrequired

检测啸叫回调, 调用 JoinChannel 成功后,会一直周期性触发该回调, 不建议在该回调里做频繁的 API 调用和耗时操作。 当声源与扩音设备之间因距离过近时,可能会产生啸叫。NERTC SDK 支持啸叫检测,当检测到有啸叫信号产生的时候,参数 flag 为 YES,无啸叫时参数 flag 为 NO。App 应用层可以在有啸叫时,提示用户静音麦克风,或直接静音麦克风。

注解
啸叫检测功能一般用于语音聊天室或在线会议等纯人声环境,不推荐在包含背景音乐的娱乐场景中使用。
参数
flag是否检测到啸叫。

◆ onNERtcEngineAudioRecording:filePath:

- (void) onNERtcEngineAudioRecording: (NERtcAudioRecordingCode) code
filePath: (NSString *) filePath 
optionalrequired

音频录制状态回调。

参数
code音频录制状态码。详细信息请参考 NERtcAudioRecordingCode
filePath音频录制文件保存路径。

◆ onNERtcEngineChannelMediaRelayStateDidChange:channelName:

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

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

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

◆ onNERtcEngineDidReceiveChannelMediaRelayEvent:channelName:error:

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

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

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

◆ onNERtcEngineFirstAudioDataDidReceiveWithUserID:

- (void) onNERtcEngineFirstAudioDataDidReceiveWithUserID: (uint64_t) userID
optionalrequired

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

参数
userID远端用户 ID,指定是哪个用户的音频流。

◆ onNERtcEngineFirstVideoDataDidReceiveWithUserID:

- (void) onNERtcEngineFirstVideoDataDidReceiveWithUserID: (uint64_t) userID
optionalrequired

已接收到远端视频首帧回调。 SDK 收到远端第一帧视频并解码成功时,触发此调用。每次重新调用 enableLocalVideo 开启本地视频采集,也会触发该回调(V5.5.10 版本开始)。App 可在此回调中设置该用户的视频画布。

注解
该回调仅在显示远端用户的主流视频首帧时会触发,若您希望同时接收到接收辅流的相关通知,请监听 NERtcEngineDelegateEx#onNERtcEngineFirstVideoDataDidReceiveWithUserID:streamType: 回调。
参数
userID远端用户 ID,指定是哪个用户的视频流。

◆ onNERtcEngineFirstVideoDataDidReceiveWithUserID:streamType:

- (void) onNERtcEngineFirstVideoDataDidReceiveWithUserID: (uint64_t) userID
streamType: (NERtcStreamChannelType) streamType 
optionalrequired

已显示远端视频首帧的回调。

自从
V4.6.20
注解
以下场景都会触发该回调:
  • SDK 收到远端第一帧视频并解码成功时。
  • 重新调用 enableLocalVideo 开启本地视频采集。(V5.5.10 版本开始)
  • 停止屏幕共享后再重新调用 startScreenCapture 接口共享屏幕。(V5.5.10 版本开始)
参数说明
参数名称 类型 描述
userID uint64_t 用户 ID,提示是哪个用户的视频流。
type NERtcStreamChannelType 视频通道类型:
  • kNERtcStreamChannelTypeMainStream:主流。
  • kNERtcStreamChannelTypeSubStream:辅流。

◆ onNERtcEngineHardwareResourceReleased:

- (void) onNERtcEngineHardwareResourceReleased: (NERtcError) result
optionalrequired

硬件资源已释放回调。 如果回调结果成功,表示 SDK 已经完全释放了硬件资源。 您可以在收到回调成功后重新配置或者使用硬件资源,例如 AVAudioSession 等配置。

参数
result释放结果。详细信息请参考 NERtcEngineErrorCode.NERtcError

◆ onNERtcEngineLabFeatureDidCallbackWithKey:param:

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

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

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

◆ onNERtcEngineLastmileProbeTestResult:

- (void) onNERtcEngineLastmileProbeTestResult: (NERtcLastmileProbeResult *) result
optionalrequired

通话前网络上下行 Last mile 质量探测报告回调。
该回调描述本地用户在加入房间前的 last mile 网络探测详细报告,报告中通过客观数据反馈上下行网络质量,包括网络抖动、丢包率等数据。您可以通过该回调客观预测本地用户在音视频通话中的网络状态。
在调用 startLastmileProbeTest 之后,SDK 会在约 30 秒内返回该回调。

自从
V4.5.0
参数
result上下行 Last mile 质量探测结果。

◆ onNERtcEngineLastmileQuality:

- (void) onNERtcEngineLastmileQuality: (NERtcNetworkQuality) quality
optionalrequired

通话前网络上下行 last mile 质量状态回调。
该回调描述本地用户在加入房间前的 last mile 网络探测的结果,以打分形式描述上下行网络质量的主观体验,您可以通过该回调预估本地用户在音视频通话中的网络体验。
在调用 startLastmileProbeTest 之后,SDK 会在约 5 秒内返回该回调。

自从
V4.5.0
参数
quality网络上下行质量,基于上下行网络的丢包率和抖动计算,探测结果主要反映上行网络的状态。

◆ onNERtcEngineLocalFirstAudioPacketSent:

- (void) onNERtcEngineLocalFirstAudioPacketSent: (NERtcAudioStreamType) streamType
optionalrequired

本地第一帧音频发送到远端的回调。

自从
V4.6.61
触发时机
当推流端加入房间或开启本地音频采集后,NERTC SDK 会开始进行音频编码,并向远端发送本地的音频数据,当成功将本地音频的第一帧发往远端时,会触发此回调。
当调用 enableLocalAudio 或 enableMediaPub 重新发布音频流也会触发该回调。
参数说明
参数名称 类型 描述
streamType see NERtcAudioStreamType 音频通道类型:
  • kNERtcAudioStreamMain :音频流主流。
  • kNERtcAudioStreamSub :音频流辅流。

◆ onNERtcEngineLocalPublishFallbackToAudioOnly:streamType:

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

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

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

◆ onNERtcEngineLocalVideoRenderSizeChanged:width:height:

- (void) onNERtcEngineLocalVideoRenderSizeChanged: (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。

◆ onNERtcEngineLocalVideoWatermarkStateWithStreamType:state:

- (void) onNERtcEngineLocalVideoWatermarkStateWithStreamType: (NERtcStreamChannelType) type
state: (NERtcLocalVideoWatermarkState) state 
optionalrequired

本地视频水印生效结果回调。

自从
V4.6.10
参数
type对应的视频流类型,即主流或辅流。详细信息请参考 NERtcStreamChannelType
state水印状态。详细信息请参考 NERtcLocalVideoWatermarkState

◆ onNERtcEngineNetworkConnectionTypeChanged:

- (void) onNERtcEngineNetworkConnectionTypeChanged: (NERtcNetworkConnectionType) newConnectionType
optionalrequired

本地网络类型已改变回调。 本地网络连接类型发生改变时,SDK 会触发该回调,并在回调中声明当前正在使用的网络连接类型。

参数
newConnectionType当前的本地网络类型,详细信息请参考 NERtcNetworkConnectionType

◆ onNERtcEnginePermissionKeyWillExpire

- (void) onNERtcEnginePermissionKeyWillExpire
optionalrequired

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

◆ onNERtcEngineRemoteSubscribeFallbackToAudioOnly:isFallback:streamType:

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

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

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

◆ onNERtcEngineRemoteVideoSizeDidChangedWithUserID:width:height:streamType:

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

接收的远端视频分辨率变化回调。

自从
V5.4.1
触发时机

当远端用户视频流的分辨率发生变化时,会触发此回调,例如推流端调用 SetVideoConfig 更改了编码分辨率设置,本地会收到该远端用户分辨率变化通知。
业务场景
开发者可根据视频流的最新分辨率来更新 UI。
参数说明
参数名称 类型 描述
uid uint64_t 远端用户 ID,指定是哪个用户的视频流。
type NERtcStreamChannelType 视频通道类型:
  • kNERtcStreamChannelTypeMainStream:主流。
  • kNERtcStreamChannelTypeSubStream:辅流。
width uint32_t 视频采集的宽,单位为 px
height uint32_t 视频采集的高,单位为 px

◆ onNERtcEngineUpdatePermissionKey:error:timeout:

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

更新权限密钥事件回调。

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

◆ onNERtcEngineUser:audioMuted:

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

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

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

◆ onNERtcEngineUser:videoMuted:

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

远端用户暂停或恢复发送视频流回调。
当远端用户调用 muteLocalVideo 取消或者恢复发布视频流时,SDK 会触发该回调向本地用户报告远程用户的发流状况。

注解
该回调仅在远端用户的视频主流状态改变时会触发,若您希望同时接收到远端用户视频辅流状态变更的通知,请监听 NERtcEngineDelegateEx#onNERtcEngineUser:videoMuted:streamType: 回调。
参数
userID用户 ID,提示是哪个用户的视频流。
muted是否暂停发送视频流。
  • YES:该用户已暂停发送视频流。 = NO:该用户已恢复发送视频流。

◆ onNERtcEngineUser:videoMuted:streamType:

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

远端用户暂停或恢复发送视频回调。
当远端用户调用 INERtcEngineEx#muteLocalVideo:streamType: 方法取消或者恢复发布视频流时,SDK 会触发该回调向本地用户通知远端用户的发流情况。

自从
V4.6.20
参数说明
参数名称 类型 描述
userID uint64_t 用户 ID,提示是哪个用户的视频流。
muted BOOL 是否暂停发送视频流:
  • YES:该用户已暂停发送视频流。
  • NO:该用户已恢复发送视频流。
streamType NERtcStreamChannelType 视频通道类型:
  • kNERtcStreamChannelTypeMainStream:主流。
  • kNERtcStreamChannelTypeSubStream:辅流。

◆ onNERtcEngineUserDataBufferedAmountChanged:previousAmount:

- (void) onNERtcEngineUserDataBufferedAmountChanged: (uint64_t) userID
previousAmount: (uint64_t) previousAmount 
optionalrequired

远端用户数据通道 buffer 变更回调。

参数
userID远端用户 ID。
previousAmount变更前大小。

◆ onNERtcEngineUserDataDidStart:

- (void) onNERtcEngineUserDataDidStart: (uint64_t) userID
optionalrequired

远端用户开启数据通道的回调。

参数
userID远端用户 ID。
自从
V5.0.0

◆ onNERtcEngineUserDataDidStop:

- (void) onNERtcEngineUserDataDidStop: (uint64_t) userID
optionalrequired

远端用户停用数据通道的回调。

参数
userID远端用户 ID。

◆ onNERtcEngineUserDataReceiveMessage:data:

- (void) onNERtcEngineUserDataReceiveMessage: (uint64_t) userID
data: (NSData *) data 
optionalrequired

远端用户通过数据通道发送数据的回调。

参数
userID远端用户 ID。
data数据。

◆ onNERtcEngineUserDataStateChanged:

- (void) onNERtcEngineUserDataStateChanged: (uint64_t) userID
optionalrequired

远端用户数据通道状态变更回调。

参数
userID远端用户 ID。

◆ onNERtcEngineUserVideoProfileDidUpdate:maxProfile:

- (void) onNERtcEngineUserVideoProfileDidUpdate: (uint64_t) userID
maxProfile: (NERtcVideoProfileType) maxProfile 
optional

远端用户视频编码配置已更新回调。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
userID远端用户 ID。
maxProfile视频编码配置,详细信息请参考 NERtcVideoProfileType

◆ onNERtcEngineVideoDeviceStateChangeWithDeviceID:deviceType:deviceState:

- (void) onNERtcEngineVideoDeviceStateChangeWithDeviceID: (NSString *) deviceID
deviceType: (NERtcVideoDeviceType) deviceType
deviceState: (NERtcVideoDeviceState) deviceState 
optionalrequired

视频设备变化回调。 该回调提示系统视频设备状态发生改变,比如被拔出或移除。如果设备已使用外接摄像头采集,外接摄像头被拔开后,视频会中断。

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
deviceID设备 ID。
deviceType设备类型。详细信息请参考 NERtcAudioDeviceType
deviceState设备状态。详细信息请参考 NERtcAudioDeviceState

◆ onNERtcEngineVirtualBackgroundSourceEnabled:reason:

- (void) onNERtcEngineVirtualBackgroundSourceEnabled: (BOOL) enabled
reason: (NERtcVirtualBackgroundSourceStateReason) reason 
optionalrequired

通知虚拟背景是否成功开启的回调。
调用 INERtcEngineEx#enableVirtualBackground:backData: 接口启用虚拟背景功能后,SDK 会触发此回调。

注解
如果自定义虚拟背景是 PNG 或 JPG 格式的图片,SDK 会在读取图片后才会触发此回调,因此可能存在一定延时。
参数
enabled是否已成功开启虚拟背景。
  • true:成功开启虚拟背景。
  • false:未成功开启虚拟背景。
reason虚拟背景开启出错的原因或开启成功的提示。详细信息请参考 NERtcVirtualBackgroundSourceStateReason

◆ onRemoteAudioVolumeIndication:totalVolume:

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

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

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

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