NERecord Linux SDK 5.5.310
Loading...
Searching...
No Matches
Public Member Functions | List of all members
nerecord::IRecordEngineEventHandler Class Reference

#include <nerecord_engine_event_handler.h>

Public Member Functions

virtual void onError (int error_code, const char *msg)
 
virtual void onWarning (int warn_code, const char *msg)
 
virtual void onConnectInterrupted ()
 
virtual void onJoinChannel (channel_id_t cid, uid_t uid, NERtcErrorCode result, uint64_t elapsed)
 
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 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 audioFrameReceived (uid_t uid, const NERtcAudioFrame *frame)
 
virtual void audioFrameMixed (const NERtcAudioFrame *frame)
 
virtual void onUserAudioMute (uid_t uid, bool mute)
 
virtual void onUserVideoStart (uid_t uid, NERtcVideoProfileType max_profile)
 
virtual void onUserVideoStop (uid_t uid)
 
virtual void videoFrameReceived (uid_t uid, const NERtcVideoFrame *frame)
 
virtual void videoSubstreamFrameReceived (uid_t uid, const NERtcVideoFrame *frame)
 
virtual void onUserVideoMute (uid_t uid, bool mute)
 
virtual void onUserSubStreamVideoStart (uid_t uid, NERtcVideoProfileType max_profile)
 
virtual void onUserSubStreamVideoStop (uid_t uid)
 
virtual void onRemoteAudioVolumeIndication (const NERtcAudioVolumeInfo *speakers, unsigned int speaker_number, int total_volume)
 
virtual void onActiveSpeaker (uid_t uid)
 
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 onFirstVideoFrameDecoded (NERtcVideoStreamType type, uid_t uid, uint32_t width, uint32_t height)
 
virtual void onRecordStats (const NERtcStats *stats)
 
virtual void onLocalAudioStats (const NERtcAudioSendStats *stats)
 
virtual void onRemoteAudioStats (const NERtcAudioRecvStats *stats, unsigned int user_count)
 
virtual void onLocalVideoStats (const NERtcVideoSendStats *stats)
 
virtual void onRemoteVideoStats (const NERtcVideoRecvStats *stats, unsigned int user_count)
 
virtual void onConnectionStateChanged (NERtcConnectionStateType connection_state, NERtcErrorCode reason)
 
virtual void onMixingLayoutChanged (uint32_t regionCount, const NERtcRegion *regions)
 

Detailed Description

IRecordEngineEventHandler 回调接口类用于 SDK 向 App 发送回调事件通知,App 通过继承该接口类的方法获取 SDK 的事件通知。

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

Member Function Documentation

◆ audioFrameMixed()

virtual void nerecord::IRecordEngineEventHandler::audioFrameMixed ( const NERtcAudioFrame * frame)
inlinevirtual

每当频道内音频混音完成后,会触发该回调

Parameters
frame混合后的音频数据,格式为 PCM。请参考 NERtcAudioFrame。

◆ audioFrameReceived()

virtual void nerecord::IRecordEngineEventHandler::audioFrameReceived ( uid_t uid,
const NERtcAudioFrame * frame )
inlinevirtual

当收到原始音频数据时,会触发该回调

Parameters
uid远端用户 ID。
frame收到的原始音频数据,格式为 PCM。请参考 NERtcAudioFrame。

◆ onActiveSpeaker()

virtual void nerecord::IRecordEngineEventHandler::onActiveSpeaker ( uid_t uid)
inlinevirtual

检测到活跃用户回调。

该回调默认禁用。可以通过 enableAudioVolumeIndication 方法开启; 开启后,如果 SDK 检测到活跃的用户则触发该回调。

Parameters
uid当前时段说话声音最大的用户

◆ onConnectInterrupted()

virtual void nerecord::IRecordEngineEventHandler::onConnectInterrupted ( )
inlinevirtual

网络连接中断回调

◆ onConnectionStateChanged()

virtual void nerecord::IRecordEngineEventHandler::onConnectionStateChanged ( NERtcConnectionStateType connection_state,
NERtcErrorCode reason )
inlinevirtual

连接状态改变回调。

网络连接状态发生改变时触发此回调方法。

Parameters
connection_state改变后的网络状态。
reason触发原因。

◆ onDisconnect()

virtual void nerecord::IRecordEngineEventHandler::onDisconnect ( NERtcErrorCode reason)
inlinevirtual

掉线回调。

由于非网络原因,客户端可能会和服务器失去连接,此时 SDK 无需自动重连,直接触发此回调方法。

Parameters
reason返回结果。

◆ onError()

virtual void nerecord::IRecordEngineEventHandler::onError ( int error_code,
const char * msg )
inlinevirtual

发生错误回调。

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

Parameters
error_code错误代码: NERtcDMErrorCode.
msg错误描述。

◆ onFirstAudioDataReceived()

virtual void nerecord::IRecordEngineEventHandler::onFirstAudioDataReceived ( uid_t uid)
inlinevirtual

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

Parameters
uid发送音频帧的远端用户的用户 ID。

◆ onFirstAudioFrameDecoded()

virtual void nerecord::IRecordEngineEventHandler::onFirstAudioFrameDecoded ( uid_t uid)
inlinevirtual

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

Parameters
uid远端用户 ID。

◆ onFirstVideoDataReceived()

virtual void nerecord::IRecordEngineEventHandler::onFirstVideoDataReceived ( uid_t uid)
inlinevirtual

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

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

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

◆ onFirstVideoFrameDecoded()

virtual void nerecord::IRecordEngineEventHandler::onFirstVideoFrameDecoded ( uid_t uid,
uint32_t width,
uint32_t height )
inlinevirtual

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

引擎收到第一帧远端视频流并解码成功时,触发此调用。App 可在此回调中设置该用户的 video canvas。

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

◆ onJoinChannel()

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

加入频道回调。

Parameters
cid频道 ID。
uid用户 ID。
result返回结果。
elapsed从 joinChannel 开始到发生此事件过去的时间(毫秒)。

◆ onLeaveChannel()

virtual void nerecord::IRecordEngineEventHandler::onLeaveChannel ( NERtcErrorCode result)
inlinevirtual

离开频道回调。

App 调用 leaveChannel 方法时,SDK 提示 App 离开频道是否成功。

Parameters
result返回结果。

◆ onLocalAudioStats()

virtual void nerecord::IRecordEngineEventHandler::onLocalAudioStats ( const NERtcAudioSendStats * stats)
inlinevirtual

本地音频流统计信息回调。

该回调描述本地设备发送音频流的统计信息,每 2 秒触发一次。

Parameters
stats本地音频流统计信息。请参考 NERtcAudioSendStats.

◆ onLocalVideoStats()

virtual void nerecord::IRecordEngineEventHandler::onLocalVideoStats ( const NERtcVideoSendStats * stats)
inlinevirtual

本地视频流统计信息回调。

该回调描述本地设备发送视频流的统计信息,每 2 秒触发一次。

Parameters
stats本地视频流统计信息。请参考 NERtcVideoSendStats.

◆ onMixingLayoutChanged()

virtual void nerecord::IRecordEngineEventHandler::onMixingLayoutChanged ( uint32_t regionCount,
const NERtcRegion * regions )
inlinevirtual

录制布局改变回调。

混合录制布局发生改变(不论是主动调用 setVideoMixingLayout 还是内置自适应布局)时触发此回调方法。

Parameters
regionCount布局子窗口数。
regions子窗口。

◆ onRecordStats()

virtual void nerecord::IRecordEngineEventHandler::onRecordStats ( const NERtcStats * stats)
inlinevirtual

当前录制统计回调。

SDK 定期向 App 报告当前录制的统计信息,每 2 秒触发一次。

系统相关统计信息暂时不支持, 敬请期待。

Parameters
statsNERECORD 引擎统计数据: NERtcStats

◆ onRejoinChannel()

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

重新加入频道回调。

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

Parameters
cid频道 ID。
uid用户 ID。
result返回结果。
elapsed从开始重连到发生此事件过去的时间(毫秒)。

◆ onRemoteAudioStats()

virtual void nerecord::IRecordEngineEventHandler::onRemoteAudioStats ( const NERtcAudioRecvStats * stats,
unsigned int user_count )
inlinevirtual

通话中远端音频流的统计信息回调。

该回调描述远端用户在通话中端到端的音频流统计信息,每 2 秒触发一次。

Parameters
stats每个远端用户音频统计信息的数组。请参考 NERtcAudioRecvStats.
user_countstats 数组的大小。

◆ onRemoteAudioVolumeIndication()

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

提示频道内谁正在说话及说话者瞬时音量的回调。

该回调默认禁用。可以通过 enableAudioVolumeIndication 方法开启; 开启后,无论频道内是否有人说话,SDK 都会按 enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。

在返回的 speakers 数组中:

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

◆ onRemoteVideoStats()

virtual void nerecord::IRecordEngineEventHandler::onRemoteVideoStats ( const NERtcVideoRecvStats * stats,
unsigned int user_count )
inlinevirtual

通话中远端视频流的统计信息回调。

该回调描述远端用户在通话中端到端的视频流统计信息,每 2 秒触发一次。

Parameters
stats每个远端用户视频统计信息的数组。请参考 NERtcVideoRecvStats.
user_countstats 数组的大小。

◆ onUserAudioMute()

virtual void nerecord::IRecordEngineEventHandler::onUserAudioMute ( uid_t uid,
bool mute )
inlinevirtual

远端用户是否静音回调。

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

◆ onUserAudioStart()

virtual void nerecord::IRecordEngineEventHandler::onUserAudioStart ( uid_t uid)
inlinevirtual

远端用户开启音频回调。

Parameters
uid远端用户 ID。

◆ onUserAudioStop()

virtual void nerecord::IRecordEngineEventHandler::onUserAudioStop ( uid_t uid)
inlinevirtual

远端用户停用音频回调。

Parameters
uid远端用户 ID。

◆ onUserJoined()

virtual void nerecord::IRecordEngineEventHandler::onUserJoined ( uid_t uid,
const char * user_name )
inlinevirtual

远端用户加入当前频道回调。

  • 通信模式下,该回调提示有远端用户加入了频道,并返回新加入用户的 ID;如果加入之前,已经有其他用户在频道中了,新加入的用户也会收到这些已有用户加入频道的回调。
Parameters
uid新加入频道的远端用户 ID。
user_name新加入频道的远端用户名。

◆ onUserLeft()

virtual void nerecord::IRecordEngineEventHandler::onUserLeft ( uid_t uid,
NERtcSessionLeaveReason reason )
inlinevirtual

远端用户离开当前频道回调。

提示有远端用户离开了频道(或掉线)。

Parameters
uid远端用户 ID。
reason远端用户离开原因。

◆ onUserSubStreamVideoStart()

virtual void nerecord::IRecordEngineEventHandler::onUserSubStreamVideoStart ( uid_t uid,
NERtcVideoProfileType max_profile )
inlinevirtual

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

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

◆ onUserSubStreamVideoStop()

virtual void nerecord::IRecordEngineEventHandler::onUserSubStreamVideoStop ( uid_t uid)
inlinevirtual

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

Parameters
uid远端用户 ID。

◆ onUserVideoMute()

virtual void nerecord::IRecordEngineEventHandler::onUserVideoMute ( uid_t uid,
bool mute )
inlinevirtual

远端用户是否禁视频流回调。

Parameters
uid远端用户 ID。
mute是否禁视频流回调。

◆ onUserVideoStart()

virtual void nerecord::IRecordEngineEventHandler::onUserVideoStart ( uid_t uid,
NERtcVideoProfileType max_profile )
inlinevirtual

远端用户开启视频回调。

Parameters
uid远端用户 ID。
max_profile远端用户支持的最高视频编码质量。

◆ onUserVideoStop()

virtual void nerecord::IRecordEngineEventHandler::onUserVideoStop ( uid_t uid)
inlinevirtual

远端用户停用视频回调。

Parameters
uid远端用户 ID。

◆ onWarning()

virtual void nerecord::IRecordEngineEventHandler::onWarning ( int warn_code,
const char * msg )
inlinevirtual

发生警告回调。

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

Parameters
warn_code错误代码: NERtcWarnCode.
msg警告描述。

◆ videoFrameReceived()

virtual void nerecord::IRecordEngineEventHandler::videoFrameReceived ( uid_t uid,
const NERtcVideoFrame * frame )
inlinevirtual

当收到原始视频数据时,会触发该回调

Parameters
uid远端用户 ID。
frame收到的原始视频数据。请参考 NERtcVideoFrame。

◆ videoSubstreamFrameReceived()

virtual void nerecord::IRecordEngineEventHandler::videoSubstreamFrameReceived ( uid_t uid,
const NERtcVideoFrame * frame )
inlinevirtual

当收到辅流原始视频数据时,会触发该回调

Parameters
uid远端用户 ID。
frame收到的辅流原始视频数据。请参考 NERtcVideoFrame。

The documentation for this class was generated from the following file: