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 | 支持 | 未知 | 未知 | 支持 | 未知 |