通过录制功能,用户可以保存当前会议的视频内容。平台封装了小鱼易连的录制能力,开发者通过 SDK 可以快速集成该功能。
录制文件会自动存储在小鱼易连云平台,用户可通过服务端 API 对录制文件进行查询、下载及后续管理。
录制功能的实现包括以下几个关键步骤:
在创建 XYClient
模块后,调用 setFeatureConfig 方法,设置enableCheckRecordPermission
为true
以启用录制权限查询功能。
使用以下消息监听录制权限和状态的变化:
通过 record-permission 消息监听获取当前云会议室录制权限,如果没有权限,则本地不可进行录制,录制权限可以在管理平台云会议室设置中开启;
通过 meeting-control 消息监听会控是否设置禁止录制,如果禁止录制,则本地不可进行录制;
通过 record-status-notification 消息监听远端或会控当前录制状态,如果远端或会控开启录制,则本地无法进行录制;
通过 recording-state-changed 消息监听本地录制状态的变化;
在满足录制权限要求且远端/会控未开启录制的情况下,调用 startCloudRecord 开启录制;调用
XYClient.setFeatureConfig({
...
enableCheckRecordPermission: true
});
record-permission
消息来获取当前云会议室录制权限;// 录制权限
XYClient.on('record-permission', (data: IRecordPermission) => {
const { authorize } = data;
//...
});
meeting-control
消息监听会控是否设置禁止录制;XYClient.on('meeting-control', (e: IMeetingControl) => {
// 禁止录制
const { recordIsDisabled } = e;
})
record-status-notification
消息监听远端或会控当前录制状态;// 远端终端(或会控)开启/关闭录制操作,远端录制状态上报
// 远端开启录制,记录录制状态,本地不可以进行录制
XYClient.on('record-status-notification', (data: IRecordStatusNotification) => {
const { isStart, isLocal, status } = data;
// 远端开启录制
if (isStart && !isLocal) {
// 记录录制状态,更新UI显示
}
// 远端停止录制
if (!isStart) {
}
});
回调参数:IRecordStatusNotification
recording-state-changed
消息监听本地开启、关闭录制状态;// 本地开启/关闭录制操作,录制状态上报
XYClient.on('recording-state-changed', (data: IRecordingStateChanged) => {
const { reason, state, reasonText } = data;
if (reason !== 'STATE:200') {
// 录制失败,提示原因
message.info(reasonText);
return;
}
if (state === RecordingState.RECORD_STATE_STARTED) {
message.info('开启录制成功');
}
if (state === RecordingState.RECORD_STATE_IDLE) {
message.info('录制完成,录制视频已保存到云会议室管理员的文件夹中');
}
});
// 本地开启录制
await XYClient.startCloudRecord();
// 本地停止录制
await XYClient.stopCloudRecord();
方法
事件