Java 的 API 是对 C++ 的 sample code 通过 jni 做的二次封装,因此和 C++ 提供的录制 API 在结构上稍有差异:Agora SDK (C++ 和 java 共有的 sample code)实现 C++ 录制 API 的接口,以及对 Callback 的处理,然后 jni 层封装 Agora SDK,最后通过 jni proxy 层提供 Native 的 Java 接口和类。

RecordingSDK 接口类

方法 描述
createChannel 创建并加入频道。
createChannelWithUserAccount 通过 User Account 创建并加入频道。
getUidByUserAccount 通过 User Account 获取 UID。
getUserAccountByUid 通过 UID 获取 User Account。
setVideoMixingLayout 设置视频合流布局。
updateWatermarkConfigs 添加、更新或删除水印设置。
updateSubscribeVideoUids 只录制指定 UID 的视频。
updateSubscribeAudioUids 只录制指定 UID 的音频。
leaveChannel 退出频道。
getProperties 获取录制属性。
startService 手动模式下开始录制。
stopService 手动模式下暂停录制。
setUserBackground 设置指定 UID 用户的背景图片。
setLogLevel 设置 log 过滤等级。

RecordingEventHandler 接口类

回调 描述
onWarning 发生警告回调。
onError 发生错误回调。
onConnectionLost 网络连接丢失回调。
onConnectionInterrupted 网络连接中断回调。
onConnectionStateChanged 网络连接状态已改变回调。
onJoinChannelSuccess 录制端加入频道回调。
onLocalUserRegistered 本地用户成功注册 User Account 回调。
onUserInfoUpdated 用户信息已更新回调。
onRejoinChannelSuccess 重新加入频道回调。
onLeaveChannel 录制端离开频道回调。
onUserJoined 其他用户加入当前频道回调。
onUserOffline 其他用户离开当前频道回调。
audioFrameReceived 收到原始音频数据回调。
videoFrameReceived 收到原始视频数据回调。
onAudioVolumeIndication 提示频道内谁正在说话及说话者音量回调。
onActiveSpeaker 监测到活跃用户回调。
onFirstRemoteAudioFrame 已接收远端音频首帧回调。
onFirstRemoteVideoDecoded 已完成远端视频首帧解码回调。
onReceivingStreamStatusChanged 流状态变化回调。
onRemoteAudioStreamStateChanged 远端用户音频流状态改变回调。
onRemoteVideoStreamStateChanged 远端用户视频流状态改变回调。
onRemoteVideoStats 远端视频流统计信息回调。
onRemoteAudioStats 远端音频流统计信息回调。
onRecordingStats 录制统计信息回调。
recordingPathCallBack 获取录制文件所在目录回调。