@Override public byte[] executeKeyRequest(UUID uuid, KeyRequest request) throws Exception { String url = request.getLicenseServerUrl(); if (forceDefaultLicenseUrl || TextUtils.isEmpty(url)) { url = defaultLicenseUrl; } Map<String, String> requestProperties = new HashMap<>(); // Add standard request properties for supported schemes. String contentType = C.PLAYREADY_UUID.equals(uuid) ? "text/xml" : (C.CLEARKEY_UUID.equals(uuid) ? "application/json" : "application/octet-stream"); requestProperties.put("Content-Type", contentType); if (C.PLAYREADY_UUID.equals(uuid)) { requestProperties.put("SOAPAction", "http://schemas.microsoft.com/DRM/2007/03/protocols/AcquireLicense"); } // Add additional request properties. synchronized (keyRequestProperties) { requestProperties.putAll(keyRequestProperties); } return executePost(dataSourceFactory, url, request.getData(), requestProperties); }
@Override public byte[] executeKeyRequest(UUID uuid, ExoMediaDrm.KeyRequest request) throws Exception { return streamingModularDrm.executeKeyRequest(new ModularDrmKeyRequest(request.getLicenseServerUrl(), request.getData())); } }
@Override public KeyRequest getKeyRequest( byte[] scope, @Nullable List<DrmInitData.SchemeData> schemeDatas, int keyType, @Nullable HashMap<String, String> optionalParameters) throws NotProvisionedException { SchemeData schemeData = null; byte[] initData = null; String mimeType = null; if (schemeDatas != null) { schemeData = getSchemeData(uuid, schemeDatas); initData = adjustRequestInitData(uuid, schemeData.data); mimeType = adjustRequestMimeType(uuid, schemeData.mimeType); } MediaDrm.KeyRequest request = mediaDrm.getKeyRequest(scope, initData, mimeType, keyType, optionalParameters); byte[] requestData = adjustRequestData(uuid, request.getData()); String licenseServerUrl = request.getDefaultUrl(); if (TextUtils.isEmpty(licenseServerUrl) && schemeData != null && !TextUtils.isEmpty(schemeData.licenseServerUrl)) { licenseServerUrl = schemeData.licenseServerUrl; } return new KeyRequest(requestData, licenseServerUrl); }