mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Pass drm_key_request_properties in offline DRM downloads
Pass the drm_key_request_properties specified in the json list when donwloading thee offline Widevide license in the demo app. PiperOrigin-RevId: 342243441
This commit is contained in:
parent
8d84a50fa1
commit
dc86b625c5
@ -223,7 +223,7 @@ public class DownloadTracker {
|
||||
widevineOfflineLicenseFetchTask =
|
||||
new WidevineOfflineLicenseFetchTask(
|
||||
format,
|
||||
mediaItem.playbackProperties.drmConfiguration.licenseUri,
|
||||
mediaItem.playbackProperties.drmConfiguration,
|
||||
httpDataSourceFactory,
|
||||
/* dialogHelper= */ this,
|
||||
helper);
|
||||
@ -373,7 +373,7 @@ public class DownloadTracker {
|
||||
private static final class WidevineOfflineLicenseFetchTask extends AsyncTask<Void, Void, Void> {
|
||||
|
||||
private final Format format;
|
||||
private final Uri licenseUri;
|
||||
private final MediaItem.DrmConfiguration drmConfiguration;
|
||||
private final HttpDataSource.Factory httpDataSourceFactory;
|
||||
private final StartDownloadDialogHelper dialogHelper;
|
||||
private final DownloadHelper downloadHelper;
|
||||
@ -383,12 +383,12 @@ public class DownloadTracker {
|
||||
|
||||
public WidevineOfflineLicenseFetchTask(
|
||||
Format format,
|
||||
Uri licenseUri,
|
||||
MediaItem.DrmConfiguration drmConfiguration,
|
||||
HttpDataSource.Factory httpDataSourceFactory,
|
||||
StartDownloadDialogHelper dialogHelper,
|
||||
DownloadHelper downloadHelper) {
|
||||
this.format = format;
|
||||
this.licenseUri = licenseUri;
|
||||
this.drmConfiguration = drmConfiguration;
|
||||
this.httpDataSourceFactory = httpDataSourceFactory;
|
||||
this.dialogHelper = dialogHelper;
|
||||
this.downloadHelper = downloadHelper;
|
||||
@ -398,8 +398,10 @@ public class DownloadTracker {
|
||||
protected Void doInBackground(Void... voids) {
|
||||
OfflineLicenseHelper offlineLicenseHelper =
|
||||
OfflineLicenseHelper.newWidevineInstance(
|
||||
licenseUri.toString(),
|
||||
drmConfiguration.licenseUri.toString(),
|
||||
drmConfiguration.forceDefaultLicenseUri,
|
||||
httpDataSourceFactory,
|
||||
drmConfiguration.requestHeaders,
|
||||
new DrmSessionEventListener.EventDispatcher());
|
||||
try {
|
||||
keySetId = offlineLicenseHelper.downloadLicense(format);
|
||||
|
@ -64,6 +64,7 @@ import java.net.CookiePolicy;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/** An activity that plays media using {@link SimpleExoPlayer}. */
|
||||
public class PlayerActivity extends AppCompatActivity
|
||||
@ -535,7 +536,9 @@ public class PlayerActivity extends AppCompatActivity
|
||||
.setCustomCacheKey(downloadRequest.customCacheKey)
|
||||
.setMimeType(downloadRequest.mimeType)
|
||||
.setStreamKeys(downloadRequest.streamKeys)
|
||||
.setDrmKeySetId(downloadRequest.keySetId);
|
||||
.setDrmKeySetId(downloadRequest.keySetId)
|
||||
.setDrmLicenseRequestHeaders(getDrmRequestHeaders(item));
|
||||
|
||||
mediaItems.add(builder.build());
|
||||
} else {
|
||||
mediaItems.add(item);
|
||||
@ -543,4 +546,10 @@ public class PlayerActivity extends AppCompatActivity
|
||||
}
|
||||
return mediaItems;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static Map<String, String> getDrmRequestHeaders(MediaItem item) {
|
||||
MediaItem.DrmConfiguration drmConfiguration = item.playbackProperties.drmConfiguration;
|
||||
return drmConfiguration != null ? drmConfiguration.requestHeaders : null;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user