MediaCrypto
类可以与 结合使用MediaCodec
来解码加密的媒体数据。加密方案分配有 16 字节 UUID,该方法isCryptoSchemeSupported(UUID)
可用于查询设备是否支持给定方案。 http://developer.android.com/reference/android/media/MediaCrypto.html
但是什么是加密方案 UUID,我在哪里可以得到它?好像我错过了。
提前致谢 :)
MediaCrypto
类可以与 结合使用MediaCodec
来解码加密的媒体数据。加密方案分配有 16 字节 UUID,该方法isCryptoSchemeSupported(UUID)
可用于查询设备是否支持给定方案。 http://developer.android.com/reference/android/media/MediaCrypto.html
但是什么是加密方案 UUID,我在哪里可以得到它?好像我错过了。
提前致谢 :)
UUID 是插件标识符,因此 UUID 取决于 OEM 提供的内容
下面的代码片段来自MediaDrmMockTest.java
(尝试使用模拟插件)
static final UUID mockScheme = new UUID(0x0102030405060708L, 0x090a0b0c0d0e0f10L);
MediaDrm文档说
该应用程序首先构造 MediaExtractor 和 MediaCodec 对象。它访问 DRM-scheme-identifying UUID,通常来自内容中的元数据,并使用此 UUID 构造能够支持内容所需 DRM 方案的 MediaDrm 对象的实例。
所以 UUID 是从内容中提取的,如果你已经有的话,但我不清楚你是如何提取它的。
您可以在ExoPlayer 源代码中找到一些 UUID :
final UUID COMMON_PSSH_UUID = new UUID(0x1077EFECC0B24D02L, 0xACE33C1E52E2FB4BL);
final UUID CLEARKEY_UUID = new UUID(0xE2719D58A985B3C9L, 0x781AB030AF78D30EL);
final UUID WIDEVINE_UUID = new UUID(0xEDEF8BA979D64ACEL, 0xA3C827DCD51D21EDL);
final UUID PLAYREADY_UUID = new UUID(0x9A04F07998404286L, 0xAB92E65BE0885F95L);
(只需连接十六进制数字即可获得完整的 UUID,不带破折号。)DASH 文档列出了更多 UUID:
5E629AF5-38DA-4063-8977-97FFBD9902D4
9a27dd82-fde2-4725-8cbc-4234aa06ec09
F239E769-EFA3-4850-9C16-A903C6932EFB
和别的。