Encrypted Media Extensions API

Baseline 已广泛支持

此功能已成熟,并可在多种设备和浏览器版本上运行。自 2019 年 3 月以来,它已在所有浏览器中可用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

加密媒体扩展 API 提供了用于控制受数字版权管理 (DRM) 方案约束的内容播放的接口。

可以通过 Navigator.requestMediaKeySystemAccess() 访问此 API。

接口

MediaEncryptedEvent

表示当 HTMLMediaElement 遇到某些初始化数据时抛出的特定 encrypted 事件。

MediaKeyMessageEvent

当内容解密模块 (CDM) 为会话生成消息时,包含内容及相关数据。

MediaKeys

表示一组密钥,关联的 HTMLMediaElement 可以在播放期间使用这些密钥来解密媒体数据。

MediaKeySession

表示与内容解密模块 (CDM) 进行消息交换的上下文。

MediaKeyStatusMap

按密钥 ID 划分的媒体密钥状态的只读映射。

MediaKeySystemAccess

提供对密钥系统以用于解密和/或内容保护提供程序的访问。

其他接口的扩展

加密媒体扩展 API 扩展了以下 API,并增加了列出的功能。

HTMLMediaElement

HTMLMediaElement.mediaKeys 只读

提供一个 MediaKeys 对象,该对象表示元素在播放期间可用于解密媒体数据的密钥集。

HTMLMediaElement.setMediaKeys()

设置将在播放期间用于解密媒体的 MediaKeys

encrypted 事件

当媒体中遇到初始化数据时,会在 HTMLMediaElement 上触发的事件,表明媒体已加密。

返回一个 Promise,该 Promise 解析为一个 MediaKeySystemAccess 对象,可用于访问特定的媒体密钥系统,进而用于创建用于解密媒体流的密钥。

规范

规范
加密媒体扩展
# navigator-extension-requestmediakeysystemaccess

浏览器兼容性