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

NERtcEngine 扩展回调。 更多...

#import <NERtcEngineDelegate.h>

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

构造函数

(void) - onNERtcEngineUserVideoProfileDidUpdate:maxProfile:
 远端用户视频编码配置已更新回调。 更多...
 
(void) - onNERtcEngineUser:videoMuted:
 远端用户暂停或恢复发送视频流回调。 更多...
 
(void) - onNERtcEngineUser:audioMuted:
 远端用户暂停或恢复发送音频流的回调。 更多...
 
(void) - onNERtcEngineFirstVideoDataDidReceiveWithUserID:
 已接收到远端视频首帧回调。 更多...
 
(void) - onNERtcEngineFirstAudioDataDidReceiveWithUserID:
 已接收到远端音频首帧回调。 更多...
 
(void) - onEngineFirstAudioFrameDecoded:
 已解码远端音频首帧的回调。 更多...
 
(void) - onEngineFirstVideoFrameDecoded:width:height:
 已显示首帧远端视频回调。 更多...
 
(void) - onNERtcEngineAudioDeviceStateChangeWithDeviceID:deviceType:deviceState:
 音频设备状态已改变回调。 更多...
 
(void) - onNERtcEngineVideoDeviceStateChangeWithDeviceID:deviceType:deviceState:
 视频设备变化回调。 更多...
 
(void) - onNERtcEngineNetworkConnectionTypeChanged:
 本地网络类型已改变回调。 更多...
 
(void) - onAudioMixingStateChanged:errorCode:
 本地用户的音乐文件播放状态改变回调。 更多...
 
(void) - onAudioMixingTimestampUpdate:
 本地用户的音乐文件播放进度回调。 更多...
 
(void) - onAudioEffectFinished:
 本地音效文件播放已结束回调。 更多...
 
(void) - onLocalAudioVolumeIndication:
 提示房间内本地用户瞬时音量的回调。 更多...
 
(void) - onRemoteAudioVolumeIndication:totalVolume:
 提示房间内谁正在说话及说话者瞬时音量的回调。 更多...
 
(void) - onNERtcEngineHardwareResourceReleased:
 硬件资源已释放回调。 更多...
 
(void) - onNERtcCameraFocusChanged:
 摄像头对焦区域已改变回调。 更多...
 
(void) - onNERtcCameraExposureChanged:
 摄像头曝光区域已改变回调。 更多...
 
(void) - onNERtcEngineAudioHasHowling
 检测到啸叫回调。 更多...
 
(void) - onNERtcEngineChannelMediaRelayStateDidChange:channelName:
 跨房间媒体流转发状态发生改变回调。 更多...
 
(void) - onNERtcEngineDidReceiveChannelMediaRelayEvent:channelName:error:
 媒体流相关转发事件回调。 更多...
 
(void) - onNERtcEngineAudioRecording:filePath:
 音频录制状态回调。 更多...
 
(void) - onNERtcEngineLocalPublishFallbackToAudioOnly:streamType:
 本地发布流已回退为音频流、或已恢复为音视频流回调。 更多...
 
(void) - onNERtcEngineRemoteSubscribeFallbackToAudioOnly:isFallback:streamType:
 订阅的远端流已回退为音频流、或已恢复为音视频流回调。 更多...
 
- 构造函数 继承自 <NERtcEngineDelegate>
(void) - onNERtcEngineDidError:
 发生错误回调。 更多...
 
(void) - onNERtcEngineDidWarning:msg:
 发生警告回调。 更多...
 
(void) - onNERtcEngineConnectionStateChangeWithState:reason:
 SDK和服务端的连接状态已改变回调。 更多...
 
(void) - onNERtcEngineDidLeaveChannelWithResult:
 退出房间回调。 更多...
 
(void) - onNERtcEngineDidDisconnectWithReason:
 网络连接中断,且 SDK 连续 3 次重连服务器失败。 更多...
 
(void) - onNERtcEngineRejoinChannel:
 重新加入房间回调。 在弱网环境下,若客户端和服务器失去连接,SDK会自动重连。自动重连成功后触发此回调方法。 更多...
 
(void) - onNERtcEngineUserDidJoinWithUserID:userName:
 远端用户加入当前房间回调。 更多...
 
(void) - onNERtcEngineUserDidLeaveWithUserID:reason:
 远端用户离开当前房间回调。 更多...
 
(void) - onNERtcEngineDidClientRoleChanged:newRole:
 直播场景下用户角色已切换回调。 更多...
 
(void) - onNERtcEngineReconnectingStart
 重连开始回调。 更多...
 
(void) - onNERtcEngineUserAudioDidStart:
 远端用户开启音频回调。 更多...
 
(void) - onNERtcEngineUserAudioDidStop:
 远端用户停用音频回调。 更多...
 
(void) - onNERtcEngineUserVideoDidStartWithUserID:videoProfile:
 远端用户开启视频回调。 更多...
 
(void) - onNERtcEngineUserVideoDidStop:
 远端用户停用视频回调。 更多...
 
(void) - onNERtcEngineUserSubStreamDidStartWithUserID:subStreamProfile:
 远端用户开启屏幕共享辅流通道的回调。 更多...
 
(void) - onNERtcEngineUserSubStreamDidStop:
 远端用户停止屏幕共享辅流通道的回调。 更多...
 
- 构造函数 继承自 <NERtcEngineVideoFrameObserver>
(void) - onNERtcEngineVideoFrameCaptured:rotation:
 设置视频采集数据回调,用于美颜等操作。 更多...
 
- 构造函数 继承自 <NERtcEngineAudioSessionObserver>
(void) - onNERtcEngineAudioDeviceRoutingDidChange:
 音频路由变化回调。 更多...
 
- 构造函数 继承自 <NERtcEngineLiveStreamObserver>
(void) - onNERTCEngineLiveStreamState:taskID:url:
 推流状态已改变回调。 更多...
 
- 构造函数 继承自 <NERtcEngineVideoSEIObserver>
(void) - onNERtcEngineRecvSEIMsg:message:
 收到远端流的 SEI 内容回调。 更多...
 

详细描述

NERtcEngine 扩展回调。

函数文档

◆ onAudioEffectFinished:

- (void) onAudioEffectFinished: (uint32_t)  effectId
optional

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

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

◆ onAudioMixingStateChanged:errorCode:

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

本地用户的音乐文件播放状态改变回调。

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

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

◆ onAudioMixingTimestampUpdate:

- (void) onAudioMixingTimestampUpdate: (uint64_t)  timeStampMS
optional

本地用户的音乐文件播放进度回调。

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

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

◆ onEngineFirstAudioFrameDecoded:

- (void) onEngineFirstAudioFrameDecoded: (uint64_t)  userID
optional

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

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

◆ onEngineFirstVideoFrameDecoded:width:height:

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

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

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

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

◆ onLocalAudioVolumeIndication:

- (void) onLocalAudioVolumeIndication: (int)  volume
optional

提示房间内本地用户瞬时音量的回调。

该回调默认禁用。可以通过 enableAudioVolumeIndication 方法开启。

开启后,本地用户说话,SDK 会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。

如果本地用户将自己静音,即调用了 muteLocalAudio,SDK 不再报告该回调。

参数
volume混音后的音量,范围为 0~100。

◆ onNERtcCameraExposureChanged:

- (void) onNERtcCameraExposureChanged: (CGPoint)  exposurePoint
optional

摄像头曝光区域已改变回调。

该回调是由本地用户调用 setCameraExposurePosition方法改变曝光位置触发的。

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

◆ onNERtcCameraFocusChanged:

- (void) onNERtcCameraFocusChanged: (CGPoint)  focusPoint
optional

摄像头对焦区域已改变回调。

该回调表示相机的对焦区域发生了改变。

该回调是由本地用户调用 setCameraFocusPosition 方法改变对焦位置触发的。

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

◆ onNERtcEngineAudioDeviceStateChangeWithDeviceID:deviceType:deviceState:

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

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

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

◆ onNERtcEngineAudioHasHowling

- (void) onNERtcEngineAudioHasHowling
optional

检测到啸叫回调。

当声源与扩音设备之间因距离过近时,可能会产生啸叫。NERTC SDK 支持啸叫检测,当检测到有啸叫信号产生的时候,自动触发该回调直至啸叫停止。App 应用层可以在收到啸叫回调时,提示用户静音麦克风,或直接静音麦克风。

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

◆ onNERtcEngineAudioRecording:filePath:

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

音频录制状态回调。

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

◆ onNERtcEngineChannelMediaRelayStateDidChange:channelName:

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

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

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

◆ onNERtcEngineDidReceiveChannelMediaRelayEvent:channelName:error:

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

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

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

◆ onNERtcEngineFirstAudioDataDidReceiveWithUserID:

- (void) onNERtcEngineFirstAudioDataDidReceiveWithUserID: (uint64_t)  userID
optional

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

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

◆ onNERtcEngineFirstVideoDataDidReceiveWithUserID:

- (void) onNERtcEngineFirstVideoDataDidReceiveWithUserID: (uint64_t)  userID
optional

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

第一帧远端视频显示在视图上时,触发此调用。

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

◆ onNERtcEngineHardwareResourceReleased:

- (void) onNERtcEngineHardwareResourceReleased: (NERtcError result
optional

硬件资源已释放回调。

如果回调结果成功,表示 SDK 已经完全释放了硬件资源。

您可以在收到回调成功后重新配置或者使用硬件资源,例如 AVAudioSession 等配置。

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

◆ onNERtcEngineLocalPublishFallbackToAudioOnly:streamType:

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

本地发布流已回退为音频流、或已恢复为音视频流回调。

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

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

◆ onNERtcEngineNetworkConnectionTypeChanged:

- (void) onNERtcEngineNetworkConnectionTypeChanged: (NERtcNetworkConnectionType newConnectionType
optional

本地网络类型已改变回调。

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

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

◆ onNERtcEngineRemoteSubscribeFallbackToAudioOnly:isFallback:streamType:

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

订阅的远端流已回退为音频流、或已恢复为音视频流回调。

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

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

◆ onNERtcEngineUser:audioMuted:

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

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

参数
userID用户 ID,提示是哪个用户的音频流。
muted是否暂停发送音频流。

◆ onNERtcEngineUser:videoMuted:

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

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

注解
纯音频 SDK 禁用该接口,如需使用请前往云信官网下载并替换成视频 SDK。
参数
userID用户 ID,提示是哪个用户的视频流。
muted是否暂停发送视频流。

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

视频设备变化回调。

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

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

◆ onRemoteAudioVolumeIndication:totalVolume:

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

提示房间内谁正在说话及说话者瞬时音量的回调。

该回调默认为关闭状态。可以通过 enableAudioVolumeIndication 方法开启。开启后,无论房间内是否有人说话,SDK 都会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。

在返回的数组中:

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

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