当用户希望录制当前会议视频时,可通过录制 API 实现。平台 API 封装了小鱼易连平台录制功能,开发者通过 SDK 可快速实现录制功能。
录制文件将保存在小鱼易连云平台,结合服务端 API 可对录制文件进行后续查询下载等操作。
录制功能的实现主要分为:启动录制、停止录制、注册录制状态回调、录制权限回调、录制结果回调等;
enableCheckRecordPermission
为true启用录制权限查询;XYRTCClient.setFeatureConfig({enableCheckRecordPermission: true});
record-permission
消息来获取当前云会议室录制权限;// 录制权限
XYRTCClient.on('record-permission', (data: IRecordPermission) => {
const { authorize } = data;
//...
});
参数:IRecordPermission
meeting-control
消息监听会控是否设置禁止录制;XYRTCClient.on('meeting-control', (e: IMeetingControl) => {
// 禁止录制
const { recordIsDisabled } = e;
})
参数:IMeetingControl
record-status-notification
消息监听远端或会控当前录制状态;// 远端终端(或会控)开启/关闭录制操作,远端录制状态上报
// 远端开启录制,记录录制状态,本地不可以进行录制
XYRTCClient.on('record-status-notification', (data: IRecordStatusNotification) => {
const { isStart, isLocal, status } = data;
// 远端开启录制
if (isStart && !isLocal) {
// 记录录制状态,更新UI显示
}
// 远端停止录制
if (!isStart) {
}
});
回调参数:IRecordStatusNotification
recording-state-changed
消息监听本地开启、关闭录制状态;// 本地开启/关闭录制操作,录制状态上报
XYRTCClient.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('录制完成,录制视频已保存到云会议室管理员的文件夹中');
}
});
回调参数:IRecordingStateChanged
// 本地开启录制
await XYRTCClient.startCloudRecord();
// 本地停止录制
await XYRTCClient.stopCloudRecord();