这篇帮助你通过自定义录制的方式接入 GME 服务端录制功能。
一、使用场景
GME 对实时语音流提供服务端录制能力,帮助开发者实现内容留存、内容管理、内容再生产等场景。
·全量录制:支持录制应用内全量语音房间按房间维度混流、按用户维度单流。
·自定义录制:支持录制用户指定房间按房间维度混流、按用户维度单流。录制后的音频文件将存储在你账号下的对象存储(COS)服务中。
这篇仅针对自定义录制的开发接入方法进行说明。若你需要对应用开启全量录制,请参见 开发指南-全量录制
二、前提条件
·已开通实时语音服务:可参见 服务开通指引。
·已开通服务端录制服务:目前服务端录制功能针对白名单用户提供,请 提交工单申请 开通白名单。
·已接入 GME SDK:包括核心接口和实时语音接口的接入,详情可参见 Native SDK 快速接入、Unity SDK 快速接入、Unreal SDK 快速接入。
三、录制范围
你可通过服务端接口指定需要录制的房间 ID 混流或房间内用户单流。针对指定录制的房间 ID,你可以通过服务端接口参数指定需要录制的玩家白名单,或无需录制的玩家黑名单。
四、相关接口
·StartRecord() 开始录制:你可在这个接口参数中定义录制单流或混流、指定需要录制的 RoomID、指定订阅的白名单用户 ID 或黑名单用户 ID。
·StopRecord() 结束录制:你可以通过这个接口,对某个 taskid 停止录制。若你没有记录 taskid,则需要先通过 DescribeTaskInfo() 获取指定房间正在进行的录制任务 taskid。
·ModifyRecordInfo() 更新录制信息:你可以通过这个接口,对某个 taskid 更新录制信息。包括更新录制类型、更新订阅的白名单用户 ID 或黑名单用户 ID。若你没有记录 taskid,则需要先通过 DescribeTaskInfo() 获取指定房间正在进行的录制任务 taskid。
·DescribeTaskInfo() 查询房间录制信息:你可以通过这个接口,查询指定房间的录制信息。包括进行中的录制任务 taskid、订阅的白名单/黑名单用户 ID。
·DescribeRecordInfo() 查询录制任务信息:你可以通过这个接口,查询某个 taskid 的任务信息。包括录制类型、录制的房间 ID、录制的用户 ID、录制文件信息
五、录制机制
| 机制项 | 描述 |
| 录制任务启动机制 | 调用 StartRecord() 接口后,指定的房间录制任务将会启动。 |
| 录制任务终止机制 | 调用 StopRecord() 接口后,指定的房间录制任务将会结束。启动任务后,任务最长持续24小时,24小时之后自动终止录制,需要重启录制任务。 |
| 录音文件生成时机 | 房间混流录音文件:房间录制任务启动后,若房间已有用户,则混流音频文件立刻开始生成;若房间内无用户,则第一个用户进房后,混流音频文件立刻开始生成。用户单流录音文件:房间录制任务启动后,在录制范围内的用户进房,则该用户的单流音频文件立刻开始生成。 |
| 录制任务分片机制 | 当单个音频文件时长达到两个小时,将自动进行音频文件分片。当用户关麦,用户单流录制音频将自动分片,用户开麦后启动新的分片。若录制中的任务异常中断,任务自动重连后将启动新的分片。 |
| 录制任务事件通知机制 | 录制任务事件通过回调机制通知到你配置的回调地址。当发生这些事件时,你会收到回调通知:录制开始、录制停止、录制文件上传完成。关于回调信息的详情,请参见 录制回调说明。 |
六、存储位置
GME 服务端录制,录制完成后的音频文件将存储在你账号下的对象存储 COS 服务中的指定存储桶。存储桶地域由你指定,可选的地域列表请参见 对象存储地域说明。
七、录制文件格式
文件格式以 .mp3 格式进行录制。
八、录制文件命名规则
·用户单流录制文件:bizid_roomid_userid/${任务开始时间}_audio.mp3
·房间混流录制文件:bizid_roomid/${taskid}_${任务开始时间}_audio.mp3
注意:参数说明:
九、接入步骤
1. 在控制台完成录制服务配置
2. 调用服务端接口,定义录制范围
3. 接收录制任务回调(可选)
4. 查看/管理录制文件
十、步骤1:在控制台完成录制服务配置
登录 GME 控制台,进入服务管理菜单,对希望启用录制服务的应用单击设置,进入应用详情页。
十一、1. 开通/关闭录制服务
在页面中对语音录制服务单击 修改 ,将录制开关置为 开启 。
首次开启录制服务时,GME 将会向你申请服务授权,以便于访问你的对象存储 COS 服务,你需要在弹窗页面需要同意授权后,才能正常开启服务端录制服务。
十二、2. 录音文件存储配置
1. 在 录制文件存储桶 单击 绑定 。
2. 在 绑定存储桶弹窗中,你可以绑定一个已有的 COS 存储桶(已有的存储桶需要你在 COS 控制台 先行创建),或新建一个存储桶。
十三、3. 录制事件回调配置(可选)
如果你希望接收录制服务的事件回调,可以配置回调地址。操作路径:进入应用详情页面,在页面中对语音录制服务单击 修改 ,在 回调地址 单击 修改 ,在弹窗中输入接收回调的 URL 地址。目前仅针对录制任务完成状态推送事件回调消息。
十四、4. 录制范围配置
录制范围可选自定义录制或全量录制。你此时应选中自定义录制,否则调用服务端相关接口将会失败。完成上述配置后,单击 保存,录制服务即可开启。若你不再需要使用录制服务,请及时在控制台将录制服务开关置为 关闭, 避免产生预期之外的费用。
十五、步骤2:接收录制任务回调(可选)
如果你在 步骤1 中配置了回调地址,则可以接收录制任务事件回调。
十六、步骤3:调用服务端接口,定义录制范围
你需要根据业务场景实际需求来调用相关接口。在调用时序和流程的设计上,请注意:
·仅支持对已存在的 RoomId 发起开始录制请求。若 RoomId 不存在,录制任务将创建失败。
·若你没有主动调用停止录制,在房间内有用户的情况下,录制进程将一直保持。若房间内用户已全部退房,原录制任务进程将保持12小时。在这段保持的时间内,若用户重新进房,将自动开始录制。若已超过录制进程的保持时间,用户进房将不会自动开始录制。
十七、步骤4:查看/管理录制文件
一个录制任务结束后的数分钟内即可生成完成的音频文件。你需要登录你的 对象存储 COS 控制台 对录制文件进行查看和管理。