NERtc macOS SDK V5.6.30
|
#include <nertc_engine_event_handler_ex.h>
Public 成员函数 | |
virtual void | onUserSubStreamVideoStart (uid_t uid, NERtcVideoProfileType max_profile) |
virtual void | onUserSubStreamVideoStop (uid_t uid) |
virtual void | onScreenCaptureStatus (NERtcScreenCaptureStatus status) |
virtual void | onScreenCaptureSourceDataUpdate (NERtcScreenCaptureSourceData data) |
virtual void | onUserVideoProfileUpdate (uid_t uid, NERtcVideoProfileType max_profile) |
virtual void | onUserSubStreamAudioStart (uid_t uid) |
virtual void | onUserSubStreamAudioStop (uid_t uid) |
virtual void | onUserAudioMute (uid_t uid, bool mute) |
virtual void | onUserSubStreamAudioMute (uid_t uid, bool mute) |
virtual void | onUserVideoMute (uid_t uid, bool mute) |
virtual void | onUserVideoMute (NERtcVideoStreamType videoStreamType, uid_t uid, bool mute) |
virtual void | onAudioDeviceStateChanged (const char device_id[kNERtcMaxDeviceIDLength], NERtcAudioDeviceType device_type, NERtcAudioDeviceState device_state) |
virtual void | onAudioDefaultDeviceChanged (const char device_id[kNERtcMaxDeviceIDLength], NERtcAudioDeviceType device_type) |
virtual void | onVideoDeviceStateChanged (const char device_id[kNERtcMaxDeviceIDLength], NERtcVideoDeviceType device_type, NERtcVideoDeviceState device_state) |
virtual void | onFirstAudioDataReceived (uid_t uid) |
virtual void | onFirstVideoDataReceived (uid_t uid) |
virtual void | onFirstVideoDataReceived (NERtcVideoStreamType type, uid_t uid) |
virtual void | onRemoteVideoReceiveSizeChanged (uid_t uid, NERtcVideoStreamType type, uint32_t width, uint32_t height) |
virtual void | onLocalVideoRenderSizeChanged (NERtcVideoStreamType type, uint32_t width, uint32_t height) |
virtual void | onFirstAudioFrameDecoded (uid_t uid) |
virtual void | onFirstVideoFrameDecoded (uid_t uid, uint32_t width, uint32_t height) |
virtual void | onFirstVideoFrameDecoded (NERtcVideoStreamType type, uid_t uid, uint32_t width, uint32_t height) |
virtual void | onFirstVideoFrameRender (NERtcVideoStreamType type, uid_t uid, uint32_t width, uint32_t height, uint64_t elapsed) |
virtual void | onCaptureVideoFrame (void *data, NERtcVideoType type, uint32_t width, uint32_t height, uint32_t count, uint32_t offset[kNERtcMaxPlaneCount], uint32_t stride[kNERtcMaxPlaneCount], 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) |
virtual void | onLocalAudioVolumeIndication (int volume, bool enable_vad) |
virtual void | onRemoteAudioVolumeIndication (const NERtcAudioVolumeInfo *speakers, unsigned int 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 | onLiveStreamState (const char *task_id, const char *url, NERtcLiveStreamStateCode state) |
virtual void | onAudioHowling (bool howling) |
virtual void | onRecvSEIMsg (uid_t uid, const char *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 | onLocalPublishFallbackToAudioOnly (bool is_fallback, NERtcVideoStreamType stream_type) |
virtual void | onRemoteSubscribeFallbackToAudioOnly (uid_t uid, bool is_fallback, NERtcVideoStreamType stream_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 videoStreamType, NERtcLocalVideoWatermarkState state) |
virtual void | onPermissionKeyWillExpire () |
virtual void | onUpdatePermissionKey (const char *key, NERtcErrorCode error, int timeout) |
virtual void | onUserDataReceiveMessage (uid_t uid, void *pData, uint64_t size) |
virtual void | onUserDataStart (uid_t uid) |
virtual void | onUserDataStop (uid_t uid) |
virtual void | onUserDataStateChanged (uid_t uid) |
virtual void | onUserDataBufferedAmountChanged (uid_t uid, uint64_t previousAmount) |
virtual void | onLabFeatureCallback (const char *key, const char *param) |
virtual void | onStartPushStreaming (NERtcErrorCode result, channel_id_t cid) |
virtual void | onStopPushStreaming (NERtcErrorCode result) |
virtual void | onPushStreamingChangeToReconnecting (NERtcErrorCode reason) |
virtual void | onPushStreamingReconnectedSuccess () |
Public 成员函数 继承自 nertc::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, 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 | onRejoinChannel (channel_id_t cid, uid_t uid, NERtcErrorCode result, uint64_t elapsed) |
virtual void | onLeaveChannel (NERtcErrorCode result) |
virtual void | onDisconnect (NERtcErrorCode reason) |
virtual void | onClientRoleChanged (NERtcClientRole oldRole, NERtcClientRole newRole) |
virtual void | onUserJoined (uid_t uid, const char *user_name) |
virtual void | onUserJoined (uid_t uid, const char *user_name, NERtcUserJoinExtraInfo join_extra_info) |
virtual void | onUserLeft (uid_t uid, NERtcSessionLeaveReason reason) |
virtual void | onUserLeft (uid_t uid, NERtcSessionLeaveReason reason, NERtcUserJoinExtraInfo leave_extra_info) |
virtual void | onUserAudioStart (uid_t uid) |
virtual void | onUserAudioStop (uid_t uid) |
virtual void | onUserVideoStart (uid_t uid, NERtcVideoProfileType max_profile) |
virtual void | onUserVideoStop (uid_t uid) |
IRtcEngineEventHandlerEx 回调扩展接口类用于 SDK 向 App 发送回调事件通知,App 通过继承该接口类的方法获取 SDK 的事件通知。
接口类的所有方法都有缺省(空)实现,App 可以根据需要只继承关心的事件。在回调方法中,App 不应该做耗时或者调用可能会引起阻塞的 API(如开启音频或视频等),否则可能影响 SDK 的运行。
|
inlinevirtual |
通知添加直播任务结果。
该回调异步返回 addLiveStreamTask 接口的调用结果;实际推流状态参考 onLiveStreamState
task_id | 任务 ID |
url | 推流地址 |
error_code | 结果
|
|
inlinevirtual |
音频默认设备更改的回调。
device_id | 设备 ID。 |
device_type | 音频设备类型。 |
|
inlinevirtual |
音频设备状态更改的回调。
device_id | 设备 ID。 |
device_type | 音频设备类型。详细信息请参考 NERtcAudioDeviceType。 |
device_state | 音频设备状态。 |
|
inlinevirtual |
本地音效文件播放已结束回调。
当播放音效结束后,会触发该回调。
effect_id | 指定音效的 ID。每个音效均有唯一的 ID。 |
|
inlinevirtual |
本地用户的指定音效文件播放进度回调。
参数名称 | 类型 | 描述 |
---|---|---|
effect_id | uint32_t | 指定音效文件的 ID。每个音效均有唯一的 ID。 |
timestamp_ms | uint64_t | 指定音效文件的当前播放进度。单位为毫秒。 |
|
inlinevirtual |
检测到啸叫回调。
如果检测到啸叫,会发送 onAudioHasHowling(true) 回调。周期性上报检测结果,无啸叫时返回 onAudioHasHowling(false)回调。
当声源与扩音设备之间因距离过近时,可能会产生啸叫。NERTC SDK 支持啸叫检测,当检测到有啸叫信号产生的时候,自动触发该回调直至啸叫停止。App 应用层可以在收到啸叫回调时,提示用户静音麦克风,或直接静音麦克风。
howling | 是否出现啸叫
|
|
inlinevirtual |
本地用户的音乐文件播放状态改变回调。
调用 startAudioMixing 播放混音音乐文件后,当音乐文件的播放状态发生改变时,会触发该回调。
state | 音乐文件播放状态,参考 NERtcAudioMixingState. |
error_code | 错误码,参考 NERtcAudioMixingErrorCode. |
|
inlinevirtual |
本地用户的音乐文件播放进度回调。
调用 startAudioMixing 播放混音音乐文件后,当音乐文件的播放进度改变时,会触发该回调。
timestamp_ms | 音乐文件播放进度,单位为毫秒 |
|
inlinevirtual |
音频录制状态回调。
code | 音频录制状态码。详细信息请参考 NERtcAudioRecordingCode。 |
file_path | 音频录制文件保存路径。 |
|
inlinevirtual |
采集视频数据回调。
调用本接口采集视频数据回调之前,请先调用 setParameters:接口,将 kNERtcKeyEnableVideoCaptureObserver 的值设置为 YES,开启摄像头采集数据的回调。
data | 采集视频数据。 |
type | 视频类型。 |
width | 视频宽度。 |
height | 视频高度。 |
count | 视频 Plane Count。 |
offset | 视频 offset。 |
stride | 视频 stride。 |
rotation | 视频旋转角度。 |
|
inlinevirtual |
收到检测安装声卡的内容回调(仅适用于 Mac 系统)。
在 Mac 系统上,您可以通过调用 checkNECastAudioDriver 为当前系统安装一个音频驱动,并让 SDK 通过该音频驱动捕获当前 Mac 系统播放出的声音。
result | 安装虚拟声卡的结果。详细信息请参考 NERtcInstallCastAudioDriverResult 。 |
|
inlinevirtual |
已接收到远端音频首帧的回调。
uid | 远端用户 ID,指定是哪个用户的音频流。 |
|
inlinevirtual |
已解码远端音频首帧的回调。
uid | 远端用户 ID,指定是哪个用户的音频流。 |
|
inlinevirtual |
已显示首帧远端视频的回调。
当远端视频的第一帧画面显示在视窗上时,会触发此回调。
参数名称 | 类型 | 描述 |
---|---|---|
type | see NERtcVideoStreamType | 视频通道类型:
|
uid | uid_t | 用户 ID,提示是哪个用户的视频流。 |
|
inlinevirtual |
已显示首帧远端视频的回调。 第一帧远端视频显示在视图上时,触发此调用。
uid | 用户 ID,指定是哪个用户的视频流。 |
|
inlinevirtual |
已接收到远端视频首帧并完成解码的回调。
应用层可在该回调中设置此用户的视频画布。
参数名称 | 类型 | 描述 |
---|---|---|
type | see NERtcVideoStreamType | 视频通道类型:
|
uid | uid_t | 用户 ID,提示是哪个用户的视频流。 |
width | uint32_t | 首帧视频的宽度,单位为 px。 |
height | uint32_t | 首帧视频的高度,单位为 px。 |
|
inlinevirtual |
已接收到远端视频并完成解码的回调。
引擎收到第一帧远端视频流并解码成功时,触发此调用。每次重新调用 enableLocalVideo 开启本地视频采集,也会触发该回调。(V5.5.10 版本开始)
uid | 用户 ID,指定是哪个用户的视频流。 |
width | 视频流宽(px)。 |
height | 视频流高(px)。 |
|
inlinevirtual |
已接收到远端视频首帧并完成渲染的回调。
当 SDK 收到远端视频的第一帧并渲染成功时,会触发该回调。
参数名称 | 类型 | 描述 |
---|---|---|
type | see NERtcVideoStreamType | 视频通道类型:
|
uid | uid_t | 用户 ID,提示是哪个用户的视频流。 |
width | uint32_t | 首帧视频的宽度,单位为 px。 |
height | uint32_t | 首帧视频的高度,单位为 px。 |
elapsed | uint64_t | 从订阅动作开始到发生此事件过去的时间(毫秒)。 |
|
inlinevirtual |
实验功能回调接口,用于回调一些非正式的事件及数据通知。
key | 返回回调类型。 |
param | 值内容。对应字符串的参数值,如果是结构体对象,需要转成 json 格式。 |
|
inlinevirtual |
通话前网络上下行 Last mile 质量探测报告回调。
该回调描述本地用户在加入房间前的 last mile 网络探测详细报告,报告中通过客观数据反馈上下行网络质量,包括网络抖动、丢包率等数据。您可以通过该回调客观预测本地用户在音视频通话中的网络状态。
在调用 startLastmileProbeTest 之后,SDK 会在约 30 秒内返回该回调。
result | 上下行 Last mile 质量探测结果。 |
|
inlinevirtual |
通话前网络上下行 last mile 质量状态回调。
该回调描述本地用户在加入房间前的 last mile 网络探测的结果,以打分形式描述上下行网络质量的主观体验,您可以通过该回调预估本地用户在音视频通话中的网络体验。
在调用 startLastmileProbeTest 之后,SDK 会在约 5 秒内返回该回调。
quality | 网络上下行质量,基于上下行网络的丢包率和抖动计算,探测结果主要反映上行网络的状态。 |
|
inlinevirtual |
通知直播推流状态
task_id | 任务 ID |
url | 推流地址 |
state | NERtcLiveStreamStateCode, 直播推流状态
|
|
inlinevirtual |
volume | (混音后的)音量,取值范围为 [0,100]。 |
|
inlinevirtual |
提示房间内本地用户瞬时音量的回调。
volume | (混音后的)音量,取值范围为 [0,100]。 |
enable_vad | 是否检测到人声。 |
|
inlinevirtual |
本地发布流已回退为音频流、或已恢复为音视频流回调。
如果您调用了设置本地推流回退选项 setLocalPublishFallbackOption 接口,并将 option 设置为 kNERtcStreamFallbackAudioOnly 后,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。
is_fallback | 本地发布流已回退或已恢复。
|
stream_type | 对应的视频流类型,即主流或辅流。 |
|
inlinevirtual |
本地视频预览的分辨率变化回调, 与是否进入房间的状态无关,与硬件状态有关,也适用于预览
参数名称 | 类型 | 描述 |
---|---|---|
type | see NERtcVideoStreamType | 视频通道类型:
|
width | uint32_t | 视频采集的宽,单位为 px |
height | uint32_t | 视频采集的高,单位为 px |
|
inlinevirtual |
本地视频水印生效结果回调。
调用 setLocalVideoWatermarkConfigs 接口启用本地视频水印后,SDK 会触发此回调。
videoStreamType | 对应的视频流类型,即主流或辅流。详细信息请参考 NERtcVideoStreamType 。 |
state | 水印状态。详细信息请参考 NERtcLocalVideoWatermarkState 。 |
|
inlinevirtual |
媒体流相关转发事件回调。
event | 当前媒体流转发事件。详细信息请参考 #NERtcChannelMediaRelayEvent。 |
channel_name | 转发的目标房间名。 |
error | 相关错误码。详细信息请参考 #NERtcErrorCode。 |
|
inlinevirtual |
跨房间媒体流转发状态发生改变回调。
state | 当前跨房间媒体流转发状态。详细信息请参考 NERtcChannelMediaRelayState |
channel_name | 媒体流转发的目标房间名。 |
|
inlinevirtual |
服务端禁言音视频权限变化回调。
is_audio_banned | 是否禁用音频。
|
is_video_banned | 是否禁用视频。
|
|
inlinevirtual |
权限密钥即将过期事件回调。
|
inlinevirtual |
推流过程中推流状态变为重连中的回调。
reason | 推流中断的原因 |
|
inlinevirtual |
推流过程中重连成功的回调。
|
inlinevirtual |
收到远端流的 SEI 内容回调。
当远端成功发送 SEI 后,本端会收到此回调。
[in] | uid | 发送该 sei 的用户 ID |
[in] | data | 接收到的 sei 数据 |
[in] | dataSize | 接收到 sei 数据的大小 |
|
inlinevirtual |
提示房间内谁正在说话及说话者瞬时音量的回调。
该回调默认为关闭状态。可以通过 enableAudioVolumeIndication 方法开启。开启后,无论房间内是否有人说话,SDK 都会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。
在返回的 speakers 数组中:
speakers | 每个说话者的用户 ID 和音量信息的数组: NERtcAudioVolumeInfo |
speaker_number | speakers 数组的大小,即说话者的人数。 |
total_volume | (混音后的)总音量,取值范围为 [0,100]。 |
|
inlinevirtual |
订阅的远端流已回退为音频流、或已恢复为音视频流回调。
如果您调用了设置远端订阅流回退选项 setRemoteSubscribeFallbackOption 接口并将 option 设置 kNERtcStreamFallbackAudioOnly 后,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
uid | 远端用户的 ID。 |
is_fallback | 远端订阅流已回退或恢复:
|
stream_type | 对应的视频流类型,即主流或辅流。 |
|
inlinevirtual |
接收的远端视频分辨率变化回调。
参数名称 | 类型 | 描述 |
---|---|---|
uid | uid_t | 远端用户 ID,指定是哪个用户的视频流。 |
type | see NERtcVideoStreamType | 视频通道类型:
|
width | uint32_t | 视频采集的宽,单位为 px |
height | uint32_t | 视频采集的高,单位为 px |
|
inlinevirtual |
通知删除直播任务结果。
该回调异步返回 removeLiveStreamTask 接口的调用结果;实际推流状态参考 onLiveStreamState
task_id | 任务 ID |
error_code | 结果
|
|
inlinevirtual |
屏幕共享源采集范围等变化的回调。如果要 app 层实现屏幕分享高亮框实现的话,需要注意在调用::startScreenCaptureByWindowId, startScreenCaptureByDisplayId, startScreenCaptureByScreenRect 时,参数 NERtcScreenCaptureParameters 中 enable_high_light 设置 false,关闭 SDK 提供的高亮框,以免出现两个高亮框的情况。 enable_high_light 和 force_update_data 设置为 true 时,也会有变化回调。例如使用 SDK 高亮时,同时需要获取窗口区域,实现批注功能。
data | 屏幕共享源变化的信息。详细信息请参考 #NERtcScreenCaptureSourceData。 |
|
inlinevirtual |
屏幕共享状态变化回调。
status | 屏幕共享状态。详细信息请参考 #NERtcScreenCaptureStatus。 |
|
inlinevirtual |
startPushStreaming 开始推流的结果回调。
参数名称 | 类型 | 描述 |
---|---|---|
result | int | startPushStreaming 的结果。kNERtcNoError 表示没有错误,成功。 |
channelId | uint64_t | 推流的房间 ID。 |
result |
|
inlinevirtual |
stopPushStreaming 停止 RTMP 推流的结果回调。
result | stopPushStreaming 的结果。kNERtcNoError 表示没有错误,成功。 |
|
inlinevirtual |
通知更新直播任务结果。 该回调异步返回 updateLiveStreamTask 接口的调用结果;实际推流状态参考 onLiveStreamState
task_id | 任务 ID |
url | 推流地址 |
error_code | 结果
|
|
inlinevirtual |
更新权限密钥事件回调。
参数名称 | 类型 | 描述 |
---|---|---|
key | const char* | 新的权限密钥。 |
error | NERtcErrorCode | 错误码。
|
timeout | int | 更新后的权限密钥剩余有效时间。单位为秒。 |
|
inlinevirtual |
远端用户是否静音的回调。
uid | 远端用户 ID。 |
mute | 是否静音。 |
|
inlinevirtual |
远端用户数据通道 buffer 变更回调。
uid | 远端用户 ID。 |
previousAmount | 变更前大小。 |
|
inlinevirtual |
远端用户通过数据通道发送数据的回调。
uid | 远端用户 ID。 |
pData | 数据。 |
size | 接收数据长度。 |
|
inlinevirtual |
远端用户开启数据通道的回调。
uid | 远端用户 ID。 |
|
inlinevirtual |
远端用户数据通道状态变更回调。
uid | 远端用户 ID。 |
|
inlinevirtual |
远端用户停用数据通道的回调。
uid | 远端用户 ID。 |
|
inlinevirtual |
远端用户暂停或恢复发送音频辅流的回调。
uid | 远端用户 ID。 |
mute | 是否停止发送音频辅流。
|
|
inlinevirtual |
远端用户开启音频辅流回调。
uid | 远端用户 ID。 |
|
inlinevirtual |
远端用户停用音频辅流回调。
uid | 远端用户 ID。 |
|
inlinevirtual |
远端用户开启屏幕共享辅流通道的回调。
uid | 远端用户 ID。 |
max_profile | 最大分辨率。 |
|
inlinevirtual |
远端用户停止屏幕共享辅流通道的回调。
uid | 远端用户 ID。 |
|
inlinevirtual |
远端用户暂停或恢复发送视频回调。
当远端用户调用 muteLocalVideoStream 方法取消或者恢复发布视频流时,SDK 会触发该回调向本地用户通知远端用户的发流情况。
参数名称 | 类型 | 描述 |
---|---|---|
videoStreamType | NERtcVideoStreamType | 视频通道类型:
|
uid | uid_t | 用户 ID,提示是哪个用户的视频流。 |
mute | bool | 是否暂停发送视频流:
|
|
inlinevirtual |
远端用户暂停或恢复发送视频流的回调。
当远端用户调用 muteLocalVideoStream 取消或者恢复发布视频流时,SDK 会触发该回调向本地用户报告远程用户的发流状况。
uid | 远端用户 ID。 |
mute | 是否暂停发送视频流。
|
|
inlinevirtual |
uid | 远端用户 ID。 |
max_profile | 视频编码的分辨率,用于衡量编码质量。 |
|
inlinevirtual |
视频设备状态已改变的回调。
device_id | 设备 ID。 |
device_type | 视频设备类型。 |
device_state | 视频设备状态。 |
|
inlinevirtual |
通知虚拟背景功能是否成功启用的回调。
调用 enableVirtualBackground 方法后,SDK 返回此回调通知虚拟背景功能是否成功启用。
enabled | 是否成功启用虚拟背景。
|
reason | 虚拟背景功能未成功启用的原因或成功启用虚拟背景功能的通知。详细信息请参考 NERtcVirtualBackgroundSourceStateReason 。 |