文档中心
本地服务端录制
API 参考
Agora Recording C++ API Reference
Agora On-Premise Recording SDK C++ API Reference
|
virtual | ~IRecordingEngineEventHandler () |
|
virtual void | onError (int error, agora::linuxsdk::STAT_CODE_TYPE stat_code)=0 |
|
virtual void | onWarning (int warn)=0 |
|
virtual void | onJoinChannelSuccess (const char *channelId, uid_t uid)=0 |
|
virtual void | onLeaveChannel (agora::linuxsdk::LEAVE_PATH_CODE code)=0 |
|
virtual void | onUserJoined (uid_t uid, agora::linuxsdk::UserJoinInfos &infos)=0 |
|
virtual void | onRemoteVideoStreamStateChanged (uid_t uid, linuxsdk::RemoteStreamState state, linuxsdk::RemoteStreamStateChangedReason reason)=0 |
|
virtual void | onRemoteAudioStreamStateChanged (uid_t uid, linuxsdk::RemoteStreamState state, linuxsdk::RemoteStreamStateChangedReason reason)=0 |
|
virtual void | onUserOffline (uid_t uid, agora::linuxsdk::USER_OFFLINE_REASON_TYPE reason)=0 |
|
virtual void | audioFrameReceived (unsigned int uid, const agora::linuxsdk::AudioFrame *frame) const =0 |
|
virtual void | videoFrameReceived (unsigned int uid, const agora::linuxsdk::VideoFrame *frame) const =0 |
|
virtual void | onActiveSpeaker (uid_t uid)=0 |
|
virtual void | onAudioVolumeIndication (const agora::linuxsdk::AudioVolumeInfo *speakers, unsigned int speakerNum)=0 |
|
virtual void | onFirstRemoteVideoDecoded (uid_t uid, int width, int height, int elapsed)=0 |
|
virtual void | onFirstRemoteAudioFrame (uid_t uid, int elapsed)=0 |
|
virtual void | onReceivingStreamStatusChanged (bool receivingAudio, bool receivingVideo)=0 |
|
virtual void | onConnectionLost ()=0 |
|
virtual void | onConnectionInterrupted ()=0 |
|
virtual void | onRejoinChannelSuccess (const char *channelId, uid_t uid)=0 |
|
virtual void | onConnectionStateChanged (agora::linuxsdk::ConnectionStateType state, agora::linuxsdk::ConnectionChangedReasonType reason)=0 |
|
virtual void | onRemoteVideoStats (agora::linuxsdk::uid_t uid, const agora::linuxsdk::RemoteVideoStats &stats)=0 |
|
virtual void | onRemoteAudioStats (agora::linuxsdk::uid_t uid, const agora::linuxsdk::RemoteAudioStats &stats)=0 |
|
virtual void | onRecordingStats (const agora::linuxsdk::RecordingStats &stats)=0 |
|
virtual void | onLocalUserRegistered (uid_t uid, const char *userAccount)=0 |
|
virtual void | onUserInfoUpdated (uid_t uid, const agora::linuxsdk::UserInfo &info)=0 |
|
◆ ~IRecordingEngineEventHandler()
virtual agora::recording::IRecordingEngineEventHandler::~IRecordingEngineEventHandler |
( |
| ) |
|
|
inlinevirtual |
◆ onError()
该回调表示 SDK 运行时出现了(网络或媒体相关的)错误。
通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。
- 参数
-
◆ onWarning()
virtual void agora::recording::IRecordingEngineEventHandler::onWarning |
( |
int |
warn | ) |
|
|
pure virtual |
该回调表示 SDK 运行时出现了(网络或媒体相关的)警告。
通常情况下,SDK 上报的警告信息应用程序可以忽略,SDK 会自动恢复。
- 参数
-
◆ onJoinChannelSuccess()
virtual void agora::recording::IRecordingEngineEventHandler::onJoinChannelSuccess |
( |
const char * |
channelId, |
|
|
uid_t |
uid |
|
) |
| |
|
pure virtual |
◆ onLeaveChannel()
◆ onUserJoined()
该回调提示有远端用户加入当前频道,并返回新加入用户的 UID。
如果在录制端加入之前,已经有用户在频道中,SDK 也会上报这些已在频道中的用户 UID。频道内有多少用户,该回调就会调用几次。
- 参数
-
◆ onRemoteVideoStreamStateChanged()
远端用户视频流状态改变回调。
该回调在远端用户视频流状态发生变化时触发,并报告该用户当前的视频流状态和引起变化的原因。
- 参数
-
◆ onRemoteAudioStreamStateChanged()
远端用户音频流状态改变回调。
该回调在远端用户音频流状态发生变化时触发,并报告该用户当前的音频流状态和引起变化的原因。
- 参数
-
◆ onUserOffline()
该回调提示有其他用户离开当前频道或掉线。
SDK 判断用户离开频道或掉线的依据是:在一定时间内(15 秒)没有收到对方的任何数据包。在网络较差的情况下,可能会有误报。建议可靠的掉线检测应该由信令来做。
- 参数
-
◆ audioFrameReceived()
virtual void agora::recording::IRecordingEngineEventHandler::audioFrameReceived |
( |
unsigned int |
uid, |
|
|
const agora::linuxsdk::AudioFrame * |
frame |
|
) |
| const |
|
pure virtual |
◆ videoFrameReceived()
virtual void agora::recording::IRecordingEngineEventHandler::videoFrameReceived |
( |
unsigned int |
uid, |
|
|
const agora::linuxsdk::VideoFrame * |
frame |
|
) |
| const |
|
pure virtual |
◆ onActiveSpeaker()
virtual void agora::recording::IRecordingEngineEventHandler::onActiveSpeaker |
( |
uid_t |
uid | ) |
|
|
pure virtual |
◆ onAudioVolumeIndication()
virtual void agora::recording::IRecordingEngineEventHandler::onAudioVolumeIndication |
( |
const agora::linuxsdk::AudioVolumeInfo * |
speakers, |
|
|
unsigned int |
speakerNum |
|
) |
| |
|
pure virtual |
该回调提示频道内谁正在说话以及说话者音量。
RecordingConfi
中的 audioIndicationInterval 大于 0 时(建议设置时间间隔大于 200 ms),该回调会返回在时间间隔内所有说话者的 UID 和音量。
- 参数
-
◆ onFirstRemoteVideoDecoded()
virtual void agora::recording::IRecordingEngineEventHandler::onFirstRemoteVideoDecoded |
( |
uid_t |
uid, |
|
|
int |
width, |
|
|
int |
height, |
|
|
int |
elapsed |
|
) |
| |
|
pure virtual |
该回调提示本地已接收到首帧远端视频并完成解码。
本地收到首帧远端视频流并解码成功时,触发此回调。
- 参数
-
uid | 用户的 UID,指定是哪个用户的视频流。 |
width | 视频流宽(像素)。 |
height | 视频流高(像素)。 |
elapsed | 从本地用户调用 joinChannel 到该回调触发的延迟(毫秒)。 |
◆ onFirstRemoteAudioFrame()
virtual void agora::recording::IRecordingEngineEventHandler::onFirstRemoteAudioFrame |
( |
uid_t |
uid, |
|
|
int |
elapsed |
|
) |
| |
|
pure virtual |
该回调提示本地已接收到首帧远端音频流。
- 参数
-
uid | 发送音频帧的远端用户的 UID。 |
elapsed | 从本地用户调用 joinChannel 到该回调触发的延迟(毫秒)。 |
◆ onReceivingStreamStatusChanged()
virtual void agora::recording::IRecordingEngineEventHandler::onReceivingStreamStatusChanged |
( |
bool |
receivingAudio, |
|
|
bool |
receivingVideo |
|
) |
| |
|
pure virtual |
该回调提示接收音频流或视频流的状态发生改变。
- 参数
-
receivingAudio | 录制端是否在接收音频流。 |
receivingVideo | 录制端是否在接收视频流。 |
◆ onConnectionLost()
virtual void agora::recording::IRecordingEngineEventHandler::onConnectionLost |
( |
| ) |
|
|
pure virtual |
◆ onConnectionInterrupted()
virtual void agora::recording::IRecordingEngineEventHandler::onConnectionInterrupted |
( |
| ) |
|
|
pure virtual |
◆ onRejoinChannelSuccess()
virtual void agora::recording::IRecordingEngineEventHandler::onRejoinChannelSuccess |
( |
const char * |
channelId, |
|
|
uid_t |
uid |
|
) |
| |
|
pure virtual |
重新加入频道回调。
有时由于网络原因,录制客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。
- 参数
-
channelId | 频道名。 |
uid | 录制端的 UID。 |
◆ onConnectionStateChanged()
网络连接状态已改变回调。
该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态和网络状态改变的原因。
- 参数
-
◆ onRemoteVideoStats()
远端视频流统计信息回调。
该回调报告远端用户端到端的视频流统计信息,针对每个发送视频流的远端用户(通信模式)/主播(直播模式)每 2 秒触发一次。如果远端有多个用户/主播发送视频流,该回调每 2 秒会被触发多次。
- 参数
-
◆ onRemoteAudioStats()
远端音频流统计信息回调。
该回调描述远端用户端到端的音频流统计信息,针对每个发送音频流的远端用户(通信模式)/主播(直播模式)每 2 秒触发一次。如果远端有多个用户/主播发送音频流,该回调每 2 秒会被触发多次。
- 参数
-
◆ onRecordingStats()
录制统计信息回调。
录制 SDK 定期向录制端报告当前录制的统计信息,每两秒触发一次。
- 参数
-
◆ onLocalUserRegistered()
virtual void agora::recording::IRecordingEngineEventHandler::onLocalUserRegistered |
( |
uid_t |
uid, |
|
|
const char * |
userAccount |
|
) |
| |
|
pure virtual |
该回调表示本地用户已成功注册 User Account。
录制端调用 joinChannelWithUserAccount 方法成功注册 User Account 后,SDK 会触发该回调,并报告录制端的 UID 和 User Account。
- 参数
-
uid | 录制端的 UID。 |
userAccount | 录制端的 User Account。 |
◆ onUserInfoUpdated()
virtual void agora::recording::IRecordingEngineEventHandler::onUserInfoUpdated |
( |
uid_t |
uid, |
|
|
const agora::linuxsdk::UserInfo & |
info |
|
) |
| |
|
pure virtual |
该回调提示远端用户的信息已更新。
远端用户加入频道后,SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,并在本地触发 onUserInfoUpdated
。
- 参数
-
uid | 远端用户的 UID。 |
info | 标识用户信息的 UserInfo 对象,包含用户 UID 和 User Account。 |