【问题标题】:How to instantiate a MediaDrm object如何实例化 MediaDrm 对象
【发布时间】:2013-08-11 08:50:35
【问题描述】:

我正在使用 Nexus4 和 Android 4.3,我尝试使用新的 API public MediaDrm (UUID uuid),但我只能得到以下异常:UnsupportedSchemeException

由 UUID 引起的异常看起来不正确。

我尝试使用从 deviceId、网络 MAC 地址或从 DRM 服务器发送的令牌转换而来的 UUID。我提到的都是不正确的。

那么有谁知道获取这个 UUID 的正确方法是什么?

更多信息如下:

参数:

uuid 

加密方案的 UUID。

提前致谢。

【问题讨论】:

    标签: android android-mediaplayer drm


    【解决方案1】:

    UUID 是一个插件标识符,所以请联系 sansung。

    下面的截图来自MediaDrmMockTest.java(尝试使用mock插件)

    static final UUID mockScheme = new UUID(0x0102030405060708L, 0x090a0b0c0d0e0f10L);
    

    【讨论】:

      【解决方案2】:

      此 UUID 参数取决于您要使用的 DRM 方案。每个 MediaDRM 插件都定义了自己的 UUID。如果你看一下Mock DRM example,它正在使用0102030405060708090a0b0c0d0e0f10

      【讨论】:

      • 非常感谢,我找到了:) 但我也想知道如何从应用层而不是从框架中获取此 UUID。我的意思是是否有任何 API 可以为不同制造商的 DRM 插件获取此 UUID?
      • 参见MediaDRM:“应用程序首先构造 MediaExtractor 和 MediaCodec 对象。它通常从内容中的元数据访问 DRM-scheme-identifying UUID,并使用此 UUID 构造一个能够支持内容所需的 DRM 方案的 MediaDrm 对象。”您要么知道 UUID 是什么,因为它众所周知(例如 Widevine 规范),要么您从媒体内容的元数据中获取它。
      • 由于“字符太长”的限制,我将我的 cmets 分为 2 端: (1) 是的,MediaCodec 和 MediaExtractor 已在步骤 1 和 2 中实例化,但在步骤 3 中被阻止(获取对象MediaDrm)。
      • (2) 正如你提到的'它访问 DRM-scheme-identifying UUID',我只能找到相关的方法是'mediaExtractor.getPsshInfo()'并且总是得到异常:java.lang .NoSuchMethodError:android.media.MediaExtractor.getPsshInfo。正如您在上一篇文章中提到的从“Widevine 规范”或“媒体内容的元数据”获取 UUID,我在 DRM 插件中找不到它们。经过我的研究,Widevine 只有一个从会话中获得的“uniqueId”。而且我已经在一开始就使用'uniqueId'进行了测试,它不起作用。那我有什么误解吗?再次感谢:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 2018-09-06
      相关资源
      最近更新 更多