NERTC macOS/Windows SDK V5.6.40
载入中...
搜索中...
未找到
nertc::IRtcEngineEventHandlerEx类 参考

#include <nertc_engine_event_handler_ex.h>

类 nertc::IRtcEngineEventHandlerEx 继承关系图:
nertc::IRtcEngineEventHandler

Public 成员函数

virtual void onUserSubStreamVideoStart (uid_t uid, NERtcVideoProfileType max_profile)
 
virtual void onUserVideoStreamStart (uid_t uid, NERtcVideoStreamType stream_type, NERtcVideoProfileType max_profile)
 
virtual void onUserSubStreamVideoStop (uid_t uid)
 
virtual void onUserVideoStreamStop (uid_t uid, NERtcVideoStreamType stream_type)
 
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 onNetworkConnectionTypeChanged (NERtcNetworkConnectionType newConnectionType)
 
virtual void onStartPushStreaming (NERtcErrorCode result, channel_id_t cid)
 
virtual void onStopPushStreaming (NERtcErrorCode result)
 
virtual void onPushStreamingChangeToReconnecting (NERtcErrorCode reason)
 
virtual void onPushStreamingReconnectedSuccess ()
 
virtual void onLocalRecorderStatus (NERtcLocalRecorderStatus status, const char *task_id)
 
virtual void onLocalRecorderError (NERtcLocalRecorderError error, const char *task_id)
 
- 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 的运行。

成员函数说明

◆ onAddLiveStreamTask()

virtual void nertc::IRtcEngineEventHandlerEx::onAddLiveStreamTask ( const char * task_id,
const char * url,
int error_code )
inlinevirtual

通知添加直播任务结果。
该回调异步返回 addLiveStreamTask 接口的调用结果;实际推流状态参考 onLiveStreamState

参数
task_id任务 ID
url推流地址
error_code结果
  • 0: 调用成功;
  • 其他: 调用失败。

◆ onAudioDefaultDeviceChanged()

virtual void nertc::IRtcEngineEventHandlerEx::onAudioDefaultDeviceChanged ( const char device_id[kNERtcMaxDeviceIDLength],
NERtcAudioDeviceType device_type )
inlinevirtual

音频默认设备更改的回调。

参数
device_id设备 ID。
device_type音频设备类型。

◆ onAudioDeviceStateChanged()

virtual void nertc::IRtcEngineEventHandlerEx::onAudioDeviceStateChanged ( const char device_id[kNERtcMaxDeviceIDLength],
NERtcAudioDeviceType device_type,
NERtcAudioDeviceState device_state )
inlinevirtual

音频设备状态更改的回调。

参数
device_id设备 ID。
device_type音频设备类型。详细信息请参考 NERtcAudioDeviceType。
device_state音频设备状态。

◆ onAudioEffectFinished()

virtual void nertc::IRtcEngineEventHandlerEx::onAudioEffectFinished ( uint32_t effect_id)
inlinevirtual

本地音效文件播放已结束回调。
当播放音效结束后,会触发该回调。

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

◆ onAudioEffectTimestampUpdate()

virtual void nertc::IRtcEngineEventHandlerEx::onAudioEffectTimestampUpdate ( uint32_t effect_id,
uint64_t timestamp_ms )
inlinevirtual

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

  • 调用 playEffect播放音效文件后,SDK 会触发该回调,默认每 1s 返回一次。
    自从
    V4.6.29
    使用前提
    请在 IRtcEngineEventHandlerEx 接口类中通过 initialize 接口设置回调监听。
    参数说明
    参数名称 类型 描述
    effect_id uint32_t 指定音效文件的 ID。每个音效均有唯一的 ID。
    timestamp_ms uint64_t 指定音效文件的当前播放进度。单位为毫秒。

◆ onAudioHowling()

virtual void nertc::IRtcEngineEventHandlerEx::onAudioHowling ( bool howling)
inlinevirtual

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

注解
  • 啸叫检测功能一般用于语音聊天室或在线会议等纯人声环境,不推荐在包含背景音乐的娱乐场景中使用。
  • 在开启 AI 啸叫检测的情况下,回调会每隔几秒周期性触发,建议不要做过多其他的操作和调用,避免造成性能和逻辑问题。
参数
howling是否出现啸叫
  • true: 啸叫。
  • false: 正常。

◆ onAudioMixingStateChanged()

virtual void nertc::IRtcEngineEventHandlerEx::onAudioMixingStateChanged ( NERtcAudioMixingState state,
NERtcAudioMixingErrorCode error_code )
inlinevirtual

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

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

◆ onAudioMixingTimestampUpdate()

virtual void nertc::IRtcEngineEventHandlerEx::onAudioMixingTimestampUpdate ( uint64_t timestamp_ms)
inlinevirtual

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

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

◆ onAudioRecording()

virtual void nertc::IRtcEngineEventHandlerEx::onAudioRecording ( NERtcAudioRecordingCode code,
const char * file_path )
inlinevirtual

音频录制状态回调。

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

◆ onCaptureVideoFrame()

virtual void nertc::IRtcEngineEventHandlerEx::onCaptureVideoFrame ( void * data,
NERtcVideoType type,
uint32_t width,
uint32_t height,
uint32_t count,
uint32_t offset[kNERtcMaxPlaneCount],
uint32_t stride[kNERtcMaxPlaneCount],
NERtcVideoRotation rotation )
inlinevirtual

采集视频数据回调。
调用本接口采集视频数据回调之前,请先调用 setParameters:接口,将 kNERtcKeyEnableVideoCaptureObserver 的值设置为 YES,开启摄像头采集数据的回调。

参数
data采集视频数据。
type视频类型。
width视频宽度。
height视频高度。
count视频 Plane Count。
offset视频 offset。
stride视频 stride。
rotation视频旋转角度。

◆ onCheckNECastAudioDriverResult()

virtual void nertc::IRtcEngineEventHandlerEx::onCheckNECastAudioDriverResult ( NERtcInstallCastAudioDriverResult result)
inlinevirtual

收到检测安装声卡的内容回调(仅适用于 Mac 系统)。
在 Mac 系统上,您可以通过调用 checkNECastAudioDriver 为当前系统安装一个音频驱动,并让 SDK 通过该音频驱动捕获当前 Mac 系统播放出的声音。

参数
result安装虚拟声卡的结果。详细信息请参考 NERtcInstallCastAudioDriverResult

◆ onFirstAudioDataReceived()

virtual void nertc::IRtcEngineEventHandlerEx::onFirstAudioDataReceived ( uid_t uid)
inlinevirtual

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

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

◆ onFirstAudioFrameDecoded()

virtual void nertc::IRtcEngineEventHandlerEx::onFirstAudioFrameDecoded ( uid_t uid)
inlinevirtual

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

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

◆ onFirstVideoDataReceived() [1/2]

virtual void nertc::IRtcEngineEventHandlerEx::onFirstVideoDataReceived ( NERtcVideoStreamType type,
uid_t uid )
inlinevirtual

已显示首帧远端视频的回调。
当远端视频的第一帧画面显示在视窗上时,会触发此回调。

自从
V4.6.20
参数说明
参数名称 类型 描述
type see NERtcVideoStreamType 视频通道类型:
  • kNERTCVideoStreamMain:主流。
  • kNERtcVideoStreamSub:辅流。
uid uid_t 用户 ID,提示是哪个用户的视频流。

◆ onFirstVideoDataReceived() [2/2]

virtual void nertc::IRtcEngineEventHandlerEx::onFirstVideoDataReceived ( uid_t uid)
inlinevirtual

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

参数
uid用户 ID,指定是哪个用户的视频流。

◆ onFirstVideoFrameDecoded() [1/2]

virtual void nertc::IRtcEngineEventHandlerEx::onFirstVideoFrameDecoded ( NERtcVideoStreamType type,
uid_t uid,
uint32_t width,
uint32_t height )
inlinevirtual

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

自从
V4.6.20
注解
以下场景都会触发该回调:
  • SDK 收到远端视频并解码成功时。
  • 重新调用 enableLocalVideo 开启本地视频采集。(V5.5.10 版本开始)
  • 停止屏幕共享后再重新调用 startScreenCapture 接口共享屏幕。(V5.5.10 版本开始)
参数说明
参数名称 类型 描述
type see NERtcVideoStreamType 视频通道类型:
  • kNERTCVideoStreamMain:主流。
  • kNERtcVideoStreamSub:辅流。
uid uid_t 用户 ID,提示是哪个用户的视频流。
width uint32_t 首帧视频的宽度,单位为 px。
height uint32_t 首帧视频的高度,单位为 px。

◆ onFirstVideoFrameDecoded() [2/2]

virtual void nertc::IRtcEngineEventHandlerEx::onFirstVideoFrameDecoded ( uid_t uid,
uint32_t width,
uint32_t height )
inlinevirtual

已接收到远端视频并完成解码的回调。
引擎收到第一帧远端视频流并解码成功时,触发此调用。每次重新调用 enableLocalVideo 开启本地视频采集,也会触发该回调。(V5.5.10 版本开始)

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

◆ onFirstVideoFrameRender()

virtual void nertc::IRtcEngineEventHandlerEx::onFirstVideoFrameRender ( NERtcVideoStreamType type,
uid_t uid,
uint32_t width,
uint32_t height,
uint64_t elapsed )
inlinevirtual

已接收到远端视频首帧并完成渲染的回调。
当 SDK 收到远端视频的第一帧并渲染成功时,会触发该回调。

自从
V5.5.10
参数说明
参数名称 类型 描述
type see NERtcVideoStreamType 视频通道类型:
  • kNERTCVideoStreamMain:主流。
  • kNERtcVideoStreamSub:辅流。
uid uid_t 用户 ID,提示是哪个用户的视频流。
width uint32_t 首帧视频的宽度,单位为 px。
height uint32_t 首帧视频的高度,单位为 px。
elapsed uint64_t 从订阅动作开始到发生此事件过去的时间(毫秒)。

◆ onLabFeatureCallback()

virtual void nertc::IRtcEngineEventHandlerEx::onLabFeatureCallback ( const char * key,
const char * param )
inlinevirtual

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

自从
V5.5.0
参数
key返回回调类型。
param值内容。对应字符串的参数值,如果是结构体对象,需要转成 json 格式。

◆ onLastmileProbeResult()

virtual void nertc::IRtcEngineEventHandlerEx::onLastmileProbeResult ( const NERtcLastmileProbeResult & result)
inlinevirtual

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

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

◆ onLastmileQuality()

virtual void nertc::IRtcEngineEventHandlerEx::onLastmileQuality ( NERtcNetworkQualityType quality)
inlinevirtual

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

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

◆ onLiveStreamState()

virtual void nertc::IRtcEngineEventHandlerEx::onLiveStreamState ( const char * task_id,
const char * url,
NERtcLiveStreamStateCode state )
inlinevirtual

通知直播推流状态

注解
该回调在通话中有效。
参数
task_id任务 ID
url推流地址
stateNERtcLiveStreamStateCode, 直播推流状态
  • 505: 推流中;
  • 506: 推流失败;
  • 511: 推流结束;

◆ onLocalAudioVolumeIndication() [1/2]

virtual void nertc::IRtcEngineEventHandlerEx::onLocalAudioVolumeIndication ( int volume)
inlinevirtual
弃用
该回调方法已废弃。 提示房间内本地用户瞬时音量的回调。
参数
volume(混音后的)音量,取值范围为 [0,100]。

◆ onLocalAudioVolumeIndication() [2/2]

virtual void nertc::IRtcEngineEventHandlerEx::onLocalAudioVolumeIndication ( int volume,
bool enable_vad )
inlinevirtual

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

  • 该回调默认禁用。可以通过 enableAudioVolumeIndication 方法开启。
  • 开启后,本地用户说话,SDK 会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。
  • 如果本地用户将自己静音(调用了 muteLocalAudioStream),SDK 将音量设置为 0 后回调给应用层。
    参数
    volume(混音后的)音量,取值范围为 [0,100]。
    enable_vad是否检测到人声。

◆ onLocalPublishFallbackToAudioOnly()

virtual void nertc::IRtcEngineEventHandlerEx::onLocalPublishFallbackToAudioOnly ( bool is_fallback,
NERtcVideoStreamType stream_type )
inlinevirtual

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

自从
V4.3.0
参数
is_fallback本地发布流已回退或已恢复。
  • true: 由于网络环境不理想,发布的媒体流已回退为音频流。
  • false:由于网络环境改善,从音频流恢复为音视频流。
stream_type对应的视频流类型,即主流或辅流。

◆ onLocalRecorderError()

virtual void nertc::IRtcEngineEventHandlerEx::onLocalRecorderError ( NERtcLocalRecorderError error,
const char * task_id )
inlinevirtual

本地录制错误回调。

参数
error本地录制错误码。
task_id录制任务 ID。

◆ onLocalRecorderStatus()

virtual void nertc::IRtcEngineEventHandlerEx::onLocalRecorderStatus ( NERtcLocalRecorderStatus status,
const char * task_id )
inlinevirtual

本地录制状态回调。

参数
status本地录制状态。
task_id录制任务 ID。

◆ onLocalVideoRenderSizeChanged()

virtual void nertc::IRtcEngineEventHandlerEx::onLocalVideoRenderSizeChanged ( NERtcVideoStreamType type,
uint32_t width,
uint32_t height )
inlinevirtual

本地视频预览的分辨率变化回调, 与是否进入房间的状态无关,与硬件状态有关,也适用于预览

自从
V5.4.1
触发时机

当本地视频的分辨率发生变化,会触发此回调。当调用 SetCaptureConfig 设置采集分辨率或调用 SetVideoConfig 设置编码属性时可以触发该回调。回调的分辨率宽和高为本地预览的宽和高,和实际编码发送的分辨率不一定一致
业务场景
开发者可以根据该回调的分辨率来动态调整预览视图的比例等。
参数说明
参数名称 类型 描述
type see NERtcVideoStreamType 视频通道类型:
  • kNERTCVideoStreamMain:主流。
  • kNERtcVideoStreamSub:辅流。
width uint32_t 视频采集的宽,单位为 px
height uint32_t 视频采集的高,单位为 px

◆ onLocalVideoWatermarkState()

virtual void nertc::IRtcEngineEventHandlerEx::onLocalVideoWatermarkState ( NERtcVideoStreamType videoStreamType,
NERtcLocalVideoWatermarkState state )
inlinevirtual

本地视频水印生效结果回调。
调用 setLocalVideoWatermarkConfigs 接口启用本地视频水印后,SDK 会触发此回调。

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

◆ onMediaRelayEvent()

virtual void nertc::IRtcEngineEventHandlerEx::onMediaRelayEvent ( NERtcChannelMediaRelayEvent event,
const char * channel_name,
NERtcErrorCode error )
inlinevirtual

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

自从
V4.3.0
参数
event当前媒体流转发事件。详细信息请参考 #NERtcChannelMediaRelayEvent。
channel_name转发的目标房间名。
error相关错误码。详细信息请参考 #NERtcErrorCode。

◆ onMediaRelayStateChanged()

virtual void nertc::IRtcEngineEventHandlerEx::onMediaRelayStateChanged ( NERtcChannelMediaRelayState state,
const char * channel_name )
inlinevirtual

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

自从
V4.3.0
参数
state当前跨房间媒体流转发状态。详细信息请参考 NERtcChannelMediaRelayState
channel_name媒体流转发的目标房间名。

◆ onMediaRightChange()

virtual void nertc::IRtcEngineEventHandlerEx::onMediaRightChange ( bool is_audio_banned,
bool is_video_banned )
inlinevirtual

服务端禁言音视频权限变化回调。

自从
v4.6.0
参数
is_audio_banned是否禁用音频。
  • true:禁用音频。
  • false:取消禁用音频。
is_video_banned是否禁用视频。
  • true:禁用视频。
  • false:取消禁用视频。

◆ onNetworkConnectionTypeChanged()

virtual void nertc::IRtcEngineEventHandlerEx::onNetworkConnectionTypeChanged ( NERtcNetworkConnectionType newConnectionType)
inlinevirtual

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

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

◆ onPermissionKeyWillExpire()

virtual void nertc::IRtcEngineEventHandlerEx::onPermissionKeyWillExpire ( )
inlinevirtual

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

  • 由于 PermissionKey 具有一定的时效,在通话过程中如果 PermissionKey 即将失效,SDK 会提前 30 秒触发该回调,提醒用户更新 PermissionKey。
    自从
    V4.6.29
    使用前提
    请在 IRtcEngineEventHandlerEx 接口类中通过 initialize 接口设置回调监听。
    相关接口
    在收到此回调后可以调用 updatePermissionKey 方法更新权限密钥。

◆ onPushStreamingChangeToReconnecting()

virtual void nertc::IRtcEngineEventHandlerEx::onPushStreamingChangeToReconnecting ( NERtcErrorCode reason)
inlinevirtual

推流过程中推流状态变为重连中的回调。

触发时机
推流过程中由于网络等原因导致推流中断,推流状态变为重连中,会触发 onPushStreamingChangeToReconnecting 回调。
自从
V5.6.10
参数
reason推流中断的原因

◆ onPushStreamingReconnectedSuccess()

virtual void nertc::IRtcEngineEventHandlerEx::onPushStreamingReconnectedSuccess ( )
inlinevirtual

推流过程中重连成功的回调。

触发时机
推流过程中由于网络等原因导致推流中断,重连成功后,会触发 onPushStreamingReconnectedSuccess 回调。
自从
V5.6.10

◆ onRecvSEIMsg()

virtual void nertc::IRtcEngineEventHandlerEx::onRecvSEIMsg ( uid_t uid,
const char * data,
uint32_t dataSize )
inlinevirtual

收到远端流的 SEI 内容回调。
当远端成功发送 SEI 后,本端会收到此回调。

参数
[in]uid发送该 sei 的用户 ID
[in]data接收到的 sei 数据
[in]dataSize接收到 sei 数据的大小

◆ onRemoteAudioVolumeIndication()

virtual void nertc::IRtcEngineEventHandlerEx::onRemoteAudioVolumeIndication ( const NERtcAudioVolumeInfo * speakers,
unsigned int speaker_number,
int total_volume )
inlinevirtual

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

  • 如果有 uid 出现在上次返回的数组中,但不在本次返回的数组中,则默认该 uid 对应的远端用户没有说话。
  • 如果 volume 为 0,表示该用户没有说话。
    • 如果 speakers 数组为空,则表示此时远端没有人说话。
      参数
      speakers每个说话者的用户 ID 和音量信息的数组: NERtcAudioVolumeInfo
      speaker_numberspeakers 数组的大小,即说话者的人数。
      total_volume(混音后的)总音量,取值范围为 [0,100]。

◆ onRemoteSubscribeFallbackToAudioOnly()

virtual void nertc::IRtcEngineEventHandlerEx::onRemoteSubscribeFallbackToAudioOnly ( uid_t uid,
bool is_fallback,
NERtcVideoStreamType stream_type )
inlinevirtual

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

自从
V4.3.0
参数
uid远端用户的 ID。
is_fallback远端订阅流已回退或恢复:
  • true: 由于网络环境不理想,订阅的远端流已回退为音频流。
  • false:由于网络环境改善,订阅的远端流从音频流恢复为音视频流。
stream_type对应的视频流类型,即主流或辅流。

◆ onRemoteVideoReceiveSizeChanged()

virtual void nertc::IRtcEngineEventHandlerEx::onRemoteVideoReceiveSizeChanged ( uid_t uid,
NERtcVideoStreamType type,
uint32_t width,
uint32_t height )
inlinevirtual

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

自从
V5.4.1
触发时机

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

◆ onRemoveLiveStreamTask()

virtual void nertc::IRtcEngineEventHandlerEx::onRemoveLiveStreamTask ( const char * task_id,
int error_code )
inlinevirtual

通知删除直播任务结果。
该回调异步返回 removeLiveStreamTask 接口的调用结果;实际推流状态参考 onLiveStreamState

参数
task_id任务 ID
error_code结果
  • 0: 调用成功;
  • 其他: 调用失败。

◆ onScreenCaptureSourceDataUpdate()

virtual void nertc::IRtcEngineEventHandlerEx::onScreenCaptureSourceDataUpdate ( NERtcScreenCaptureSourceData data)
inlinevirtual

屏幕共享源采集范围等变化的回调。如果要 app 层实现屏幕分享高亮框实现的话,需要注意在调用#startScreenCaptureByWindowId, startScreenCaptureByDisplayId, startScreenCaptureByScreenRect 时,参数 NERtcScreenCaptureParameters 中 enable_high_light 设置 false,关闭 SDK 提供的高亮框,以免出现两个高亮框的情况。 enable_high_light 和 force_update_data 设置为 true 时,也会有变化回调。例如使用 SDK 高亮时,同时需要获取窗口区域,实现批注功能。

自从
V5.4.x
注解
自 V5.4.x 支持此回调。
参数
data屏幕共享源变化的信息。详细信息请参考 #NERtcScreenCaptureSourceData。

◆ onScreenCaptureStatus()

virtual void nertc::IRtcEngineEventHandlerEx::onScreenCaptureStatus ( NERtcScreenCaptureStatus status)
inlinevirtual

屏幕共享状态变化回调。

自从
V4.2.0
注解
macOS 平台自 V4.6.0 支持此回调。
参数
status屏幕共享状态。详细信息请参考 #NERtcScreenCaptureStatus。

◆ onStartPushStreaming()

virtual void nertc::IRtcEngineEventHandlerEx::onStartPushStreaming ( NERtcErrorCode result,
channel_id_t cid )
inlinevirtual

startPushStreaming 开始推流的结果回调。

触发时机
当主播调用 startPushStreaming 成功推流后,主播端收到 onStartPushStreaming 回调。
自从
V5.6.10
参数说明
参数名称 类型 描述
result int startPushStreaming 的结果。kNERtcNoError 表示没有错误,成功。
channelId uint64_t 推流的房间 ID。
参数
result

◆ onStopPushStreaming()

virtual void nertc::IRtcEngineEventHandlerEx::onStopPushStreaming ( NERtcErrorCode result)
inlinevirtual

stopPushStreaming 停止 RTMP 推流的结果回调。

触发时机
当主播调用 stopPushStreaming 成功停止推流后,主播会收到 onStopPushStreaming 回调。
自从
V5.6.10
参数
resultstopPushStreaming 的结果。kNERtcNoError 表示没有错误,成功。

◆ onUpdateLiveStreamTask()

virtual void nertc::IRtcEngineEventHandlerEx::onUpdateLiveStreamTask ( const char * task_id,
const char * url,
int error_code )
inlinevirtual

通知更新直播任务结果。 该回调异步返回 updateLiveStreamTask 接口的调用结果;实际推流状态参考 onLiveStreamState

参数
task_id任务 ID
url推流地址
error_code结果
  • 0: 调用成功;
  • 其他: 调用失败。

◆ onUpdatePermissionKey()

virtual void nertc::IRtcEngineEventHandlerEx::onUpdatePermissionKey ( const char * key,
NERtcErrorCode error,
int timeout )
inlinevirtual

更新权限密钥事件回调。

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

◆ onUserAudioMute()

virtual void nertc::IRtcEngineEventHandlerEx::onUserAudioMute ( uid_t uid,
bool mute )
inlinevirtual

远端用户是否静音的回调。

注解
该回调由远端用户调用 muteLocalAudioStream 方法开启或关闭音频发送触发。
参数
uid远端用户 ID。
mute是否静音。

◆ onUserDataBufferedAmountChanged()

virtual void nertc::IRtcEngineEventHandlerEx::onUserDataBufferedAmountChanged ( uid_t uid,
uint64_t previousAmount )
inlinevirtual

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

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

◆ onUserDataReceiveMessage()

virtual void nertc::IRtcEngineEventHandlerEx::onUserDataReceiveMessage ( uid_t uid,
void * pData,
uint64_t size )
inlinevirtual

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

参数
uid远端用户 ID。
pData数据。
size接收数据长度。

◆ onUserDataStart()

virtual void nertc::IRtcEngineEventHandlerEx::onUserDataStart ( uid_t uid)
inlinevirtual

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

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

◆ onUserDataStateChanged()

virtual void nertc::IRtcEngineEventHandlerEx::onUserDataStateChanged ( uid_t uid)
inlinevirtual

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

参数
uid远端用户 ID。

◆ onUserDataStop()

virtual void nertc::IRtcEngineEventHandlerEx::onUserDataStop ( uid_t uid)
inlinevirtual

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

参数
uid远端用户 ID。

◆ onUserSubStreamAudioMute()

virtual void nertc::IRtcEngineEventHandlerEx::onUserSubStreamAudioMute ( uid_t uid,
bool mute )
inlinevirtual

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

自从
V4.6.10
参数
uid远端用户 ID。
mute是否停止发送音频辅流。
  • true:该用户已暂停发送音频辅流。
  • false:该用户已恢复发送音频辅流。

◆ onUserSubStreamAudioStart()

virtual void nertc::IRtcEngineEventHandlerEx::onUserSubStreamAudioStart ( uid_t uid)
inlinevirtual

远端用户开启音频辅流回调。

自从
V4.6.10
参数
uid远端用户 ID。

◆ onUserSubStreamAudioStop()

virtual void nertc::IRtcEngineEventHandlerEx::onUserSubStreamAudioStop ( uid_t uid)
inlinevirtual

远端用户停用音频辅流回调。

自从
V4.6.10
参数
uid远端用户 ID。

◆ onUserSubStreamVideoStart()

virtual void nertc::IRtcEngineEventHandlerEx::onUserSubStreamVideoStart ( uid_t uid,
NERtcVideoProfileType max_profile )
inlinevirtual

远端用户开启屏幕共享辅流通道的回调。

参数
uid远端用户 ID。
max_profile最大分辨率。

◆ onUserSubStreamVideoStop()

virtual void nertc::IRtcEngineEventHandlerEx::onUserSubStreamVideoStop ( uid_t uid)
inlinevirtual

远端用户停止屏幕共享辅流通道的回调。

参数
uid远端用户 ID。

◆ onUserVideoMute() [1/2]

virtual void nertc::IRtcEngineEventHandlerEx::onUserVideoMute ( NERtcVideoStreamType videoStreamType,
uid_t uid,
bool mute )
inlinevirtual

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

自从
V4.6.20
参数说明
参数名称 类型 描述
videoStreamType NERtcVideoStreamType 视频通道类型:
  • kNERTCVideoStreamMain:主流。
  • kNERtcVideoStreamSub:辅流。
uid uid_t 用户 ID,提示是哪个用户的视频流。
mute bool 是否暂停发送视频流:
  • true:该用户已暂停发送视频流。
  • false:该用户已恢复发送视频流。

◆ onUserVideoMute() [2/2]

virtual void nertc::IRtcEngineEventHandlerEx::onUserVideoMute ( uid_t uid,
bool mute )
inlinevirtual

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

注解
该回调仅在远端用户的视频主流状态改变时会触发,若您希望同时接收到远端用户视频辅流状态变更的通知,请监听 onUserVideoMute 回调。
参数
uid远端用户 ID。
mute是否暂停发送视频流。
  • true:该用户已暂停发送视频流。 = false:该用户已恢复发送视频流。

◆ onUserVideoProfileUpdate()

virtual void nertc::IRtcEngineEventHandlerEx::onUserVideoProfileUpdate ( uid_t uid,
NERtcVideoProfileType max_profile )
inlinevirtual
参数
uid远端用户 ID。
max_profile视频编码的分辨率,用于衡量编码质量。

◆ onVideoDeviceStateChanged()

virtual void nertc::IRtcEngineEventHandlerEx::onVideoDeviceStateChanged ( const char device_id[kNERtcMaxDeviceIDLength],
NERtcVideoDeviceType device_type,
NERtcVideoDeviceState device_state )
inlinevirtual

视频设备状态已改变的回调。

参数
device_id设备 ID。
device_type视频设备类型。
device_state视频设备状态。

◆ onVirtualBackgroundSourceEnabled()

virtual void nertc::IRtcEngineEventHandlerEx::onVirtualBackgroundSourceEnabled ( bool enabled,
NERtcVirtualBackgroundSourceStateReason reason )
inlinevirtual

通知虚拟背景功能是否成功启用的回调。
调用 enableVirtualBackground 方法后,SDK 返回此回调通知虚拟背景功能是否成功启用。

自从
V4.6.0
注解
如果您设置虚拟背景为 PNG 或 JPG 格式的自定义图像,此回调会等到图像被完全读取后才会返回,因此会有一段时间的延迟。
参数
enabled是否成功启用虚拟背景。
  • true:成功启用。
  • false:未成功启用。
reason虚拟背景功能未成功启用的原因或成功启用虚拟背景功能的通知。详细信息请参考 NERtcVirtualBackgroundSourceStateReason

该类的文档由以下文件生成: