视频录制(VideoRecorder)
VideoRecorder 用于在 Scripting 中创建和控制一个可编程的视频录制会话,完整封装了相机选择、音视频采集、编码、暂停/恢复、缩放、对焦、补光灯控制以及最终文件写入流程。
该 API 适用于自定义相机界面、视频采集工具、自动化录制脚本等场景。
核心能力概览
- 支持前置与后置摄像头
- 支持指定摄像头类型(广角、超广角、长焦等)
- 支持多种帧率(24 / 30 / 60 / 120)
- 支持音频录制的启用与禁用
- 支持多种系统 Session Preset
- 支持多种视频编码格式(HEVC / H.264 / ProRes 等)
- 支持录制过程中的暂停与恢复
- 支持对焦点、曝光点独立控制
- 支持变焦与平滑变焦(ramp)
- 支持补光灯(Torch)控制
- 明确的状态机与状态回调
- 明确的生命周期管理(prepare / reset / dispose)
类型定义
CameraPosition
表示使用的摄像头朝向。
CameraType
表示摄像头的物理类型。 是否支持某一类型取决于设备硬件能力。
VideoRecorderState
状态说明
VideoCaptureSessionPreset
表示捕捉会话的分辨率预设。
VideoCodec
表示视频编码格式。 具体是否可用取决于设备与系统支持情况。
VideoOrientation
表示输出视频的方向。
构造函数
settings 参数
参数说明
-
camera
position使用的摄像头位置,默认"back"preferredTypes偏好的摄像头类型列表 如果未提供,内部将根据摄像头位置自动选择合适的类型
-
frameRate 目标帧率,支持 24 / 30 / 60 / 120,默认 30 实际帧率受设备与分辨率限制
-
audioEnabled 是否录制音频,默认
true -
sessionPreset 捕捉会话分辨率预设,默认
"high" -
videoCodec 视频编码格式,默认
"hevc" -
videoBitRate 视频平均码率(bit/s),未指定时由系统自动选择
-
orientation 输出视频方向,默认
"portrait" -
mirrorFrontCamera 前置摄像头是否镜像,默认
true仅在使用前置摄像头时生效
只读属性
minZoomFactor
当前设备支持的最小变焦倍率。
maxZoomFactor
当前设备支持的最大变焦倍率。
currentZoomFactor
当前变焦倍率。
displayZoomFactor
用户可读的变焦倍率。
hasTorch
当前摄像头是否支持补光灯。
torchMode
当前补光灯模式。
状态与回调
state
表示当前录制器所处的状态。
onStateChanged
状态变化回调。
-
当
state === "failed"details为错误信息描述 -
当
state === "finished"details为最终视频文件的完整保存路径
方法说明
prepare()
准备录制器资源,包括相机会话、输入输出与音视频管线配置。
使用约束
- 必须在
startRecording之前调用 - 成功后状态变为
ready - 失败会进入
failed状态
startRecording(toPath)
开始录制视频。
参数
- toPath 视频文件保存路径(完整路径)
使用约束
- 仅允许在
ready状态下调用 - 调用后状态变为
recording
pauseRecording()
暂停当前录制。
使用约束
- 仅允许在
recording状态下调用 - 调用后状态变为
paused - 时间线会被正确压缩,不产生空白帧
resumeRecording()
恢复已暂停的录制。
使用约束
- 仅允许在
paused状态下调用 - 调用后状态回到
recording
stopRecording()
停止录制并生成最终视频文件。
行为说明
- 状态先进入
finishing - 文件写入完成后进入
finished - 最终文件路径通过
onStateChanged回调返回
reset()
重置录制器状态,用于开始新一轮录制。
使用场景
- 已完成一次录制
- 或录制失败后希望复用同一实例
行为说明
- 成功后状态回到
idle - 可再次调用
prepare
setTorchMode()
设置补光灯模式。
setFocusPoint()
设置对焦点。
- 坐标为归一化值,范围
0.0 ~ 1.0 (0,0)表示画面左上角,(1,1)表示右下角
setExposurePoint()
设置曝光点,坐标规则与对焦点一致。
resetFocus()
恢复自动对焦模式。
resetExposure()
恢复自动曝光模式。
setZoomFactor()
立即设置变焦倍率。
- 值应位于
minZoomFactor与maxZoomFactor之间
rampZoomFactor()
以平滑方式调整变焦倍率。
toFactor为目标倍率rate为变化速率,单位为每秒的 2 次幂变化
resetZoom()
将变焦倍率恢复为默认值(通常为 1.0)。
dispose()
释放并销毁录制器。
使用约束
- 调用后实例不可再使用
- 会释放相机、音频与底层系统资源
- 建议在页面或脚本生命周期结束时调用
典型使用流程
使用建议
- 始终监听
onStateChanged以掌握完整状态变化 - 不要在未调用
prepare的情况下开始录制 - 每次完成录制后,如需复用实例,应先调用
reset - 生命周期结束时务必调用
dispose释放资源
