Far*_*man 2 android drm genymotion widevine android-drm
我正在开发一个应用程序,用于播放受 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);
Run Code Online (Sandbox Code Playgroud)
我想知道 genymotion 虚拟设备是否是问题的原因。如果是这样,是否可以配置 genymotion 使其与 DRM 一起使用?任何帮助将不胜感激。
小智 10
上述方法对我不起作用,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();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2747 次 |
| 最近记录: |