io.agora.recording.RecordingSDK类 参考
- Java
更新时间不可用
构造及析构函数说明
RecordingSDK()
io.agora.recording.RecordingSDK.RecordingSDK()录制 SDK 可调用的主要方法。
成员函数说明
registerOberserver()
void io.agora.recording.RecordingSDK.registerOberserver(RecordingEventHandler recordingEventHandler)注册观测器用来接收录制事件的通知。
unRegisterOberserver()
void io.agora.recording.RecordingSDK.unRegisterOberserver(RecordingEventHandler recordingEventHandler)删除以前注册的观测器。
createChannel()
native boolean io.agora.recording.RecordingSDK.createChannel(String appId, String channelKey, String name, int uid, RecordingConfig config, int logLevel)该方法创建并让录制端加入频道,随后开始录制。
| 参数名 | 描述 |
|---|---|
appId | 录制端的 appId 必须与 Native/Web SDK 的保持一致。详见获取 App ID。 |
channelKey | 用于鉴权的动态密钥。录制端的动态密钥必须与 Native/Web SDK 的保持一致。如果 Native/Web SDK 用了 token,该参数必须设为 token。详见校验用户权限。由于录制端暂时未开放 requestToken 和 renewToken 接口,在获取 Token 时,请务必将 privilegeExpiredTs 设置为 0,表示权限一旦生成,永不过期。 |
name | 待录制频道的频道名。 |
uid | 录制使用的用户 UID。同一个频道里不能出现两个相同的 UID,否则会产生未定义行为。有两种设置方法:
|
config | 录制的详细设置。详见 RecordingConfig。 |
logLevel | 生成 log 的等级。设置完成后,只有等级低于所设 logLevel 的 log 才会被生成:
|
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
createChannelWithUserAccount()
native boolean io.agora.recording.RecordingSDK.createChannelWithUserAccount(String appId, String channelKey, String name, String userAccount, RecordingConfig config, int logLevel)该方法允许录制端使用 User Account 加入频道。
录制端成功加入频道后,在本地触发 onLocalUserRegistered 和 onJoinChannelSuccess 回调。
注解
为保证通信质量,我们建议一个频道内使用同一类型的数据标识用户身份,因此录制端的用户标识数据类型要与 Native/Web SDK 的保持一致。
| 参数名 | 描述 |
|---|---|
appId | 录制端的 appId 必须与 Native/Web SDK 的保持一致。详见获取 App ID。 |
channelKey | 用于鉴权的动态密钥。录制端的动态密钥必须与 Native/Web SDK 保持一致。如果 Native/Web SDK 用了 token,该参数必须设为 token。详见校验用户权限。 |
name | 待录制频道的频道名。 |
userAccount | 用户的 User Account。该参数为必填,最大不超过 255 字节,不可填 null。请确保加入频道的 User Account 的唯一性。以下为支持的字符集范围(共 89 个字符):
|
config | 录制的详细设置,详见 RecordingConfig。 |
logLevel | 生成 log 的等级。设置完成后,只有等级低于所设 logLevel 的 log 才会被生成:
|
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
getUidByUserAccount()
long io.agora.recording.RecordingSDK.getUidByUserAccount(String userAccount)该方法通过 User Account 获取 UID。
远端用户加入频道后,SDK 会获取到该远端用户的 UID 和 User Account,在本地触发 onUserInfoUpdated 回调。
收到 onUserInfoUpdated 回调后,你可以调用 getUidByUserAccount 方法,通过传入 User Account 获取指定用户的 UID。
| 参数名 | 描述 |
|---|---|
userAccount | 用户 User Account,必填。 |
返回值
用户的 UID。
getUserAccountByUid()
String io.agora.recording.RecordingSDK.getUserAccountByUid(int uid)该方法通过 UID 获取 User Account。
远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,在本地触发 onUserInfoUpdated 回调。
收到 onUserInfoUpdated 回调后,你可以调用 getUserAccountByUid 方法,通过传入 UID 获取指定用户的 User Account。
| 参数名 | 描述 |
|---|---|
uid | 用户 UID,必填。 |
返回值
用户的 User Account。
leaveChannel()
synchronized boolean io.agora.recording.RecordingSDK.leaveChannel()录制端退出频道,并释放占用的线程资源。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
setVideoMixingLayout()
int io.agora.recording.RecordingSDK.setVideoMixingLayout(VideoMixingLayout layout)该方法设置视频合流布局。
注解
合流模式下如果有视频,必须调用该方法设置布局。
| 参数名 | 描述 |
|---|---|
layout | 视频合流布局的具体设置,详见 VideoMixingLayout。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
updateWatermarkConfigs()
int io.agora.recording.RecordingSDK.updateWatermarkConfigs(LiteraWatermarkConfig[] literaWms, TimestampWatermarkConfig[] timestampWms, ImageWatermarkConfig[] imgWms)该方法添加、更新或删除水印设置。
录制 SDK 支持三种水印:文字水印、时间戳水印和图片水印。
有以下情况:
- 如果你在调用 setVideoMixingLayout 方法时没有设置
LiteraWatermarkConfig、TimestampWatermarkConfig或ImageWatermarkConfig参数,你可直接调用updateWatermarkConfigs方法添加水印。 - 如果你在调用 setVideoMixingLayout 方法时已设置
LiteraWatermarkConfig、TimestampWatermarkConfig或ImageWatermarkConfig参数添加了水印,你可调用updateWatermarkConfigs方法修改水印个数和具体设置,从而增加、更新或删除水印;传值为空则删除全部已添加的水印。
注解
水印仅适用于合流模式(RecordingConfig 中的 isMixingEnabled 为 true)。
| 参数名 | 描述 |
|---|---|
literaWms | 设置文字水印。LiteraWatermarkConfig 组成的数组。录制 SDK 最多支持 10 个文字水印。 |
timestampWms | 设置时间戳水印。TimestampWatermarkConfig 组成的数组。录制 SDK 只支持 1 个时间戳水印。 |
imgWms | 设置图片水印。ImageWatermarkConfig 组成的数组。录制 SDK 最多支持 4 个图片水印。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
updateSubscribeVideoUids()
int io.agora.recording.RecordingSDK.updateSubscribeVideoUids(int[] uids)该方法允许录制 SDK 只录制指定 UID 的视频。
注解
该方法仅在 RecordingConfig 中的 autoSubscribe 为 false 时有效。
| 参数名 | 描述 |
|---|---|
uids | UID 数组,为用逗号隔开的字符串,例如 "1","2","3"。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
updateSubscribeAudioUids()
int io.agora.recording.RecordingSDK.updateSubscribeAudioUids(int[] uids)该方法允许录制 SDK 只录制指定 UID 的音频。
注解
该方法仅在 RecordingConfig 中的 autoSubscribe 为 false 时有效。
| 参数名 | 描述 |
|---|---|
uids | UID 组成的数组,为用逗号隔开的字符串,例如 "1","2","3"。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
startService()
int io.agora.recording.RecordingSDK.startService()该方法手动启动录制。
仅在 RecordingConfig 中的 triggerMode 参数为 manually(手动模式)时有效。。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
stopService()
int io.agora.recording.RecordingSDK.stopService()该方法手动暂停录制。
仅在 RecordingConfig 中的 triggerMode 参数为 manually(手动模式)时有效。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
getProperties()
RecordingEngineProperties io.agora.recording.RecordingSDK.getProperties()获取录制属性信息。
注解
- 必须要在加入频道后调用。
- 目前仅支持获取录制路径信息。
- 该方法与 onUserJoined 的区别是: onUserJoined 只能在加入频道后有其他用户进入频道时使用。
返回值
录制属性,详见 RecordingEngineProperties。
setUserBackground()
int io.agora.recording.RecordingSDK.setUserBackground(int uid, String imagePath)该方法设置指定 UID 用户的背景图片。当指定 UID 用户在线且没有发送视频流时,会显示该背景图片。
注解
该设置对 Agora Web SDK 的用户无效。
| 参数名 | 描述 |
|---|---|
uid | 该用户的 UID。 |
imagePath | 背景图片路径。仅支持本地 JPEG 文件。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
setLogLevel()
void io.agora.recording.RecordingSDK.setLogLevel(int level)该方法设置 log 过滤等级。
设置完成后,只有等级低于和等于所设 level 的 log 才会被生成。默认值为 5。
| 参数名 | 描述 |
|---|---|
level | log 过滤等级:
|
类成员变量说明
MAX_USER_ACCOUNT_LENGTH
int io.agora.recording.RecordingSDK.MAX_USER_ACCOUNT_LENGTH = 256用户名的最大长度。