Public Member Functions

void nativeObjectRef (long nativeHandle)
void onLeaveChannel (int reason)
void onError (int error, int stat_code)
void onWarning (int warn)
void onJoinChannelSuccess (String channelId, long uid)
void onUserOffline (long uid, int reason)
void onUserJoined (long uid, String recordingDir)
void onActiveSpeaker (long uid)
void audioFrameReceived (long uid, AudioFrame frame)
void videoFrameReceived (long uid, int type, VideoFrame frame, int rotation)

Member Function Documentation

◆ nativeObjectRef()

void io.agora.recording.RecordingEventHandler.nativeObjectRef ( long  nativeHandle)

This callback returns the JNI instance. You need to pass this JNI instance when calling each main method, except createChannel.

nativeHandleThe recording engine.

◆ onLeaveChannel()

void io.agora.recording.RecordingEventHandler.onLeaveChannel ( int  reason)

This callback is triggered when a user leaves the channel.

reasonThe reasons why the recording app leaves the channel. See LEAVE_PATH_CODE.

◆ onError()

void io.agora.recording.RecordingEventHandler.onError ( int  error,
int  stat_code 

This callback is triggered when an error occurrs during SDK runtime.

The SDK cannot fix the issue or resume running, which requires intervention from the app and informs the user on the issue.

errorError codes.
stat_codeState codes.

◆ onWarning()

void io.agora.recording.RecordingEventHandler.onWarning ( int  warn)

This callback is triggered when a warning occurrs during SDK runtime.

In most cases, the app can ignore the warnings reported by the SDK because the SDK can usually fix the issue and resume running.

warnWarning codes.

◆ onJoinChannelSuccess()

void io.agora.recording.RecordingEventHandler.onJoinChannelSuccess ( String  channelId,
long  uid 

This callback is triggered when the recording app successfully joins the specified channel with an assigned Channel ID and user ID.

channelIdChannel ID assigned based on the channel name specified in createChannel.
uidUser ID of the user.

◆ onUserOffline()

void io.agora.recording.RecordingEventHandler.onUserOffline ( long  uid,
int  reason 

This callback is triggered when a user leaves the channel or goes offline.

The SDK reads the timeout data to determine if a user leaves the channel (or goes offline). If no data package is received from the user within 15 seconds, the SDK assumes the user is offline. A poor network connection may lead to false detections, so use signaling for reliable offline detection.

uidUser ID of the user.
reasonThe rerasons why the user leaves the channel or goes offline. See USER_OFFLINE_REASON_TYPE.

◆ onUserJoined()

void io.agora.recording.RecordingEventHandler.onUserJoined ( long  uid,
String  recordingDir 

This callback is triggered when a user joins the channel and returns the UID of the new user.

If there are users in the channel before the recording app joins the channel, the SDK will also reports on the UIDs of the existing users. This callback is triggered as many times as the number of the users in the channel.

uidUser ID of the user.
recordingDirDirectory of the recorded files.

◆ onActiveSpeaker()

void io.agora.recording.RecordingEventHandler.onActiveSpeaker ( long  uid)

This callback returns the user ID of the active speaker.

uidThe user ID of the active speaker.

◆ audioFrameReceived()

void io.agora.recording.RecordingEventHandler.audioFrameReceived ( long  uid,
AudioFrame  frame 

This callback is triggered when the raw audio data is received.

uidUser ID of the user.
frameReceived raw audio data in PCM or AAC format. See AudioFrame.

◆ videoFrameReceived()

void io.agora.recording.RecordingEventHandler.videoFrameReceived ( long  uid,
int  type,
VideoFrame  frame,
int  rotation 

This callback is triggered when the raw video data is received.

This callback is triggered for every received raw video frame and can be used to detect sexually explicit content, if necessary.

Agora recommends capturing the i frame only and neglecting the others.

uidUser ID of the remote user as specified in the createChannel() method. If no uid is previously assigned, the Agora server automatically assigns a uid.
typeThe format of the received video data:
  • 0: YUV
  • 1: H.264
  • 2: JPEG
frameReceived video data in YUV, H.264, or JPEG format. See VideoFrame.
rotationRotational angle: 0, 90, 180, or 270.