MediaKeySession - 表示与内容解密模块进行消息交换的上下文
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
MediaKeySession 是 EncryptedMediaExtensions 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 的定义 |
工作草案 | 初始定义。 |
桌面浏览器兼容性
| 特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| 基础支持 | 42 | 支持 | 未知 | 未知 | 支持 | 未知 |
closed | 42 | 13 | 未知 | 未知 | 支持 | 未知 |
expiration | 42 | 13 | 未知 | 未知 | 支持 | 未知 |
keyStatuses | 42 | 13 | 未知 | 未知 | 支持 | 未知 |
sessionId | 42 | 13 | 未知 | 未知 | 支持 | 未知 |
onkeystatuseschange | 55 | 未知 | 未知 | 未知 | 42 | 未知 |
onmessage | 55 | 未知 | 未知 | 未知 | 42 | 未知 |
close | 42 | 13 | 未知 | 未知 | 支持 | 未知 |
generateRequest | 42 | 13 | 未知 | 未知 | 支持 | 未知 |
load | 42 | 13 | 未知 | 未知 | 支持 | 未知 |
remove | 42 | 13 | 未知 | 未知 | 支持 | 未知 |
update | 42 | 13 | 未知 | 未知 | 支持 | 未知 |
移动浏览器兼容性
| 特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
|---|---|---|---|---|---|---|---|
| 基础支持 | 43 | 42 | 支持 | 未知 | 未知 | 支持 | 未知 |
closed | 43 | 42 | 支持 | 未知 | 未知 | 支持 | 未知 |
expiration | 43 | 42 | 支持 | 未知 | 未知 | 支持 | 未知 |
keyStatuses | 43 | 42 | 支持 | 未知 | 未知 | 支持 | 未知 |
sessionId | 43 | 42 | 支持 | 未知 | 未知 | 支持 | 未知 |
onkeystatuseschange | 43 | 55 | 支持 | 未知 | 未知 | 42 | 未知 |
onmessage | 43 | 55 | 支持 | 未知 | 未知 | 42 | 未知 |
close | 43 | 42 | 支持 | 未知 | 未知 | 支持 | 未知 |
generateRequest | 43 | 42 | 支持 | 未知 | 未知 | 支持 | 未知 |
load | 43 | 42 | 支持 | 未知 | 未知 | 支持 | 未知 |
remove | 43 | 42 | 支持 | 未知 | 未知 | 支持 | 未知 |
update | 43 | 42 | 支持 | 未知 | 未知 | 支持 | 未知 |