Android PlayReady的AMediaDrm_getKeyRequest中init的预期值

Android PlayReady的AMediaDrm_getKeyRequest中init的预期值,android,android-ndk,drm,playready,Android,Android Ndk,Drm,Playready,背景: 我想在Android上解密类型为video/mp4的EME内容。我使用PlayReady UUID打开了一个MediaDrm实例AMediaDrmKeyType是KEY\u TYPE\u流媒体 我无法从AMediaDrm\u getKeyRequest获取密钥请求。我怀疑我提供的init数据不正确,因为这是我唯一不确定的参数 我能找到的唯一信息在中,但不是很具体: /* * init container-specific data, its meaning is interpreted

背景:

我想在Android上解密类型为video/mp4的EME内容。我使用PlayReady UUID打开了一个
MediaDrm
实例
AMediaDrmKeyType
KEY\u TYPE\u流媒体

我无法从
AMediaDrm\u getKeyRequest
获取密钥请求。我怀疑我提供的init数据不正确,因为这是我唯一不确定的参数

我能找到的唯一信息在中,但不是很具体:

/*
* init container-specific data, its meaning is interpreted based on the mime type
* provided in the mimeType parameter.  It could contain, for example, the content
* ID, key ID or other data obtained from the content metadata that is required in
* generating the key request. init may be null when keyType is KEY_TYPE_RELEASE.
*/

media_status_t AMediaDrm_getKeyRequest(AMediaDrm *, const AMediaDrmScope *scope,
    const uint8_t *init, size_t initSize, const char *mimeType, AMediaDrmKeyType keyType,
    const AMediaDrmKeyValue *optionalParameters, size_t numOptionalParameters,
    const uint8_t **keyRequest, size_t *keyRequestSize);
对于其他DRM库,密钥请求API通常需要一个PlayReady PSSH框。我用
AMediaDrm\u getKeyRequest()
尝试过这一点,但我只得到一个一般性错误-10000

我还尝试了文档中建议的内容ID或密钥ID,但没有成功


对于PlayReady内容,调用AMediaDrm_getKeyRequest()的预期初始数据是什么?

如果您能够创建MediaDRM实例,我猜您的设备实际上支持PlayReady DRM,即使Widevine是Android上通常的默认DRM,而常规Android设备在默认情况下不需要支持PlayReady(我想安卓电视就是这样)但是你能分享它是什么类型的设备以及PlayReady是如何包含在其中的吗,即在OEM上还是通过其他方式?唯一允许我分享的设备是Nvidia屏蔽。在目标设备上,PlayReady由OEM提供。很难找到这种情况的开放共享示例,因为Widevine在Android上更常见,但是如果你看一下这个opensoure项目,它有一个示例调用,显示了他们如何从PSSH设置init:我能够通过发送服务器获得的完整的PlayReady PSSH使其工作。