diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java index 07f4dd2f6e..cbae6fdc06 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java @@ -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 { 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); diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index 78dd6e11a8..1e7168d89e 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -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 getDrmRequestHeaders(MediaItem item) { + MediaItem.DrmConfiguration drmConfiguration = item.playbackProperties.drmConfiguration; + return drmConfiguration != null ? drmConfiguration.requestHeaders : null; + } }