云端录制
更新时间: 2024/06/14 18:23:52
为满足用户在会议过程录制和备案等需求,NERoom 提供云端录制功能,支持会议过程的录制。
通过云端录制功能,您可以将会议视频的内容录制并储存下来,以便后续提供给更多人观看回放或存档。
前提条件
-
已开通 NERoom 房间组件、IM 套餐包、聊天室和音视频通话 2.0。
-
建议开启消息抄送服务,接收云端录制事件的相关回调。
实现步骤
-
调用如下接口添加云端录制状态的监听。
func addRoomListener(listener: NERoomListener) func onRoomCloudRecordStateChanged(state: NERoomCloudRecordState, operateBy: NERoomMember?)
名称 类型 描述 state NERoomCloudRecordState 云端录制状态,RecordingStart 表示云端录制中;RecordingStop 表示未在云端录制。 operateBy NERoomMember 修改云端录制状态的操作者 示例代码如下:
NERoomKit.shared().roomService.getRoomContext(roomUuid: "房间ID")?.addRoomListener(listener: self) /// 房间云录制状态回调 /// - Parameters: /// - state 云录制状态 /// - operateBy 状态变更的操作者 func onRoomCloudRecordStateChanged(state: NERoomCloudRecordState, operateBy: NERoomMember?) { }
-
在初始化之后,加入房间前,通过
NERoomRtcController.setParameters
设置开启云端录制功能。客户端的录制参数用于指定本端参与的录制模式。可设置的录制参数如下:
参数 说明 kNERtcKeyRecordAudioEnabled 是否开启云端音频录制。默认为 false,即关闭音频录制 示例代码如下:
roomContext?.rtcController.setParameters(["kNERtcKeyRecordAudioEnabled": true])
-
调用
joinRoom
接口加入房间。示例代码如下:
let params = NEJoinRoomParams() params.roomUuid = "xx" params.userName = "xx" params.role = "xx" let options = NEJoinRoomOptions() NERoomKit.shared().roomService.joinRoom(params: params, options: options) { code, string, context in if code == 0 { print("Successfully join room") } else { print("Failed to join room. rease:\(string ?? "")") } }
-
参与者调用
startCloudRecord
方法开始录制。触发
onRoomCloudRecordStateChanged
回调。事件中包含state
(云端录制状态)和operateBy
(状态变更操作者信息)。示例代码如下:
let roomContext = NERoomKit.shared().roomService.getRoomContext(roomUuid: "房间ID") roomContext?.startCloudRecord() { code, message, data in // to do })
-
参与者调用
stopCloudRecord
方法停止录制。所有录制的参与者均关闭音频和视频开关或退出房间时自动关闭录制。
示例代码如下:
roomContext?.stopCloudRecord() { code, message, data in // to do }
-
参与者可以可以调用
getRoomCloudRecordList
方法获取指定房间中的录制文件列表。获取的单个视频文件信息,包括:视频 ID、视频名称、各个视频格式的播放地址、各个视频格式的下载地址、各个视频格式的视频大小、视频截图地址、视频所属分类 ID 和名称、视频播放时长和视频转码完成时间。
示例代码如下:
NERoomKit.shared().roomService.getRoomCloudRecordList(roomArchiveId: "roomArchiveId ") { code, message, data in }
此文档是否对你有帮助?