VideoRecorder 拓展:前台预览录制 + 后台无预览录制

« 返回首页

logo VideoRecorder视频录制拓展

组件对比

  VideoRecorder BackgroundVideoRecorder
预览画面 有(需绑定布局组件)
应用最小化 录制中断 录制继续
典型场景 用户主动录制、扫码录像 后台监控、静默录制
独有功能 摄像头切换、闪光灯、静音 取消录制、录制中截图

两者共享同一组编码属性(Quality、BitRate、FrameRate 等),录音权限逻辑相同。


VideoRecorder — 前台模式(带预览)

在布局中显示摄像头实时画面,录制视频。

使用流程

  1. 拖入 VideoRecorder 和一个布局组件(如 VerticalArrangement)
  2. 设置属性(Quality、BitRate、UseFrontCamera 等)
  3. 调用 InitializeCamera(布局) 创建预览画面
  4. 调用 StartRecording() 开始录制
  5. 调用 StopRecording() 停止,VideoRecorded 事件返回文件路径

示例

当 Screen1.Initialize 时:
  设置 VideoRecorder1.Quality = "1080P"
  设置 VideoRecorder1.BitRate = 6000000
  调用 VideoRecorder1.InitializeCamera(VerticalArrangement1)

当 ButtonRecord.Click 时:
  调用 VideoRecorder1.StartRecording()

当 ButtonStop.Click 时:
  调用 VideoRecorder1.StopRecording()

当 VideoRecorder1.VideoRecorded(路径) 时:
  设置 Label1.Text = "已保存: " + 路径

BackgroundVideoRecorder — 后台模式(无预览)

无预览画面,应用最小化后录制继续。适合后台监控、静默录制等场景。

使用流程

  1. 设置属性(Quality、BitRate、FrameRate 等)
  2. 调用 StartRecording() 开始录制
  3. 调用 StopRecording() 停止

示例

当 Screen1.Initialize 时:
  设置 BackgroundVideoRecorder1.Quality = "1080P"
  设置 BackgroundVideoRecorder1.BitRate = 6000000

当 ButtonStart.Click 时:
  调用 BackgroundVideoRecorder1.StartRecording()

当 ButtonStop.Click 时:
  调用 BackgroundVideoRecorder1.StopRecording()

当 BackgroundVideoRecorder1.VideoRecorded(路径) 时:
  设置 Label1.Text = "已保存: " + 路径

属性

通用属性(两个组件共享)

UseFrontCamera
是否使用前置摄像头,默认 false
FlashOn
是否启用闪光灯,默认 false
CameraOrientation
摄像头方向(0/90/180/270),默认自动检测
Quality
视频画质预设,默认 HIGHEST。支持 HIGHESTLOWEST720P1080P480P1920x1080
BitRate
视频编码码率(bps),默认 0 自动根据分辨率计算。建议 2000000~12000000
FrameRate
视频帧率,默认 30。支持 30/60
AudioBitRate
音频编码码率(bps),默认 128000。建议 64000~320000
RecordAudio
是否录制音频,默认 true
RecordingDuration
当前录制时长(毫秒),只读。未录制时返回 0,录制中返回已录制的毫秒数

VideoRecorder 专用属性

ScaleType
预览缩放类型,0=FillCenter,1=FitCenter(默认)
AspectRatio
宽高比,0=4:3,1=16:9,-1=默认(默认)

只读常量

FeatureBackCamera
后置摄像头特性标识,值为 "back_camera"
FeatureFrontCamera
前置摄像头特性标识,值为 "front_camera"
FeatureAutofocusCamera
自动对焦特性标识,值为 "autofocus"
FeatureCameraFlash
闪光灯特性标识,值为 "flash"
ScaleTypeFillCenter
填充居中缩放类型,值为 0
ScaleTypeFitCenter
适应居中缩放类型,值为 1
AspectRatio4n3
4:3 宽高比,值为 0
AspectRatio16n9
16:9 宽高比,值为 1
AspectRatioDefault
默认宽高比,值为 -1

事件

通用事件

RecordingStarted()
录制开始时触发
VideoRecorded(videoPath)
录制完成并保存时触发,参数为视频文件路径
RecordingPaused()
录制暂停时触发
RecordingResumed()
录制恢复时触发
ErrorOccurred(errorMsg)
发生错误时触发

VideoRecorder 事件

CameraPreviewStarted()
预览启动时触发
CameraPreviewStopped()
预览停止时触发
CameraSwitched(isFrontCamera)
摄像头切换时触发
RecordingMuted()
静音录制时触发
RecordingUnmuted()
取消静音时触发

BackgroundVideoRecorder 事件

PhotoCaptured(filePath)
录制中截图成功时触发
PhotoCaptureError(message)
截图失败时触发

方法

通用方法

StartRecording()
开始录制。根据 RecordAudio 属性决定是否录制音频,录制音频时需要录音权限
StopRecording()
停止录制并保存视频,触发 VideoRecorded 事件
PauseRecording()
暂停录制(需要 Android 7.0+)
ResumeRecording()
恢复录制
IsFeatureAvailable(feature)
检查设备是否支持指定特性。可选值:back_camerafront_cameraflashautofocus
GetSupportedVideoQualities()
获取当前摄像头支持的画质列表
HasRecordAudioPermission()
检查是否有录音权限
RequestRecordAudioPermission()
打开系统应用权限设置页面,引导用户开启录音权限

VideoRecorder 方法

InitializeCamera(container)
在指定布局中初始化摄像头预览。container 为布局组件(如 VerticalArrangement)
StopCamera()
关闭摄像头并移除预览画面
SwitchCamera()
切换前后摄像头(录制中不可切换)
EnableFlash(enable)
设置闪光灯状态,预览启动后使用
IsFlashOn()
查询闪光灯是否开启
MuteRecording()
静音录制(停止音频采集,视频继续录制)
UnMuteRecording()
取消静音(恢复音频录制)

BackgroundVideoRecorder 方法

CancelRecording()
取消录制并删除临时文件
CapturePhoto()
录制中截图,自动保存到应用私有目录

编码参数参考

码率对照表(BitRate)

分辨率 建议码率 自动计算值
1080P (1920x1080) 6~10 Mbps 8 Mbps
720P (1280x720) 3~6 Mbps 4 Mbps
480P (720x480) 1.5~3 Mbps 2 Mbps
更低 1~2 Mbps 1.5 Mbps

Quality 预设值

  • HIGHEST - 设备支持的最高分辨率
  • LOWEST - 设备支持的最低分辨率
  • 1080P / 720P / 480P - 按高度匹配
  • 1920x1080 / 1280x720 - 指定具体分辨率

注意事项

  • 录制参数(码率/帧率/分辨率)在录制前设置,录制过程中不可修改
  • 暂停/恢复需要 Android 7.0+
  • VideoRecorder 录制中不可切换摄像头
  • BackgroundVideoRecorder 录制中可截图(CapturePhoto)
  • 需要摄像头和录音权限

拓展下载

收费拓展,请联系客服获取~

文档反馈