NERtc Windows SDK
Public 成员函数 | 所有成员列表
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 onUserSubStreamVideoStop (uid_t uid)
 
virtual void onScreenCaptureStatus (NERtcScreenCaptureStatus status)
 
virtual void onUserVideoProfileUpdate (uid_t uid, NERtcVideoProfileType max_profile)
 
virtual void onUserAudioMute (uid_t uid, bool mute)
 
virtual void onUserVideoMute (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 onFirstAudioFrameDecoded (uid_t uid)
 
virtual void onFirstVideoFrameDecoded (uid_t uid, uint32_t width, uint32_t height)
 
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 onAudioEffectFinished (uint32_t effect_id)
 
virtual void onLocalAudioVolumeIndication (int volume)
 
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)
 
- Public 成员函数 继承自 nertc::IRtcEngineEventHandler
virtual void onError (int error_code, const char *msg)
 
virtual void onWarning (int warn_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 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 onUserLeft (uid_t uid, NERtcSessionLeaveReason reason)
 
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。

◆ onAudioHowling()

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

检测到啸叫回调。

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

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

采集视频数据回调。

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

◆ 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()

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

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

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

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

◆ onFirstVideoFrameDecoded()

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

已接收到远端视频并完成解码的回调。

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

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

◆ 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()

virtual void nertc::IRtcEngineEventHandlerEx::onLocalAudioVolumeIndication ( int  volume)
inlinevirtual

提示频道内本地用户瞬时音量的回调。

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

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

如果本地用户将自己静音(调用了 muteLocalAudioStream),SDK 将音量设置为 0 后回调给应用层。

参数
volume(混音后的)音量,取值范围为 [0,100]。

◆ 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对应的视频流类型,即主流或辅流。

◆ onMediaRelayEvent()

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

媒体流相关转发事件回调

参数
event当前媒体流转发事件
channel_name转发的目标房间名
error相关错误码

◆ onMediaRelayStateChanged()

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

媒体流转发状态回调

参数
state当前媒体流状态
channel_name转发的目标房间名

◆ 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对应的视频流类型,即主流或辅流。

◆ onRemoveLiveStreamTask()

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

通知删除直播任务结果。

该回调异步返回 removeLiveStreamTask 接口的调用结果;实际推流状态参考 onLiveStreamState

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

◆ onScreenCaptureStatus()

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

屏幕共享暂停/恢复/开始/结束等回调

◆ 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: 调用成功;
  • 其他: 调用失败。

◆ onUserAudioMute()

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

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

参数
uid远端用户ID。
mute是否静音。

◆ 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()

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

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

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

◆ 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视频设备状态。

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