我正在开发一个应用程序,用于播放受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);
我想知道genymops虚拟设备是否是问题的原因。如果是这样,是否可以配置genymops使其与DRM一起工作?任何帮助都将不胜感激。
您可以在管理器上注册错误侦听器,以了解发生的情况:
manager.setOnErrorListener(new DrmManagerClient.OnErrorListener() {
public void onError(DrmManagerClient drmManagerClient, DrmErrorEvent event) {
Log.i(TAG, "Error Type : " + event.getType());
}
});
private final static long DEVICE_IS_PROVISIONED = 0;
private final static long DEVICE_IS_NOT_PROVISIONED = 1;
private final static long DEVICE_IS_PROVISIONED_SD_ONLY = 2;
private final static String WIDEVINE_MIME_TYPE = "video/wvm";
public static boolean isDeviceWidevineDRMProvisioned(Context context)
{
boolean isDrmAvailable = true;
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
if (currentapiVersion < android.os.Build.VERSION_CODES.KITKAT)
{
//As Media DRM Package is available only after KITKAT(API Level 19)
isDrmAvailable = false;
} else
{
DrmManagerClient drmManagerClient = new DrmManagerClient(context);
DrmInfoRequest drmInfoRequest = new DrmInfoRequest(DrmInfoRequest.TYPE_REGISTRATION_INFO, WIDEVINE_MIME_TYPE);
drmInfoRequest.put("WVPortalKey", "key provided for drm in widevine portal");
DrmInfo drmInfo = drmManagerClient.acquireDrmInfo(drmInfoRequest);
if (drmInfo != null)
{
String kWVDrmInfoRequestStatusKey = (String) drmInfo.get("WVDrmInfoRequestStatusKey");
String drmPath = (String) drmInfo.get("drm_path");
if ((kWVDrmInfoRequestStatusKey != null && Integer.parseInt(kWVDrmInfoRequestStatusKey) == DEVICE_IS_NOT_PROVISIONED) || (drmPath != null && drmPath.length() == 0))
{
//not supported
isDrmAvailable = false;
}
}
}
return isDrmAvailable;
}
上述方法不适用于我,acquireDrmInfo(请求)总是返回null。学习Exo玩家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();
}
}
问题内容: 我是詹金斯的新手。我只是在Windows 2016服务器上设置了詹金斯。我正在创建将git用于scm的新作业。当我去建立工作时,它会创建文件夹和git。它卡在git fetch上。它超时。我已经将詹金斯设置为服务。我使用本地管理员帐户登录服务器,以尝试消除权限问题。从git fetch日志中显示的错误是GitException,然后返回状态代码-1073741510。我搜索了,找不到任
问题内容: 有谁知道如何检查以确保在AngularJS中无法提取资源? 例如: 有任何想法吗? 问题答案: 当出现错误时,您的第一个回调函数之后的另一个回调函数应触发。取自文档和论坛帖子: HTTP GET“类”操作:Resource.action([参数],[成功],[错误]) 非GET“类”操作:Resource.action([参数],postData,[成功],[错误]) 非GET实例操作
我得到以下exeption连接到Mssql服务器。 我在属性中使用相同的配置连接到JDBC,但在尝试连接到R2DBC时出现问题。在Rest时发生,而不是在启动应用程序时发生。
我最近升级了我的项目。 我的项目生成失败并出现错误: 任务:检查样式主失败 . gradle\daemon\4.10.2\etc\check style\checkstyle-suppressions.xml(系统找不到指定路径) 这是我的gradle构建文件:
我试图建立一个基本的网页,允许用户在数据库的mysql表中添加一行,以便打开LED灯和使用arduino。然而,当我尝试提交表单时,页面返回500状态,mysql查询没有执行。我在我的电脑上运行linux-apache-mysql-php服务器。为什么会这样?
我们正在构建一个android项目,当我们试图构建该项目时,我们得到了android资源构建失败 由于奇怪的原因,它指向一个不是我们项目的一部分的文件,该文件位于 C:\location.gradle\caches\transforms-2\files-2.1\87cdecd973dcf2cf22fdc9f513d1a506\roundkornerlayouts-0.4.0\res\values\