Keep local file open for DrmManagerService::acquireDrmInfo().
Bug: 7208979 Change-Id: I1b7798929f55b956e43bb9ed1a0f41dec9342be4
This commit is contained in:
@@ -4,10 +4,9 @@
|
||||
|
||||
package com.widevine.demo;
|
||||
|
||||
import java.util.EventListener;
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.FileInputStream;
|
||||
|
||||
//import java.util.HashMap;
|
||||
import java.util.EventListener;
|
||||
import java.util.Set;
|
||||
|
||||
import android.content.ContentValues;
|
||||
@@ -122,20 +121,23 @@ public class WidevineDrm {
|
||||
rightsAcquisitionInfo = new DrmInfoRequest(DrmInfoRequest.TYPE_RIGHTS_ACQUISITION_INFO,
|
||||
Settings.WIDEVINE_MIME_TYPE);
|
||||
|
||||
if (assetUri.startsWith("/sdcard")) {
|
||||
try {
|
||||
FileInputStream fis = new FileInputStream(assetUri);
|
||||
rightsAcquisitionInfo.put("FileDescriptorKey", fis.getFD().toString());
|
||||
}
|
||||
catch (java.io.IOException e) {
|
||||
logMessage("Unable to get fd for '" + assetUri + "'\n");
|
||||
}
|
||||
}
|
||||
rightsAcquisitionInfo.put("WVDRMServerKey", Settings.DRM_SERVER_URI);
|
||||
rightsAcquisitionInfo.put("WVAssetURIKey", assetUri);
|
||||
rightsAcquisitionInfo.put("WVDeviceIDKey", Settings.DEVICE_ID);
|
||||
rightsAcquisitionInfo.put("WVPortalKey", Settings.PORTAL_NAME);
|
||||
rightsAcquisitionInfo.put("WVCAUserDataKey", Settings.USER_DATA);
|
||||
|
||||
return rightsAcquisitionInfo;
|
||||
}
|
||||
|
||||
public DrmInfoRequest getDrmInfoRequest(String assetUri, FileDescriptor fd) {
|
||||
|
||||
DrmInfoRequest rightsAcquisitionInfo = getDrmInfoRequest(assetUri);
|
||||
|
||||
if (fd.valid()) {
|
||||
rightsAcquisitionInfo.put("FileDescriptorKey", fd.toString());
|
||||
}
|
||||
|
||||
return rightsAcquisitionInfo;
|
||||
}
|
||||
|
||||
@@ -175,7 +177,21 @@ public class WidevineDrm {
|
||||
|
||||
public int acquireRights(String assetUri) {
|
||||
|
||||
int rights = mDrmManager.acquireRights(getDrmInfoRequest(assetUri));
|
||||
int rights = 0;
|
||||
if (assetUri.startsWith("/sdcard")) {
|
||||
try {
|
||||
FileInputStream fis = new FileInputStream(assetUri);
|
||||
FileDescriptor fd = fis.getFD();
|
||||
rights = mDrmManager.acquireRights(getDrmInfoRequest(assetUri, fd));
|
||||
fis.close();
|
||||
}
|
||||
catch (java.io.IOException e) {
|
||||
logMessage("Unable to acquire rights for '" + assetUri + ": File I/O error'\n");
|
||||
}
|
||||
} else {
|
||||
rights = mDrmManager.acquireRights(getDrmInfoRequest(assetUri));
|
||||
}
|
||||
|
||||
logMessage("acquireRights = " + rights + "\n");
|
||||
|
||||
return rights;
|
||||
|
||||
Reference in New Issue
Block a user