---
title: ImageCapture API:拍照与摄像参数控制
keywords:
- ImageCapture
- takePhoto
- getPhotoCapabilities
- torch
- zoom
description: 使用 ImageCapture 从视频轨获取照片并控制摄像参数(闪光灯、变焦等),提升拍照体验与稳定性,含能力探测与回退。
categories:
- 应用软件
- 编程开发
---
概述
ImageCapture 允许对 MediaStreamTrack 执行拍照与参数控制(如变焦与闪光灯)。需从摄像头视频轨创建 ImageCapture 实例并检查能力。
用法/示例
const stream = await navigator.mediaDevices.getUserMedia({ video: { facingMode: 'environment' } })
const track = stream.getVideoTracks()[0]
const ic = new ImageCapture(track)
const photo = await ic.takePhoto({ imageHeight: 1080 })
const url = URL.createObjectURL(photo)
// 能力探测与参数设置
const caps = await ic.getPhotoCapabilities()
if (caps.torch) await ic.setOptions({ torch: true })
if (caps.zoom && caps.zoom.min < 2 && caps.zoom.max >= 2) await ic.setOptions({ zoom: 2 })
工程建议
- 检查能力并提供 UI 控件;在不支持环境回退到
<video>+drawImage生成帧。 - 管理 Blob URL 生命周期与释放,避免内存泄漏。
- 处理权限与设备切换,记录失败原因与用户提示。
参考与验证
- MDN:ImageCapture — https://developer.mozilla.org/docs/Web/API/ImageCapture
- web.dev:Image Capture — https://web.dev/articles/image-capture

发表评论 取消回复