调用 API 录制
声网服务端录制 SDK 支持使用命令行或调用 API 的方式实现录制。你可以根据自己的开发习惯选择一种方式。本文介绍如何通过调用 API 实现录制。
前提条件
开始前请确保你已经完成集成录制 SDK,并将以下文件复制到你的项目:
- 编译生成的
librecording.so文件 - SDK 包中的
AgoraCoreService文件(位于bin文件夹) - SDK 包中的 Java 文件(位于
samples/java/src/io/agora/recording目录下)RecordingEventHandler.javaRecordingSDK.java/common/Common.java/common/RecordingConfig.java/common/RecordingEngineProperties.java
举例来说,假设项目顶层目录为 ROOT_DIR,将 librecording.so 文件复制到 ROOT_DIR/lib 目录下,将 AgoraCoreService 文件复制到 ROOT_DIR/bin 目录下,将上述 Java 文件复制到 ROOT_DIR/src/io/agora/recording 目录下。
运行 Java 程序时,设置 -Djava.library.path=ROOT_DIR/lib 参数来指定动态库的目录地址。此外你需要在开始录制时设置 RecordingConfig 中的 appliteDir 参数为 ROOT_DIR/bin。
调用 API 实现录制
加入频道并开始录制
调用 createChannel 方法创建并加入频道,随后开始录制。
appId:项目的 App ID,需要和你传入 RTC SDK 中的 App ID 一致。channelKey:如果待录制的频道使用了 token,你需要在该参数中传入 token。详见校验用户权限。name:待录制频道的频道名,必填。uid:录制使用的用户 ID,32 位无符号整数,取值范围 1 到 (232-1),需保证唯一性,必填。config:配置录制参数,选填,如不填则使用默认配置。详见RecordingConfig。
在默认情况下,录制实例加入频道后,监测到频道内有用户即开始录制。
如果你在 RecordingConfig 中将 triggerMode 设为了 MANUALLY_MODE(手动模式),需要调用 startService 开始录制,开始录制后可以调用 stopService 暂停录制。
startService 和stopService 必须在加入频道之后调用。
获取录制文件路径
加入频道后可以调用 getProperties 方法获取录制文件的存放路径。
当有用户加入频道时触发的 onUserJoined 回调中也包含录制文件的存放路径。
结束录制
录制完成后,调用 leaveChannel 方法离开频道,停止录制。
录制结束后如果需要再次开始录制,必须重新创建并加入频道。
在默认情况下,当频道空闲(无用户)超过 300 秒(在 RecordingConfig 中的 idleLimitSec 可以设置该时间)后,录制实例也会自动退出频道停止录制。
相关文档
在录制过程中,你还可以参考如下文档: