Skip to content

BizCameraCapture 摄像头采集 ​

基于 getUserMedia 的现场拍照组件:拍照 / 连拍(会话缩略图管理)、前后摄像头切换、镜像、分辨率与压缩输出、取景引导框(人脸圆框 / 证件人像框 / 三分线)、倒计时自拍;权限拒绝 / 无设备 / 非 HTTPS 等环境均有明确降级提示(error 事件可接管)。

适用于人脸 / 头像现场采集、证照翻拍归档、设备铭牌上报、门店巡检、售后举证。与 BizAvatarCropper 组成「拍照 → 裁剪」流水线。

浏览器要求:HTTPS 或 localhost;首次使用需授权摄像头权限。

基础拍照 ​

(未采集)需要浏览器授权摄像头
弹窗采集单张:v-model:visible + confirm 事件回传 BizCameraShot[](含 dataURL / Blob / 时间戳)。

拍照 → 头像裁剪流水线 ​

拍摄 → 圆形裁剪 → 72px 头像
guide="face" 人脸圆框引导采集,原图直接交给 BizAvatarCropper 裁出圆形头像。

巡检连拍 ​

已上报 0 张
max-shots 连拍上限;面板内缩略图可单删 / 清空,shots-change 实时回传清单。

前后摄像头与镜像 ​

镜像
面板内「翻转摄像头」切换前后置(移动端生效)
面板内「翻转摄像头」切换前置 / 后置(移动端);mirror 控制自拍镜像(默认开,所见即所得输出)。

压缩输出 ​

output-width 等比缩放(1280 采 → 640 出)+ quality JPEG 质量——省流上报场景。

倒计时拍摄 ​

面板内点「倒计时 3s 拍摄」,取景区中央倒数
countdown=3:面板出现「倒计时 3s 拍摄」按钮,取景区中央倒数后自动拍摄——双手持证留拍。

取景引导框 ​

三种引导:face 人脸圆框(遮罩聚焦)/ id-card 证件人像框 / third 三分构图线,均带场景提示文案。

工单表单内嵌 ​

工单标题
位置
现场照片
「现场照片」表单项:多张采集(上限 4)+ 缩略图预览,随工单提交。

环境降级监听 ​

拒绝权限提示后观察降级文案与 error 事件
error 事件:(未发生错误)
error 事件回传错误码(denied / unsupported / notfound / insecure / error)与文案——业务侧可上报或引导。

属性 ​

属性类型默认值说明
visible / v-model:visiblebooleanfalse弹窗显隐(开启自动拉流)
guide'face' | 'id-card' | 'third' | 'none''none'取景引导框
mirrorbooleantrue镜像(自拍语义,输出一致)
width / heightnumber1280 / 720请求的采集分辨率(ideal)
output-widthnumber0输出宽(等比压缩;0 原生)
qualitynumber0.9JPEG 质量 0~1
max-shotsnumber9连拍上限(0 不限)
countdownnumber0倒计时秒数(0 关闭)
titlestring'拍照采集'弹窗标题
stop-on-closebooleantrue关闭时自动停止流

事件 ​

事件名参数说明
update:visible(visible: boolean)弹窗显隐
open—流开启成功
close—弹窗关闭
shot(shot: BizCameraShot)单张拍成
shots-change(shots: BizCameraShot[])连拍清单变化
confirm(shots: BizCameraShot[])点「完成」回传全部并关窗
error(code, message)denied / unsupported / notfound / insecure / error
ts
interface BizCameraShot {
  seq: number        // 会话内递增序号
  dataUrl: string    // JPEG dataURL
  blob: Blob         // Blob 对象(可直接 FormData 上传)
  takenAt: number    // 拍摄时间戳
}

插槽 ​

插槽名说明
—无插槽

Expose ​

名称类型说明
start() => Promise<void>手动开启摄像头
stop() => void停止流
capture() => void程序化拍照
switchDevice() => Promise<void>切换前后摄像头
getShots() => BizCameraShot[]当前连拍清单副本