HTML 媒体捕获

W3C 推荐标准

此版本:
https://www.w3.org/TR/2018/REC-html-media-capture-20180201/
最新发布版本:
https://www.w3.org/TR/html-media-capture/
最新编辑草案:
https://w3c.github.io/html-media-capture/
测试套件:
https://w3c-test.org/html-media-capture/
实现报告:
https://www.w3.org/2009/dap/wiki/ImplementationStatus
先前版本:
https://www.w3.org/TR/2017/PR-html-media-capture-20171128/
编辑者:
Anssi Kostiainen, Intel
Ilkka Oksanen, Nokia(至 2012年5月10日)
Dominique Hazaël-Massieux, W3C(至 2012年5月10日)
翻译:
ру́сский язы́к
한국어
日本語
参与:
public-device-apis@w3.org
GitHub w3c/html-media-capture
GitHub w3c/html-media-capture/issues
GitHub w3c/html-media-capture/commits

请查看勘误,了解发布后报告的任何 错误或问题。

本规范的英文版本是唯一的规范性版本。也可能提供非规范性的 翻译


摘要

HTML 媒体捕获规范定义了一个 HTML 表单 扩展,它便于用户在文件上传控件中访问设备的媒体捕获 机制,例如摄像头或麦克风。

本文档状态

状态更新(2018 年 4 月):本段是资料性的。该规范已 就地更新,以包含翻译链接并纳入现有勘误;这些勘误仅包含 非规范性更改。

本节描述本文档在发布时的状态。其他文档可能会 取代本文档。当前 W3C 出版物列表以及本技术报告的最新修订版可在 W3C 技术报告 索引中找到,地址为 https://www.w3.org/TR/。

HTML 媒体捕获提案 推荐标准已于 2017 年 11 月 28 日发布,自那时起未再进行 进一步的规范性更改。 本文档的勘误记录为议题。 为此版本生成的实现报告表明, 存在两个独立且可互操作的实现。

本文档由设备与传感器工作 组作为推荐标准发布。 欢迎就本文档提出意见。请将意见发送至 public-device-apis@w3.org订阅归档),或在 GitHub 上提交议题

请参见工作组的实现 报告

本文档已由 W3C 成员、软件 开发者以及其他 W3C 小组和相关方审阅,并由主管认可为 W3C 推荐标准。 它是一份稳定文档,可用作参考材料或被其他 文档引用。W3C 在制定推荐标准中的作用是 提请大家关注该 规范并促进其广泛部署。这增强了 Web 的功能 和互操作性。

本文档由 一个 按照 W3C 专利政策运作的小组制作。 W3C 维护一份公开的专利 披露列表, 其中列出了与该小组交付成果相关的任何专利披露; 该页面还包括 披露专利的说明。实际知晓某项专利, 并认为该专利包含 必要 权利要求的个人,必须按照 W3C 专利政策第 6 节披露相关信息。

本文档受 2017 年 3 月 1 日 W3C 流程文档管辖。

1. 引言

本节是非规范性的。

HTML 媒体捕获规范扩展了 HTMLInputElement 接口,增加了一个 capture 属性。capture 属性允许作者以声明方式请求使用 媒体捕获 机制,例如摄像头或麦克风,从而 在文件上传控件中现场捕获媒体。

此扩展专门设计为简单且声明式, 并覆盖了 Web 平台媒体捕获功能的一个子集。 具体而言,该扩展不提供对捕获的详细作者 控制。需要更细粒度作者 控制的用例,可以通过使用另一个规范 Media Capture and Streams [MEDIACAPTURE-STREAMS] 来满足。例如,访问 来自主机设备的实时媒体流不在 本规范范围内。

2. 一致性

除标记为非规范性的章节外,本规范中的所有创作指南、图表、示例 和注释均为非规范性的。本规范中的其他所有内容均为 规范性的。

关键词 MUSTMUST NOTSHOULD 应按照 [RFC2119] 中的描述来解释。

本规范定义了适用于单一 产品的一致性标准:实现其所包含接口的 用户代理

使用 ECMAScript 实现本 规范中定义的 API 的实现,必须以与 Web IDL 规范 [WEBIDL-1] 中定义的 ECMAScript 绑定相一致的方式实现它们, 因为本规范使用了该规范及其术语。

3. 术语

input 元素、其 type 属性、 HTMLInputElement 接口、 accept 属性、文件 上传状态、枚举 属性缺失值 默认值无效 值默认值反射 均定义于 [HTML51]。

[CEReactions] WebIDL 扩展属性定义于 [custom-elements]。

VideoFacingModeEnum 枚举定义于 [MEDIACAPTURE-STREAMS]。

FileList 接口定义于 [FILE-API]。

在本规范中,术语 捕获控件 类型指 文件选择器控件的一种专门类型,它针对用户进行了优化,用于直接捕获由 accept 属性指定的 MIME 类型的媒体,并使用处于其 首选朝向模式媒体 捕获机制

术语 媒体捕获机制指设备的本地 媒体捕获设备,例如摄像头或麦克风。

首选朝向模式是对要使用的设备 媒体捕获 机制方向的提示。

4. 安全和隐私考量

本节是非规范性的。

建议本规范的用户代理实现,在通过麦克风或 摄像头开始捕获内容之前征求 用户同意。这可能是满足与用户数据隐私相关的监管、法律和最佳 实践要求所必需的。此外, 建议用户代理实现在输入设备启用时向 用户提供指示,并使 用户能够终止此类捕获。类似地,建议用户代理 提供用户控制,例如允许用户:

本规范建立在 <input type="file"> [HTML51] 和 [FILE-API] 规范所提供的安全和隐私保护之上;特别是, 预期任何 开始从用户设备捕获内容的提议,都需要在一个完全 由用户代理控制的 HTML 元素上进行特定的用户交互。

实现者应注意防止从捕获的媒体中额外泄露 对隐私敏感的数据。例如,将 用户位置嵌入捕获媒体的元数据(例如 EXIF)中,可能会 传输比用户预期更多的私密数据。

5. capture 属性

input 元素的 type 属性处于 文件 上传状态,且其 accept 属性被指定时, 本节中的规则适用。

partial interface HTMLInputElement {
    [CEReactions]
    attribute DOMString capture;
};

capture 属性是一个枚举 属性,其 状态指定用于媒体 捕获机制首选朝向模式

该属性的关键词为 userenvironment,它们分别映射到 相应的 状态 userenvironment。状态 userenvironment 的语义反映了 VideoFacingModeEnum 中定义的同名枚举值。

此外,还有第三种状态,即 implementation-specific 状态。

缺失值 默认值implementation-specific 状态。无效值 默认值也是 implementation-specific 状态。

如果用户代理无法支持首选朝向 模式,则它可以回退到映射到 implementation-specific 状态的实现特定默认 朝向模式,该状态表示实现应根据其默认 行为来行动。

capture IDL 属性 MUST 反射同名的相应 内容属性。

当指定 capture 属性时,用户代理 SHOULD 调用特定捕获控件 类型的文件选择器。

当指定 capture 属性时,用户代理 MUST NOT 将捕获的媒体保存到任何本地或 远程数据存储中。

当脚本获得对从文件选择器中选择的文件 (由 FileList 对象表示)的访问权限时,它们可以 使用各种 机制来存储捕获的媒体。这些机制不在 本规范范围内。

如果 accept 属性的值被设置为一个没有 关联捕获 控件类型的 MIME 类型,则用户 代理 MUST 像不存在 capture 属性一样行动。

A. 示例

本节是非规范性的。

以下示例演示如何给出提示,表明 首选让用户使用主机设备的媒体捕获能力来捕获特定 MIME 类型的 媒体。这里同时给出了使用 HTML 表单的简单 声明式示例,以及一个包含脚本的更高级 示例。

input 元素的 accept 属性设置为 image/*,并且 capture 属性如 示例 1示例 4中那样被指定时,文件选择器可以 渲染为 如下所示:

图像捕获状态下的文件选择器控件。

当未指定该属性时,文件选择器可以渲染为 如下所示:

文件上传状态下的文件选择器控件。

B. 参考文献

B.1 规范性参考文献

[custom-elements]
自定义元素。Domenic Denicola。 W3C。2016年10月13日。W3C 工作草案。URL:https://www.w3.org/TR/custom-elements/
[HTML51]
HTML 5.1 第 2 版。Steve Faulkner; Arron Eicholz; Travis Leithead; Alex Danilo。W3C。2017年10月3日。W3C 推荐标准。URL:https://www.w3.org/TR/html51/
[MEDIACAPTURE-STREAMS]
媒体捕获与流。 Daniel Burnett; Adam Bergkvist; Cullen Jennings; Anant Narayanan; Bernard Aboba。W3C。2017年10月3日。 W3C 候选推荐标准。URL:https://www.w3.org/TR/mediacapture-streams/
[RFC2119]
用于 RFC 中表示 要求级别的关键词。S. Bradner。IETF。1997年3月。最佳当前实践。URL:https://tools.ietf.org/html/rfc2119
[WEBIDL-1]
WebIDL Level 1。Cameron McCormack。W3C。2016年12月15日。W3C 推荐标准。URL:https://www.w3.org/TR/2016/REC-WebIDL-1-20161215/

B.2 资料性参考文献

[FILE-API]
File API。Marijn Kruisselbrink。W3C。2017年 10月26日。W3C 工作草案。URL:https://www.w3.org/TR/FileAPI/
[HTML]
HTML 标准。Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jägenstedt; Simon Pieters。WHATWG。现行标准。URL:https://html.spec.whatwg.org/multipage/
[WEBIDL]
Web IDL。Cameron McCormack; Boris Zbarsky; Tobie Langel。W3C。2016年12月15日。W3C 编辑草案。URL:https://heycam.github.io/webidl/