capture.requestCamera()
通过可信宿主 UI 申请摄像头。成功返回会话级只读句柄。
Syntax
const stream = await host.capture.requestCamera(constraints, options?);
Parameters
constraints: CameraConstraints 使用模块页的封闭结构;对象必填、字段可选。options?: CallOptions 可取消等待中的可信 UI;这些字段不是浏览器原始 constraints。
Return value
CameraStream | null
CameraStream 使用模块页的封闭结构;实际 facing、尺寸、stride、frameBytes 和 nominalFrameRate 在句柄生命周期内不变。指定 facing 时它是硬约束;未指定时宿主可选择任一朝向,但必须返回实际值。名义帧率不得超过 maxFrameRate,实际到达可以更低。
Examples
startButton.onclick = async () => {
const stream = await host.capture.requestCamera({
facing: 'user', maxWidth: 1280, maxHeight: 720,
});
if (stream) await preview(stream);
};
Errors
特有错误:denied、activation-required、device-unavailable、cancelled、limit-exceeded。只有平台提供能与权限拒绝可靠区分的可信选择器时,用户在该选择器中关闭才返回 null;浏览器把关闭和拒绝都报告为权限拒绝时统一返回 denied,不得猜测用户意图。
Requirements
- 能力:
host:capture.requestCamera - 可信用户激活和系统确认:必须
- 可取消:是;调用方取消返回
cancelled - 信任档位:yellow