1

Android MediaDrm 文档只有最简单用例的序列图。它没有说明具有多个连续加密密钥的 DASH 流应该如何工作。(例如,前 10 个用 keyA 加密,接下来的 20 个用 keyB 加密)

考虑到每个 DRM 会话只能持有一个密钥,并且每个 MediaCodec 只能配置一个 DRM 会话。我该如何执行以下操作:

  • 请注意,除了检查所有 CryptoInfo.key 值或等待 CryptoException.ERROR_NO_KEY 之外,密钥已更改。
  • 将 MediaCodec 切换到新的 DRM 会话而不影响播放?(停止、冲洗、重新配置)
4

1 回答 1

2

在查看另一个实现时,我发现正在使用以下属性字符串。

mediaDrm.setPropertyString("sessionSharing", "enable");

显然,设置此项允许 DRM 实现在需要时使用由 MediaDrm 对象创建的任何会话中的密钥,而无需重新配置 MediaCodec。

令人沮丧的是,在 Android 文档或其他任何在线网站中都没有提到该属性字符串。我看到它也在Chromium MediaDrmBridge 代码中使用,仅此而已。

于 2020-05-26T15:22:18.297 回答