agora::recording::IRecordingEngine类 参考
该类包含应用程序调用的主要方法。
构造及析构函数说明
~IRecordingEngine()
|
成员函数说明
createAgoraRecordingEngine()
|
该方法创建 IRecordingEngine 实例。
参数
参数名 | 描述 |
---|---|
appId | 希望录制的音视频通话中使用的 App ID,详见 获取 App ID。 |
eventHandler | 录制 SDK 所触发的事件通过 IRecordingEngineEventHandler 类回调通知应用程序。 |
返回值
joinChannel()
|
该方法让录制端加入频道,并开始录制。
- 由于录制端暂时未开放 requestToken 和 renewToken 接口,在获取 Token 时,请务必将服务到期时间 privilegeExpiredTs 设置为 0,表示权限一旦生成,永不过期。
- 同一个频道里不能出现两个相同的 UID,否则会产生未定义行为。
参数
参数名 | 描述 |
---|---|
channelKey | 用于鉴权的动态密钥。录制端的 channelKey 与 Native/Web SDK 保持一致。如果 Native/Web SDK 用了 token,该参数必须设为 token。详见校验用户权限。 |
channelId | 希望录制的音视频通话的频道名称。 |
uid | 录制使用的 UID。有两种设置方法:
|
config | 录制的详细设置,详见 RecordingConfig。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
joinChannelWithUserAccount()
|
该方法允许录制端使用 User Account 加入频道。
录制端成功加入频道后,会在本地触发 onLocalUserRegistered 和 onJoinChannelSuccess 回调。
参数
参数名 | 描述 |
---|---|
token | 用于鉴权的动态密钥。录制端的动态密钥必须与 Native/Web SDK 保持一致。如果 Native/Web SDK 用了 token,该参数必须设为 token。详见校验用户权限。 |
channelId | 待录制频道的频道名。 |
userAccount | 用户的 User Account。该参数为必填,最大不超过 255 字节,不可填 null。请确保加入频道的 User Account 的唯一性。以下为支持的字符集范围(共 89 个字符):
|
config | 录制的详细设置,详见 RecordingConfig。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
getUserInfoByUserAccount()
|
该方法通过 User Account 获取远端用户信息。
远端用户加入频道后,SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,并在本地触发 onUserInfoUpdated 回调。
收到 onUserInfoUpdated 回调后,你可以调用 getUserInfoByUserAccount
方法,通过传入 User Account 获取包含了指定用户 UID 的 UserInfo 对象。
参数
参数名 | 描述 |
---|---|
userAccount | 用户 User Account,必填。 |
userinfo |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
getUserInfoByUid()
|
该方法通过 UID 获取远端用户信息。
远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,并在本地触发 onUserInfoUpdated 回调。
收到 onUserInfoUpdated 回调后,你可以调用 getUserInfoByUid
方法,通过传入 UID 获取包含了指定用户 User Account 的 UserInfo 对象。
参数
参数名 | 描述 |
---|---|
uid | 用户 UID,必填。 |
userInfo |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
setVideoMixingLayout()
|
该方法设置视频合流布局。
合流模式下如果有视频,必须调用该方法设置布局。
参数
参数名 | 描述 |
---|---|
layout | 视频合流布局的设定,详见 VideoMixingLayout。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
stoppedOnError()
leaveChannel()
|
该方法让录制端退出频道,并释放占用的线程资源。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
release()
|
该方法销毁 IRecordingEngine 实例。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
getProperties()
|
该方法获取录制属性。
- 目前仅支持获取录制的媒体文件和 log 的存放路径。
- 该方法与 onUserJoined 都能获取录制文件存放路径,两者的区别在于, onUserJoined 只能在录制端加入频道后有其他用户进入频道时触发。
返回值
startService()
|
该方法手动启动录制。
仅在 RecordingConfig 中的 triggerMode 参数为 manually(手动模式)时有效。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
stopService()
|
该方法手动暂停录制。
仅在 RecordingConfig 中的 triggerMode 参数为 manually(手动模式)时有效。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
setUserBackground()
setLogLevel()
|
该方法设置 log 过滤等级。设置完成后,只有等级低于和等于所设 level 的 log 才会被生成。默认值为 5。
参数
参数名 | 描述 |
---|---|
level | 详见 agora_log_level。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。
updateSubscribeVideoUids()
|
该方法允许录制 SDK 只录制指定 UID 的视频。
参数
参数名 | 描述 |
---|---|
uids | UID 数组,为用逗号隔开的字符串,例如 "1","2","3"。 |
num | UID 的个数。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
updateSubscribeAudioUids()
|
该方法允许录制 SDK 只录制指定 UID 的音频。
参数
参数名 | 描述 |
---|---|
uids | UID 组成的数组,为用逗号隔开的字符串,例如 "1","2","3"。 |
num | UID 的个数。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
updateWatermarkConfigs()
|
该方法添加、更新或删除水印设置。
录制 SDK 支持三种水印:文字水印、时间戳水印和图片水印。
有以下情况:
- 如果你在调用 setVideoMixingLayout 方法时没有设置
wm_num
和wm_configs
参数,你可直接调用updateWatermarkConfigs
方法添加水印。 - 如果你在调用 setVideoMixingLayout 方法时已设置
wm_num
和wm_configs
参数添加了水印,你可调用updateWatermarkConfigs
方法修改水印个数和具体设置,从而增加、更新或删除水印;传值为空则删除全部已添加的水印。
参数
参数名 | 描述 |
---|---|
wm_num | 水印的个数。录制 SDK 最多支持 15 个水印,其中文字水印最多 10 个,时间戳水印最多 1 个,图片水印最多 4 个。 |
config | 水印的具体设置。WatermarkConfig 组成的数组。一个水印对应一个 WatermarkConfig。 |