💡
原文中文,约900字,阅读约需2分钟。
📝
内容提要
本文讨论了Web前端多媒体开发中的MediaKeySession,重点介绍了与内容解密模块(CDM)交互的remove()和close()接口。remove()用于删除会话数据,close()用于通知CDM释放资源。建议在视频播放结束后使用close(),而在播放中断时使用remove()。不同浏览器对这些API的实现存在差异,刷新浏览器可释放资源。
🎯
关键要点
- 本文讨论了Web前端多媒体开发中的MediaKeySession,重点介绍了remove()和close()接口。
- remove()用于删除与当前对象关联的所有会话数据,close()用于通知CDM释放资源。
- 建议在视频播放结束后使用close(),在播放中断时使用remove()。
- 不同浏览器对这些API的实现存在差异,刷新浏览器可释放资源。
- MediaKeySession.closed属性可以探测会话结束信号。
- hls.js提供了标准的实现方式:mediaKeySession.remove().finally() { mediaKeySession.close() }。
- 注意浏览器的保护机制,刷新浏览器可以释放CDM侧的资源。
❓
延伸问答
MediaKeySession的remove()和close()接口有什么区别?
remove()用于删除会话数据,而close()用于通知CDM释放资源。
在视频播放结束后应该使用哪个接口?
建议在视频播放结束后使用close()接口。
如果视频播放中断,应该如何处理MediaKeySession?
在播放中断时,建议使用remove()接口。
不同浏览器对MediaKeySession的实现有什么差异?
不同浏览器在实现remove()和close()时可能存在差异,有些浏览器不支持remove()方法。
如何检测MediaKeySession是否已关闭?
可以通过MediaKeySession.closed属性来探测会话是否结束。
刷新浏览器对MediaKeySession有什么影响?
刷新浏览器可以释放CDM侧的资源,包括管理的会话数据。
➡️