Android MediaDrm文档 只有一个最简单的用例的序列图。它并没有说一个有多个连续加密密钥的DASH流应该如何工作。例如,前10s用keyA加密,后20s用keyB加密)。
考虑到每个DRM会话只能持有一个密钥,每个MediaCodec只能配置一个DRM会话。如何才能做到以下几点。
在看另一个实现的时候,我发现使用了下面的属性字符串。
mediaDrm.setPropertyString("sessionSharing", "enable");
显然,设置这个属性允许DRM实现在需要时使用MediaDrm对象创建的任何会话的密钥,而无需重新配置MediaCodec。
令人沮丧的是,在Android文档或网上其他任何地方也没有提到这个属性字符串。我看到它在 Chromium MediaDrmBridge代码 也是,这就是全部。