MediaKeySession - 表示与内容解密模块进行消息交换的上下文

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

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

属性

MediaKeySession.closed 只读

返回一个 Promise,当 MediaKeySession 关闭时发送信号解析,这个 promise 只能实现,永远不会被拒绝。关闭会话意味着与其关联的许可证和密钥不再对解密媒体数据有效。

MediaKeySession.expiration 只读

当前会话中的密钥不能再用于解密媒体数据的时间,或者如果不存在这样的时间则为 NaN。该值由 CDM 确定,并以自 1970 年 1 月 1 日 UTC 以来的毫秒数为单位进行测量。此值可能在会话生存期内发生更改,例如在操作触发窗口的启动时。

MediaKeySession.keyStatuses 只读

包含对当前会话密钥及其状态的只读 MediaKeyStatusMap 的引用。

MediaKeySession.sessionId 只读

包含 CDM 为当前媒体对象及其关联的密钥或许可证生成的唯一字符串。

事件处理程序

MediaKeySession.onkeystatuseschange

设置当会话中的键或其状态发生更改时调用的 EventHandler

MediaKeySession.onmessage

设置内容解密模块为会话生成消息时调用的 EventHandler

方法

MediaKeySession.close()

在通知不再需要当前媒体会话并且 CDM 应释放与该对象关联的任何资源并将其关闭之后,返回一个 Promise

MediaKeySession.generateRequest()

在基于初始化数据生成媒体请求之后,返回一个 Promise

MediaKeySession.load()

在加载指定会话对象的数据后,返回一个 Promise,该值解析为布尔值。

MediaKeySession.remove()

在删除与当前对象关联的任何会话数据后,返回一个 Promise,。

MediaKeySession.update()

将消息和许可证加载到 CDM 后,返回一个 Promise

规范

规范 状态 备注
Encrypted Media Extensions
MediaKeySession 的定义
工作草案 初始定义。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持42 支持 未知 未知 支持 未知
closed4213 未知 未知 支持 未知
expiration4213 未知 未知 支持 未知
keyStatuses4213 未知 未知 支持 未知
sessionId4213 未知 未知 支持 未知
onkeystatuseschange55 未知 未知 未知42 未知
onmessage55 未知 未知 未知42 未知
close4213 未知 未知 支持 未知
generateRequest4213 未知 未知 支持 未知
load4213 未知 未知 支持 未知
remove4213 未知 未知 支持 未知
update4213 未知 未知 支持 未知

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持4342 支持 未知 未知 支持 未知
closed4342 支持 未知 未知 支持 未知
expiration4342 支持 未知 未知 支持 未知
keyStatuses4342 支持 未知 未知 支持 未知
sessionId4342 支持 未知 未知 支持 未知
onkeystatuseschange4355 支持 未知 未知42 未知
onmessage4355 支持 未知 未知42 未知
close4342 支持 未知 未知 支持 未知
generateRequest4342 支持 未知 未知 支持 未知
load4342 支持 未知 未知 支持 未知
remove4342 支持 未知 未知 支持 未知
update4342 支持 未知 未知 支持 未知