This Java API is a data encapsulation of the C++ sample code with JNI, and is therefore slightly different from that of the C++ API in structure. The Agora SDK (sample code shared by C++ and Java) implements the C++ recording APIs and callbacks, goes through data encapsulation in the JNI layer, and then works as the Java interface and class of the Native SDK through the JNI proxy.

RecordingSDK Class

Method Description
createChannel Creates a channel.
createChannelWithUserAccount Creates a channel with the user account.
getUidByUserAccount Gets the user ID by passing in the user account.
getUserAccountByUid Gets the user account by passing in the user ID.
setVideoMixingLayout Sets the video mixing layout.
updateWatermarkConfigs Adds, updates, or deletes the watermark configurations.
updateSubscribeVideoUids Updates the UIDs of the users whose video streams you want to record.
updateSubscribeAudioUids Updates the UIDs of the users whose video streams you want to record.
leaveChannel Allows the recording server to leave the channel.
getProperties Retrieves the recording properties.
startService Manually starts the recording.
stopService Manually pauses the recording.
setUserBackground Sets the user background image.
setLogLevel Sets the log level.

RecordingEventHandler Class

Callback Description
onWarning Occurs when a warning occurs.
onError Occurs when an error occurs.
onConnectionLost Occurs when the SDK loses connection to the server.
onConnectionInterrupted Occurs when the connection between the SDK and the server is interrupted.
onConnectionStateChanged Occurs when the network connection state changes.
onJoinChannelSuccess Occurs when the recording server joins a channel.
onLocalUserRegistered Occurs when the recording server successfully registers a user account.
onUserInfoUpdated Occurs when the SDK gets the user ID and user account of a remote user.
onRejoinChannelSuccess Occurs when the recording server rejoins the channel after being disconnected due to network problems.
onLeaveChannel Occurs when the recording server leaves the channel.
onUserJoined Occurs when a user joins the channel.
onUserOffline Occurs when a user leaves the channel or goes offline.
audioFrameReceived Occurs when the raw audio data is received.
videoFrameReceived Occurs when the raw video data is received.
onAudioVolumeIndication Reports the list of users who are speaking and their volumes.
onActiveSpeaker Occurs when a speaker is detectesd in the channel.
onFirstRemoteAudioFrame Occurs when the first remote audio frame is received.
onFirstRemoteVideoDecoded Occurs when the first remote video frame is decoded.
onReceivingStreamStatusChanged Occurs when the status of receiving the audio or video stream changes.
onRemoteAudioStreamStateChanged Occurs when the state of a remote user's audio stream changes.
onRemoteVideoStreamStateChanged Occurs when the state of a remote user's video stream changes.
onRemoteVideoStats Reports the statistics of the video stream from the remote user.
onRemoteAudioStats Reports the statistics of the audio stream from the remote user.
onRecordingStats Reports the statistics of the recording once every two seconds.
recordingPathCallBack Reports the directory of the recorded files.