NERtc UE SDK  V5.4.109
Public 成员函数 | 所有成员列表
nertc::IRtcEngineEventHandler类 参考

#include <INertcEngineEventHandler.h>

Public 成员函数

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 *msg)
 
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 stream_type, uid_t uid, bool mute)
 
virtual void onUserVideoMute (NERtcVideoStreamType stream_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 *source_id, uint64_t previous_amount)
 

详细描述

IRtcEngineEventHandler 回调接口类用于 SDK 向 App 发送回调事件通知,App 通过继承该接口类的方法获取 SDK 的事件通知。 接口类的所有方法都有缺省(空)实现,App 可以根据需要只继承关心的事件。在回调方法中,App 不应该做耗时或者调用可能会引起阻塞的 API(如开启音频或视频等),否则可能影响 SDK 的运行。

成员函数说明

◆ onAddLiveStreamTask()

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

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

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

◆ onApiCallExecuted()

virtual void nertc::IRtcEngineEventHandler::onApiCallExecuted ( const char *  api_name,
NERtcErrorCode  error_code,
const char *  msg 
)
inlinevirtual

API调用结束回调。
该回调方法表示 SDK 执行完了一个用户的API调用。

参数
api_nameAPI名称
errorAPI执行结果错误码。
messageAPI执行结果描述。

◆ onAudioDefaultDeviceChanged()

virtual void nertc::IRtcEngineEventHandler::onAudioDefaultDeviceChanged ( const char *  device_id,
NERtcAudioDeviceType  device_type 
)
inlinevirtual

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

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

◆ onAudioDeviceRoutingDidChange()

virtual void nertc::IRtcEngineEventHandler::onAudioDeviceRoutingDidChange ( NERtcAudioOutputRouting  routing)
inlinevirtual

音频路由变化回调。

参数
routing当前音频输出路由。

◆ onAudioDeviceStateChanged()

virtual void nertc::IRtcEngineEventHandler::onAudioDeviceStateChanged ( const char *  device_id,
NERtcAudioDeviceType  device_type,
NERtcAudioDeviceState  device_state 
)
inlinevirtual

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

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

◆ onAudioEffectFinished()

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

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

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

◆ onAudioEffectTimestampUpdate()

virtual void nertc::IRtcEngineEventHandler::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::IRtcEngineEventHandler::onAudioHowling ( bool  howling)
inlinevirtual

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

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

◆ onAudioMixingStateChanged()

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

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

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

◆ onAudioMixingTimestampUpdate()

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

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

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

◆ onAudioRecording()

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

音频录制状态回调。

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

◆ onCameraExposureChanged()

virtual void nertc::IRtcEngineEventHandler::onCameraExposureChanged ( const NERtcCameraFocusAndExposureInfo info)
inlinevirtual

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

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

◆ onCameraFocusChanged()

virtual void nertc::IRtcEngineEventHandler::onCameraFocusChanged ( const NERtcCameraFocusAndExposureInfo info)
inlinevirtual

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

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

◆ onCaptureVideoFrame()

void nertc::IRtcEngineEventHandler::onCaptureVideoFrame ( void *  data,
NERtcVideoType  type,
uint32_t  width,
uint32_t  height,
uint32_t  count,
uint32_t *  offset,
uint32_t *  stride,
NERtcVideoRotation  rotation 
)
inline

采集视频数据回调。

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

◆ onCheckNECastAudioDriverResult()

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

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

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

◆ onClientRoleChanged()

virtual void nertc::IRtcEngineEventHandler::onClientRoleChanged ( NERtcClientRole  oldRole,
NERtcClientRole  newRole 
)
inlinevirtual

直播场景下用户角色已切换回调。
本地用户加入房间后,通过 setClientRole 切换用户角色后会触发此回调。例如主播切换为观众、从观众切换为主播。

注解
直播场景下,如果您在加入房间后调用该方法切换用户角色,调用成功后,会触发以下回调:
  • 主播切观众,本端触发onClientRoleChanged回调,远端触发onUserLeft回调。
  • 观众切主播,本端触发onClientRoleChanged回调,远端触发onUserJoined回调。
参数
oldRole切换前的角色。
newRole切换后的角色。

◆ onConnectionStateChange()

virtual void nertc::IRtcEngineEventHandler::onConnectionStateChange ( NERtcConnectionStateType  state,
NERtcReasonConnectionChangedType  reason 
)
inlinevirtual

网络连接状态已改变回调。
该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态和引起网络状态改变的原因。

参数
state当前的网络连接状态。
reason引起当前网络连接状态发生改变的原因。

◆ onDisconnect()

virtual void nertc::IRtcEngineEventHandler::onDisconnect ( NERtcErrorCode  reason)
inlinevirtual

网络连接中断

注解
  • SDK 在调用 joinChannel 加入房间成功后,如果和服务器失去连接且连续 3 次重连失败,就会触发该回调。
  • 由于非网络原因,客户端可能会和服务器失去连接,此时SDK无需自动重连,直接触发此回调方法。
参数
reason网络连接中断原因。

◆ onError()

virtual void nertc::IRtcEngineEventHandler::onError ( int  error_code,
const char *  msg 
)
inlinevirtual

发生错误回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK上报的错误意味着SDK无法自动恢复,需要 App 干预或提示用户。

参数
error_code错误码。详细信息请参考 NERtcDMErrorCode
msg错误描述。

◆ onFirstAudioDataReceived()

virtual void nertc::IRtcEngineEventHandler::onFirstAudioDataReceived ( NERtcAudioStreamType  type,
uid_t  uid 
)
inlinevirtual

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

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

◆ onFirstAudioFrameDecoded()

virtual void nertc::IRtcEngineEventHandler::onFirstAudioFrameDecoded ( NERtcAudioStreamType  type,
uid_t  uid 
)
inlinevirtual

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

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

◆ onFirstVideoDataReceived()

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

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

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

◆ onFirstVideoFrameDecoded()

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

已接收到远端视频并完成解码的回调。
引擎收到第一帧远端视频流并解码成功时,触发此调用。

参数
type视频频流类型。
uid用户 ID,指定是哪个用户的视频流。
width视频流宽(px)。
height视频流高(px)。

◆ onJoinChannel()

virtual void nertc::IRtcEngineEventHandler::onJoinChannel ( channel_id_t  cid,
uid_t  uid,
NERtcErrorCode  result,
uint64_t  elapsed 
)
inlinevirtual

加入房间回调,表示客户端已经登入服务器。

参数
cid客户端加入的房间 ID。
uid用户 ID。 如果在 joinChannel 方法中指定了 uid,此处会返回指定的 ID; 如果未指定 uid,此处将返回云信服务器自动分配的 ID。
result返回结果。
elapsed从 joinChannel 开始到发生此事件过去的时间,单位为毫秒。

◆ onLastmileProbeResult()

virtual void nertc::IRtcEngineEventHandler::onLastmileProbeResult ( const NERtcLastmileProbeResult result)
inlinevirtual

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

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

◆ onLastmileQuality()

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

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

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

◆ onLeaveChannel()

virtual void nertc::IRtcEngineEventHandler::onLeaveChannel ( NERtcErrorCode  result,
uint64_t  channel_id 
)
inlinevirtual

退出房间回调。
App 调用 leaveChannel 方法后,SDK 提示 App 退出房间是否成功。

参数
result返回结果。
channel_id离开的channel的ID。

◆ onLiveStreamStateChanged()

virtual void nertc::IRtcEngineEventHandler::onLiveStreamStateChanged ( const char *  task_id,
const char *  url,
NERtcLiveStreamStateCode  state 
)
inlinevirtual

通知直播推流状态

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

◆ onLocalAudioVolumeIndication()

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

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

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

◆ onLocalVideoWatermarkState()

virtual void nertc::IRtcEngineEventHandler::onLocalVideoWatermarkState ( NERtcVideoStreamType  type,
NERtcLocalVideoWatermarkState  state 
)
inlinevirtual

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

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

◆ onMediaRelayEvent()

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

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

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

◆ onMediaRelayStateChanged()

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

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

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

◆ onMediaRightChange()

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

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

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

◆ onNetworkTypeChanged()

virtual void nertc::IRtcEngineEventHandler::onNetworkTypeChanged ( NERtcNetworkType  new_type)
inlinevirtual

网络类型已经改变的回调。
该回调在网络发生改变的时候触发,并告知用户当前的网络类型。

参数
new_type当前的网络类型。

◆ onPermissionKeyWillExpire()

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

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

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

◆ onPublishFallbackToAudioOnly()

virtual void nertc::IRtcEngineEventHandler::onPublishFallbackToAudioOnly ( bool  is_fallback,
NERtcVideoStreamType  type 
)
inlinevirtual

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

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

◆ onReconnectingStart()

virtual void nertc::IRtcEngineEventHandler::onReconnectingStart ( channel_id_t  cid,
uid_t  uid 
)
inlinevirtual

触发重连。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK会进行自动重连,开始自动重连后触发此回调。

参数
cid房间 ID。
uid用户 ID。

◆ onRecvSEIMsg()

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

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

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

◆ onRejoinChannel()

virtual void nertc::IRtcEngineEventHandler::onRejoinChannel ( channel_id_t  cid,
uid_t  uid,
NERtcErrorCode  result,
uint64_t  elapsed 
)
inlinevirtual

重新加入房间回调。
在弱网环境下,若客户端和服务器失去连接,SDK会自动重连。自动重连成功后触发此回调方法。

参数
cid客户端加入的房间 ID。
uid用户 ID。
result返回结果。
elapsed从开始重连到发生此事件过去的时间,单位为毫秒。

◆ onReleasedHwResources()

virtual void nertc::IRtcEngineEventHandler::onReleasedHwResources ( NERtcErrorCode  result)
inlinevirtual

释放硬件资源的回调。
SDK提示释放硬件资源是否成功。

参数
result返回结果。

◆ onRemoteAudioVolumeIndication()

virtual void nertc::IRtcEngineEventHandler::onRemoteAudioVolumeIndication ( const NERtcAudioVolumeInfo speakers,
uint32_t  speaker_number,
int  total_volume 
)
inlinevirtual

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

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

◆ onRemoveLiveStreamTask()

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

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

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

◆ onScreenCaptureStatusChanged()

virtual void nertc::IRtcEngineEventHandler::onScreenCaptureStatusChanged ( NERtcScreenCaptureStatus  status)
inlinevirtual

屏幕共享状态变化回调。
该方法仅适用于 Windows 平台。

自从
V4.2.0
参数
status屏幕共享状态。详细信息请参考 #nertc_screen_capture_status_t 。

◆ onSubscribeFallbackToAudioOnly()

virtual void nertc::IRtcEngineEventHandler::onSubscribeFallbackToAudioOnly ( uid_t  uid,
bool  is_fallback,
NERtcVideoStreamType  type 
)
inlinevirtual

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

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

◆ onUpdateLiveStreamTask()

virtual void nertc::IRtcEngineEventHandler::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::IRtcEngineEventHandler::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::IRtcEngineEventHandler::onUserAudioMute ( NERtcAudioStreamType  stream_type,
uid_t  uid,
bool  mute 
)
inlinevirtual

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

参数
type音频流类型。
uid远端用户ID。
mute是否静音。

◆ onUserAudioStart()

virtual void nertc::IRtcEngineEventHandler::onUserAudioStart ( NERtcAudioStreamType  type,
uid_t  uid 
)
inlinevirtual

远端用户开启音频的回调。

参数
type远端用户流类型。
uid远端用户ID。

◆ onUserAudioStop()

virtual void nertc::IRtcEngineEventHandler::onUserAudioStop ( NERtcAudioStreamType  type,
uid_t  uid 
)
inlinevirtual

远端用户停用音频的回调。

参数
uid远端用户ID。

◆ onUserDataBufferedAmountChanged()

virtual void nertc::IRtcEngineEventHandler::onUserDataBufferedAmountChanged ( uid_t  uid,
const char *  source_id,
uint64_t  previous_amount 
)
inlinevirtual

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

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

◆ onUserDataReceiveMessage()

virtual void nertc::IRtcEngineEventHandler::onUserDataReceiveMessage ( uid_t  uid,
const char *  source_id,
void *  data,
uint64_t  size 
)
inlinevirtual

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

参数
uid远端用户ID。
source_id远端source ID。
data数据。
size接收数据长度。

◆ onUserDataStart()

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

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

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

◆ onUserDataStateChanged()

virtual void nertc::IRtcEngineEventHandler::onUserDataStateChanged ( uid_t  uid,
const char *  source_id 
)
inlinevirtual

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

参数
uid远端用户ID。
source_id远端用户source ID。

◆ onUserDataStop()

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

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

参数
uid远端用户ID。

◆ onUserJoined()

virtual void nertc::IRtcEngineEventHandler::onUserJoined ( uid_t  uid,
const char *  user_name,
const NERtcUserJoinExtraInfo custom_info 
)
inlinevirtual

远端用户加入当前房间回调。
该回调提示有远端用户加入了房间,并返回新加入用户的 ID;如果加入之前,已经有其他用户在房间中了,新加入的用户也会收到这些已有用户加入房间的回调。

参数
uid新加入房间的远端用户 ID。
user_name新加入房间的远端用户名。
custom_info该远端用户加入的额外信息。

◆ onUserLeft()

virtual void nertc::IRtcEngineEventHandler::onUserLeft ( uid_t  uid,
NERtcSessionLeaveReason  reason,
const NERtcUserJoinExtraInfo custom_info 
)
inlinevirtual

远端用户离开当前房间的回调。
提示有远端用户离开了房间(或掉线)。通常情况下,用户离开房间有两个原因,即正常离开和超时掉线:

  • 正常离开的时候,远端用户会收到正常离开房间的回调提醒,判断用户离开房间。
  • 超时掉线的依据是,在一定时间内(40~50s),用户没有收到对方的任何数据包,则判定为对方掉线。
    参数
    uid离开房间的远端用户 ID。
    reason远端用户离开原因。
    custom_info该远端用户离开的额外信息。

◆ onUserVideoMute()

virtual void nertc::IRtcEngineEventHandler::onUserVideoMute ( NERtcVideoStreamType  stream_type,
uid_t  uid,
bool  mute 
)
inlinevirtual

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

参数
type视频流类型。
uid远端用户ID。
mute是否禁视频流。

◆ onUserVideoProfileUpdate()

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

◆ onUserVideoStart()

virtual void nertc::IRtcEngineEventHandler::onUserVideoStart ( NERtcVideoStreamType  type,
uid_t  uid,
NERtcVideoProfileType  max_profile 
)
inlinevirtual

远端用户开启视频的回调。

参数
type远端用户流类型。
uid远端用户ID。
max_profile视频编码的分辨率,用于衡量编码质量。

◆ onUserVideoStop()

virtual void nertc::IRtcEngineEventHandler::onUserVideoStop ( NERtcVideoStreamType  type,
uid_t  uid 
)
inlinevirtual

远端用户停用视频的回调。

参数
type远端用户流类型。
uid远端用户ID。

◆ onVideoDeviceStateChanged()

virtual void nertc::IRtcEngineEventHandler::onVideoDeviceStateChanged ( const char *  device_id,
NERtcVideoDeviceType  device_type,
NERtcVideoDeviceState  device_state 
)
inlinevirtual

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

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

◆ onVirtualBackgroundSourceEnabled()

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

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

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

◆ onWarning()

virtual void nertc::IRtcEngineEventHandler::onWarning ( int  warn_code,
const char *  msg 
)
inlinevirtual

发生警告回调。
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)警告。通常情况下,SDK 上报的警告信息 App 可以忽略,SDK 会自动恢复。

参数
warn_code警告码。详细信息请参考 NERtcWarnCode
msg警告描述。

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