NERtc Unreal SDK V.5.4.124
|
#include <INertcEngineEventHandler.h>
Public 成员函数 | |
virtual | ~IRtcEngineEventHandler () |
virtual void | onError (int error_code, const char *msg) |
virtual void | onWarning (int warn_code, const char *msg) |
virtual void | onApiCallExecuted (const char *api_name, NERtcErrorCode error_code, const char *message) |
virtual void | onReleasedHwResources (NERtcErrorCode result) |
virtual void | onJoinChannel (channel_id_t cid, uid_t uid, NERtcErrorCode result, uint64_t elapsed) |
virtual void | onReconnectingStart (channel_id_t cid, uid_t uid) |
virtual void | onConnectionStateChange (NERtcConnectionStateType state, NERtcReasonConnectionChangedType reason) |
virtual void | onNetworkTypeChanged (NERtcNetworkType new_type) |
virtual void | onRejoinChannel (channel_id_t cid, uid_t uid, NERtcErrorCode result, uint64_t elapsed) |
virtual void | onLeaveChannel (NERtcErrorCode result, uint64_t channel_id) |
virtual void | onDisconnect (NERtcErrorCode reason) |
virtual void | onClientRoleChanged (NERtcClientRole oldRole, NERtcClientRole newRole) |
virtual void | onUserJoined (uid_t uid, const char *user_name, const NERtcUserJoinExtraInfo &custom_info) |
virtual void | onUserLeft (uid_t uid, NERtcSessionLeaveReason reason, const NERtcUserJoinExtraInfo &custom_info) |
virtual void | onUserAudioStart (NERtcAudioStreamType type, uid_t uid) |
virtual void | onUserAudioStop (NERtcAudioStreamType type, uid_t uid) |
virtual void | onUserVideoStart (NERtcVideoStreamType type, uid_t uid, NERtcVideoProfileType max_profile) |
virtual void | onUserVideoStop (NERtcVideoStreamType type, uid_t uid) |
virtual void | onScreenCaptureStatusChanged (NERtcScreenCaptureStatus status) |
virtual void | onUserVideoProfileUpdate (uid_t uid, NERtcVideoProfileType max_profile) |
virtual void | onUserAudioMute (NERtcAudioStreamType type, uid_t uid, bool mute) |
virtual void | onUserVideoMute (NERtcVideoStreamType type, uid_t uid, bool mute) |
virtual void | onAudioDeviceRoutingDidChange (NERtcAudioOutputRouting routing) |
virtual void | onAudioDeviceStateChanged (const char *device_id, NERtcAudioDeviceType device_type, NERtcAudioDeviceState device_state) |
virtual void | onAudioDefaultDeviceChanged (const char *device_id, NERtcAudioDeviceType device_type) |
virtual void | onVideoDeviceStateChanged (const char *device_id, NERtcVideoDeviceType device_type, NERtcVideoDeviceState device_state) |
virtual void | onCameraFocusChanged (const NERtcCameraFocusAndExposureInfo &info) |
virtual void | onCameraExposureChanged (const NERtcCameraFocusAndExposureInfo &info) |
virtual void | onFirstAudioDataReceived (NERtcAudioStreamType type, uid_t uid) |
virtual void | onFirstVideoDataReceived (NERtcVideoStreamType type, uid_t uid) |
virtual void | onFirstAudioFrameDecoded (NERtcAudioStreamType type, uid_t uid) |
virtual void | onFirstVideoFrameDecoded (NERtcVideoStreamType type, uid_t uid, uint32_t width, uint32_t height) |
void | onCaptureVideoFrame (void *data, NERtcVideoType type, uint32_t width, uint32_t height, uint32_t count, uint32_t *offset, uint32_t *stride, NERtcVideoRotation rotation) |
virtual void | onAudioMixingStateChanged (NERtcAudioMixingState state, NERtcAudioMixingErrorCode error_code) |
virtual void | onAudioMixingTimestampUpdate (uint64_t timestamp_ms) |
virtual void | onAudioEffectTimestampUpdate (uint32_t effect_id, uint64_t timestamp_ms) |
virtual void | onAudioEffectFinished (uint32_t effect_id) |
virtual void | onLocalAudioVolumeIndication (int volume, bool enable_vad) |
virtual void | onRemoteAudioVolumeIndication (const NERtcAudioVolumeInfo *speakers, uint32_t speaker_number, int total_volume) |
virtual void | onAddLiveStreamTask (const char *task_id, const char *url, int error_code) |
virtual void | onUpdateLiveStreamTask (const char *task_id, const char *url, int error_code) |
virtual void | onRemoveLiveStreamTask (const char *task_id, int error_code) |
virtual void | onLiveStreamStateChanged (const char *task_id, const char *url, NERtcLiveStreamStateCode state) |
virtual void | onAudioHowling (bool howling) |
virtual void | onRecvSEIMsg (uid_t uid, const uint8_t *data, uint32_t dataSize) |
virtual void | onAudioRecording (NERtcAudioRecordingCode code, const char *file_path) |
virtual void | onMediaRelayStateChanged (NERtcChannelMediaRelayState state, const char *channel_name) |
virtual void | onMediaRelayEvent (NERtcChannelMediaRelayEvent event, const char *channel_name, NERtcErrorCode error) |
virtual void | onPublishFallbackToAudioOnly (bool is_fallback, NERtcVideoStreamType type) |
virtual void | onSubscribeFallbackToAudioOnly (uid_t uid, bool is_fallback, NERtcVideoStreamType type) |
virtual void | onLastmileQuality (NERtcNetworkQualityType quality) |
virtual void | onLastmileProbeResult (const NERtcLastmileProbeResult &result) |
virtual void | onMediaRightChange (bool is_audio_banned, bool is_video_banned) |
virtual void | onCheckNECastAudioDriverResult (NERtcInstallCastAudioDriverResult result) |
virtual void | onVirtualBackgroundSourceEnabled (bool enabled, NERtcVirtualBackgroundSourceStateReason reason) |
virtual void | onLocalVideoWatermarkState (NERtcVideoStreamType type, NERtcLocalVideoWatermarkState state) |
virtual void | onPermissionKeyWillExpire () |
virtual void | onUpdatePermissionKey (const char *key, NERtcErrorCode error, int timeout) |
virtual void | onUserDataReceiveMessage (uid_t uid, const char *source_id, void *data, uint64_t size) |
virtual void | onUserDataStart (uid_t uid) |
virtual void | onUserDataStop (uid_t uid) |
virtual void | onUserDataStateChanged (uid_t uid, const char *source_id) |
virtual void | onUserDataBufferedAmountChanged (uid_t uid, const char *sourceId, uint64_t previousAmount) |
IRtcEngineEventHandler 回调接口类用于 SDK 向 App 发送回调事件通知,App 通过继承该接口类的方法获取 SDK 的事件通知。 接口类的所有方法都有缺省(空)实现,App 可以根据需要只继承关心的事件。在回调方法中,App 不应该做耗时或者调用可能会引起阻塞的。 API(如开启音频或视频等),否则可能影响 SDK 的运行。
|
inlinevirtual |
|
inlinevirtual |
发生错误回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。
error_code | 错误码。详细信息请参考 NERtcDMErrorCode。 |
msg | 错误信息。 |
|
inlinevirtual |
发生警告回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)警告。通常情况下,SDK 上报的警告信息 App 可以忽略,SDK 会自动恢复。
warn_code | 警告码。详细信息请参考 NERtcWarnCode 。 |
msg | 警告描述。 |
|
inlinevirtual |
API 调用结束回调。
该回调方法表示 SDK 执行完了一个用户的 API 调用。
api_name | API 名称。 |
error_code | API 执行结果错误码。 |
message | API 执行结果描述。 |
|
inlinevirtual |
释放硬件资源的回调。
SDK 提示释放硬件资源是否成功。
result | 返回结果。 |
|
inlinevirtual |
加入房间回调,表示客户端已经登入服务器。
cid | 客户端加入的房间 ID。 |
uid | 用户 ID。如果在 joinChannel 方法中指定了 uid,此处会返回指定的 ID。如果未指定 uid,此处将返回云信服务器自动分配的 ID。 |
result | 返回结果。 |
elapsed | 从 joinChannel 开始到发生此事件过去的时间,单位为毫秒。 |
|
inlinevirtual |
触发重连。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,开始自动重连后触发此回调。
cid | 房间 ID。 |
uid | 用户 ID。 |
|
inlinevirtual |
网络连接状态已改变回调。
该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态和引起网络状态改变的原因。
state | 当前的网络连接状态。 |
reason | 引起当前网络连接状态发生改变的原因。 |
|
inlinevirtual |
网络类型已经改变的回调。
该回调在网络发生改变的时候触发,并告知用户当前的网络类型。
new_type | 当前的网络类型。 |
|
inlinevirtual |
重新加入房间回调。
在弱网环境下,若客户端和服务器失去连接,SDK 会自动重连。自动重连成功后触发此回调方法。
cid | 客户端加入的房间 ID。 |
uid | 用户 ID。 |
result | 返回结果。 |
elapsed | 从开始重连到发生此事件过去的时间,单位为毫秒。 |
|
inlinevirtual |
退出房间回调。
App 调用 leaveChannel 方法后,SDK 提示 App 退出房间是否成功。
result | 返回结果。 |
channel_id | 离开的 channel 的 ID。 |
|
inlinevirtual |
网络连接中断。
reason | 网络连接中断原因。 |
|
inlinevirtual |
直播场景下用户角色已切换回调。
本地用户加入房间后,通过 setClientRole 切换用户角色后会触发此回调。例如主播切换为观众、从观众切换为主播。
oldRole | 切换前的角色。 |
newRole | 切换后的角色。 |
|
inlinevirtual |
远端用户加入当前房间回调。
该回调提示有远端用户加入了房间,并返回新加入用户的。 ID。如果加入之前,已经有其他用户在房间中了,新加入的用户也会收到这些已有用户加入房间的回调。
uid | 新加入房间的远端用户 ID。 |
user_name | 新加入房间的远端用户名。 |
custom_info | 该远端用户加入的额外信息。 |
|
inlinevirtual |
远端用户离开当前房间的回调。
提示有远端用户离开了房间(或掉线)。通常情况下,用户离开房间有两个原因,即正常离开和超时掉线:
uid | 离开房间的远端用户 ID。 |
reason | 远端用户离开原因。 |
custom_info | 该远端用户离开的额外信息。 |
|
inlinevirtual |
远端用户开启音频的回调。
type | 远端用户流类型。 |
uid | 远端用户 ID。 |
|
inlinevirtual |
远端用户停用音频的回调。
type | 远端用户音频流类型。 |
uid | 远端用户 ID。 |
|
inlinevirtual |
远端用户开启视频的回调。
type | 远端用户流类型。 |
uid | 远端用户 ID。 |
max_profile | 视频编码的分辨率,用于衡量编码质量。 |
|
inlinevirtual |
远端用户停用视频的回调。
type | 远端用户流类型。 |
uid | 远端用户 ID。 |
|
inlinevirtual |
|
inlinevirtual |
uid | 远端用户 ID。 |
max_profile | 视频编码的分辨率,用于衡量编码质量。 |
|
inlinevirtual |
远端用户是否静音的回调。
type | 音频流类型。 |
uid | 远端用户 ID。 |
mute | 是否静音。 |
|
inlinevirtual |
远端用户暂停或恢复发送视频流的回调。
type | 视频流类型。 |
uid | 远端用户 ID。 |
mute | 是否禁视频流。 |
|
inlinevirtual |
音频路由变化回调。
routing | 当前音频输出路由。 |
|
inlinevirtual |
音频设备状态更改的回调。
device_id | 设备 ID。 |
device_type | 音频设备类型。详细信息请参考 NERtcAudioDeviceType_t。 |
device_state | 音频设备状态。 |
|
inlinevirtual |
音频默认设备更改的回调。
device_id | 设备 ID。 |
device_type | 音频设备类型。 |
|
inlinevirtual |
视频设备状态已改变的回调。
device_id | 设备 ID。 |
device_type | 视频设备类型。 |
device_state | 视频设备状态。 |
|
inlinevirtual |
摄像头对焦区域已改变回调。 该回调表示相机的对焦区域发生了改变。 该回调是由本地用户调用 setCameraFocusPosition 方法改变对焦位置触发的。
info | 新的对焦区域位置。 |
|
inlinevirtual |
摄像头曝光区域已改变回调。 该回调是由本地用户调用 setCameraExposurePosition 方法改变曝光位置触发的。
info | 新的曝光区域位置信息。 |
|
inlinevirtual |
已接收到远端音频首帧的回调。
type | 音频流类型。 |
uid | 远端用户 ID,指定是哪个用户的音频流。 |
|
inlinevirtual |
已显示首帧远端视频的回调。 第一帧远端视频显示在视图上时,触发此调用。
type | 视频流类型。 |
uid | 用户 ID,指定是哪个用户的视频流。 |
|
inlinevirtual |
已解码远端音频首帧的回调。
type | 视频流类型。 |
uid | 远端用户 ID,指定是哪个用户的音频流。 |
|
inlinevirtual |
已接收到远端视频并完成解码的回调。
引擎收到第一帧远端视频流并解码成功时,触发此调用。
type | 视频频流类型。 |
uid | 用户 ID,指定是哪个用户的视频流。 |
width | 视频流宽(px)。 |
height | 视频流高(px)。 |
|
inline |
采集视频数据回调。
data | 采集视频数据。 |
type | 视频类型。 |
width | 视频宽度。 |
height | 视频高度。 |
count | 视频 Plane Count。 |
offset | 视频 offset。 |
stride | 视频 stride。 |
rotation | 视频旋转角度。 |
|
inlinevirtual |
本地用户的音乐文件播放状态改变回调。
调用 startAudioMixing 播放混音音乐文件后,当音乐文件的播放状态发生改变时,会触发该回调。
state | 音乐文件播放状态,参考 NERtcAudioMixingState 。 |
error_code | 错误码,参考 NERtcAudioMixingErrorCode 。 |
|
inlinevirtual |
本地用户的音乐文件播放进度回调。
调用 startAudioMixing 播放混音音乐文件后,当音乐文件的播放进度改变时,会触发该回调。
timestamp_ms | 音乐文件播放进度,单位为毫秒。 |
|
inlinevirtual |
本地用户的指定音效文件播放进度回调。
参数名称 | 类型 | 说明 |
---|---|---|
effect_id | uint32_t | 指定音效文件的 ID。每个音效均有唯一的 ID。 |
timestamp_ms | uint64_t | 指定音效文件的当前播放进度。单位为毫秒。 |
|
inlinevirtual |
本地音效文件播放已结束回调。
当播放音效结束后,会触发该回调。
effect_id | 指定音效的 ID。每个音效均有唯一的 ID。 |
|
inlinevirtual |
提示房间内本地用户瞬时音量的回调。
volume | (混音后的)音量,取值范围为 [0,100]。 |
enable_vad | 是否检测到人声。 |
|
inlinevirtual |
提示房间内谁正在说话及说话者瞬时音量的回调。
该回调默认为关闭状态。可以通过 enableAudioVolumeIndication 方法开启。开启后,无论房间内是否有人说话,SDK 都会按。 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。
在返回的 speakers 数组中:
speakers | 每个说话者的用户 ID 和音量信息的数组:NERtcAudioVolumeInfo |
speaker_number | speakers 数组的大小,即说话者的人数。 |
total_volume | (混音后的)总音量,取值范围为 [0,100]。 |
|
inlinevirtual |
通知添加直播任务结果。
该回调异步返回 addLiveStreamTask 接口的调用结果。实际推流状态参考 onLiveStreamState
task_id | 任务 ID。 |
url | 推流地址。 |
error_code | 结果。
|
|
inlinevirtual |
通知更新直播任务结果。 该回调异步返回 updateLiveStreamTask 接口的调用结果。实际推流状态参考 onLiveStreamState
task_id | 任务 ID。 |
url | 推流地址。 |
error_code | 结果。
|
|
inlinevirtual |
通知删除直播任务结果。
该回调异步返回 removeLiveStreamTask 接口的调用结果。实际推流状态参考 onLiveStreamState
task_id | 任务 ID。 |
error_code | 结果。
|
|
inlinevirtual |
通知直播推流状态。
task_id | 任务 ID。 |
url | 推流地址。 |
state | NERtcLiveStreamStateCode, 直播推流状态。
|
|
inlinevirtual |
检测到啸叫回调。
当声源与扩音设备之间因距离过近时,可能会产生啸叫。NERTC SDK 支持啸叫检测,当检测到有啸叫信号产生的时候,自动触发该回调直至啸叫停止。App 应用层可以在收到啸叫回调时,提示用户静音麦克风,或直接静音麦克风。
howling | 是否出现啸叫。
|
|
inlinevirtual |
收到远端流的 SEI 内容回调。
当远端成功发送 SEI 后,本端会收到此回调。
[in] | uid | 发送该 sei 的用户 ID。 |
[in] | data | 接收到的 sei 数据。 |
[in] | dataSize | 接收到 sei 数据的大小。 |
|
inlinevirtual |
音频录制状态回调。
code | 音频录制状态码。详细信息请参考 NERtcAudioRecordingCode。 |
file_path | 音频录制文件保存路径。 |
|
inlinevirtual |
跨房间媒体流转发状态发生改变回调。
state | 当前跨房间媒体流转发状态。详细信息请参考 NERtcChannelMediaRelayState |
channel_name | 媒体流转发的目标房间名。 |
|
inlinevirtual |
媒体流相关转发事件回调。
event | 当前媒体流转发事件。详细信息请参考 NERtcChannelMediaRelayEvent 。 |
channel_name | 转发的目标房间名。 |
error | 相关错误码。详细信息请参考 NERtcErrorCode 。 |
|
inlinevirtual |
本地发布流已回退为音频流、或已恢复为音视频流回调。
如果您调用了设置本地推流回退选项 setLocalPublishFallbackOption 接口,并将 option 设置为 kNERtcStreamFallbackAudioOnly 后,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。
is_fallback | 本地发布流已回退或已恢复。
|
type | 对应的视频流类型,即主流或辅流。 |
|
inlinevirtual |
订阅的远端流已回退为音频流、或已恢复为音视频流回调。
如果您调用了设置远端订阅流回退选项 setRemoteSubscribeFallbackOption 接口并将 option 设置 kNERtcStreamFallbackAudioOnly 后,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
uid | 远端用户的 ID。 |
is_fallback | 远端订阅流已回退或恢复:
|
type | 对应的视频流类型,即主流或辅流。 |
|
inlinevirtual |
通话前网络上下行 last mile 质量状态回调。
该回调描述本地用户在加入房间前的 last mile 网络探测的结果,以打分形式描述上下行网络质量的主观体验,您可以通过该回调预估本地用户在音视频通话中的网络体验。
在调用 startLastmileProbeTest 之后,SDK 会在约 5 秒内返回该回调。
quality | 网络上下行质量,基于上下行网络的丢包率和抖动计算,探测结果主要反映上行网络的状态。 |
|
inlinevirtual |
通话前网络上下行 Last mile 质量探测报告回调。
该回调描述本地用户在加入房间前的 last mile 网络探测详细报告,报告中通过客观数据反馈上下行网络质量,包括网络抖动、丢包率等数据。您可以通过该回调客观预测本地用户在音视频通话中的网络状态。
在调用 startLastmileProbeTest 之后,SDK 会在约 30 秒内返回该回调。
result | 上下行 Last mile 质量探测结果。 |
|
inlinevirtual |
服务端禁言音视频权限变化回调。
is_audio_banned | 是否禁用音频。
|
is_video_banned | 是否禁用视频。
|
|
inlinevirtual |
收到检测安装声卡的内容回调(仅适用于 Mac 系统)。
在 Mac 系统上,您可以通过调用 checkNECastAudioDriver 为当前系统安装一个音频驱动,并让 SDK 通过该音频驱动捕获当前 Mac 系统播放出的声音。
result | 安装虚拟声卡的结果。详细信息请参考 NERtcInstallCastAudioDriverResult 。 |
|
inlinevirtual |
通知虚拟背景功能是否成功启用的回调。
调用 enableVirtualBackground 方法后,SDK 返回此回调通知虚拟背景功能是否成功启用。
enabled | 是否成功启用虚拟背景。
|
reason | 虚拟背景功能未成功启用的原因或成功启用虚拟背景功能的通知。详细信息请参考 NERtcVirtualBackgroundSourceStateReason 。 |
|
inlinevirtual |
本地视频水印生效结果回调。
调用 setLocalVideoWatermarkConfigs 接口启用本地视频水印后,SDK 会触发此回调。
type | 对应的视频流类型,即主流或辅流。详细信息请参考 NERtcVideoStreamType 。 |
state | 水印状态。详细信息请参考 NERtcLocalVideoWatermarkState 。 |
|
inlinevirtual |
权限密钥即将过期事件回调。
|
inlinevirtual |
更新权限密钥事件回调。
参数名称 | 类型 | 说明 |
---|---|---|
key | const char* | 新的权限密钥。 |
error | NERtcErrorCode | 错误码。
|
timeout | int | 更新后的权限密钥剩余有效时间。单位为秒。 |
|
inlinevirtual |
远端用户通过数据通道发送数据的回调。
uid | 远端用户 ID。 |
source_id | 远端 source ID。 |
data | 数据。 |
size | 接收数据长度。 |
|
inlinevirtual |
远端用户开启数据通道的回调。
uid | 远端用户 ID。 |
|
inlinevirtual |
远端用户停用数据通道的回调。
uid | 远端用户 ID。 |
|
inlinevirtual |
远端用户数据通道状态变更回调。
uid | 远端用户 ID。 |
source_id | 远端用户 source ID。 |
|
inlinevirtual |
远端用户数据通道 buffer 变更回调。
uid | 远端用户 ID。 |
sourceId | 远端用户 source ID。 |
previousAmount | 变更前大小。 |