gpt4 book ai didi

android - DRMManagerClient acquireDrmInfo 失败

转载 作者:行者123 更新时间:2023-11-29 14:49:02 27 4
gpt4 key购买 nike

我正在开发一个旨在播放受 Widevine 保护的内容的应用程序。我正在尝试在 Genymotion 虚拟 Android 设备上运行应用程序。但是当我这样做时,应用程序无法获取 DRM 信息。因此,以下代码返回 null,应用程序将不会继续进行。

    DrmInfoRequest request = new DrmInfoRequest(DrmInfoRequest.TYPE_REGISTRATION_INFO,
Settings.WIDEVINE_MIME_TYPE);
request.put("WVPortalKey", portal);
DrmInfo response = mDrmManager.acquireDrmInfo(request);

我想知道问题是否由 genymotion 虚拟设备引起。如果是这样,是否可以配置 genymotion 使其与 DRM 一起使用?任何帮助将不胜感激。

最佳答案

上面的方法对我不起作用,acquireDrmInfo(request) 总是返回null。经过学习Exo-player DashTestRunner .我使用以下方法获取 Widevine DRM 信息。

private static final UUID WIDEVINE_UUID = new UUID(0xEDEF8BA979D64ACEL, 0xA3C827DCD51D21EDL);

@TargetApi (Build.VERSION_CODES.JELLY_BEAN_MR2)
@SuppressWarnings("ResourceType")
private void getWVDrmInfo() {
MediaDrm mediaDrm = null;
try {
mediaDrm = new MediaDrm(WIDEVINE_UUID);

String vendor = mediaDrm.getPropertyString(MediaDrm.PROPERTY_VENDOR);
String version = mediaDrm.getPropertyString(MediaDrm.PROPERTY_VERSION);
String description = mediaDrm.getPropertyString(MediaDrm.PROPERTY_DESCRIPTION);
String algorithms = mediaDrm.getPropertyString(MediaDrm.PROPERTY_ALGORITHMS);
String securityLevel = mediaDrm.getPropertyString("securityLevel");
String systemId = mediaDrm.getPropertyString("systemId");
String hdcpLevel = mediaDrm.getPropertyString("hdcpLevel");
String maxHdcpLevel = mediaDrm.getPropertyString("maxHdcpLevel");
String usageReportingSupport = mediaDrm.getPropertyString("usageReportingSupport");
String maxNumberOfSessions = mediaDrm.getPropertyString("maxNumberOfSessions");
String numberOfOpenSessions = mediaDrm.getPropertyString("numberOfOpenSessions");

mediaDrm.release();
} catch (UnsupportedSchemeException e) {
e.printStackTrace();
}
}

关于android - DRMManagerClient acquireDrmInfo 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24892532/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com