【问题标题】:Android - How to get CLEARKEY_UUID from MediaDrmAndroid - 如何从 MediaDrm 获取 CLEARKEY_UUID
【发布时间】:2021-12-28 05:19:59
【问题描述】:

有什么方法可以从 MediaDrm 中提取 CLEARKEY_UUID(唯一 id),就像我们为 WIDEVINE_UUID 做的那样。我可以分享我们获得 WIDEVINE_UUID 的示例代码,所以有人可能会明白我的要求。

UUID wideVineUuid = new UUID(-0x121074568629b532L, -0x5c37d8232ae2de13L);
MediaDrm mediaDrm = new MediaDrm(wideVineUuid);` 
byte[] wideVineId = new byte[0];
wideVineId = mediaDrm.getPropertyByteArray(MediaDrm.PROPERTY_DEVICE_UNIQUE_ID);
android.util.Base64.encodeToString(wideVineId, Base64.NO_WRAP);

【问题讨论】:

    标签: uniqueidentifier unique-id widevine


    【解决方案1】:

    https://dashif.org/identifiers/content_protection/ 所述,Clearkey UUID 为e2719d58-a985-b3c9-781a-b030af78d30e,因此您需要在创建MediaDrm 时使用UUID(-0x1d8e62a7567a4c37L, 0x781AB030AF78D30EL) 才能访问MediaDrm.PROPERTY_DEVICE_UNIQUE_ID 属性。

    请注意,还有 W3C 通用 PSSH UUID,它在当时使用,即 1077efec-c0b2-4d02-ace3-3c1e52e2fb4b (UUID(0x1077EFECC0B24D02L, 0xACE33C1E52E2FB4BL)),但您几乎肯定想要第一个。

    【讨论】:

    • 不,我想要代码 sn-p(如果有)来获取 ClearKey 或通用 PSSH UUID。
    • 我假设你的意思是MediaDrm.PROPERTY_DEVICE_UNIQUE_ID。在这种情况下,您只需使用您提供的完全相同的代码,但将第一行中的 UUID 替换为答案中的一个 UUID。如果这不是您的意思,那么您需要更清楚究竟您需要什么。
    • 这是我做的第一件事,在相同的代码中替换了 UUID,但是出现了 null 异常。所以我认为上面的代码只是为了获取 WideVine 的 UUID,还有其他方法可以获取 Common PSSH 唯一 ID。
    • 它的'java.lang.IllegalArgumentException',不是空异常。
    • 当底层 DRM 系统不支持请求的属性时会引发该异常。所以大概 clearkey CDM 没有提供唯一标识符(这是有道理的,因为 clearkey 不是 DRM 并且不需要这个标识符)。
    猜你喜欢
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 2021-03-12
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    相关资源
    最近更新 更多