From fe2fc8b73f2b288cc1d4245b341d660238fa8f1a Mon Sep 17 00:00:00 2001 From: olly Date: Wed, 2 Sep 2020 17:01:01 +0100 Subject: [PATCH] Add useful DownloadRequest to MediaItem conversion method PiperOrigin-RevId: 329722775 --- .../android/exoplayer2/demo/PlayerActivity.java | 12 +----------- .../android/exoplayer2/offline/DownloadHelper.java | 9 +-------- .../android/exoplayer2/offline/DownloadRequest.java | 13 +++++++++++++ 3 files changed, 15 insertions(+), 19 deletions(-) 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 5c8d3cc934..370db4ac70 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 @@ -550,17 +550,7 @@ public class PlayerActivity extends AppCompatActivity @Nullable DownloadRequest downloadRequest = downloadTracker.getDownloadRequest(checkNotNull(item.playbackProperties).uri); - if (downloadRequest != null) { - MediaItem mediaItem = - item.buildUpon() - .setStreamKeys(downloadRequest.streamKeys) - .setCustomCacheKey(downloadRequest.customCacheKey) - .setDrmKeySetId(downloadRequest.keySetId) - .build(); - mediaItems.add(mediaItem); - } else { - mediaItems.add(item); - } + mediaItems.add(downloadRequest != null ? downloadRequest.toMediaItem() : item); } return mediaItems; } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java index 5b21573eca..df2d10ae53 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java @@ -448,14 +448,7 @@ public final class DownloadHelper { DataSource.Factory dataSourceFactory, @Nullable DrmSessionManager drmSessionManager) { return createMediaSourceInternal( - new MediaItem.Builder() - .setUri(downloadRequest.uri) - .setCustomCacheKey(downloadRequest.customCacheKey) - .setMimeType(downloadRequest.mimeType) - .setStreamKeys(downloadRequest.streamKeys) - .build(), - dataSourceFactory, - drmSessionManager); + downloadRequest.toMediaItem(), dataSourceFactory, drmSessionManager); } private final MediaItem.PlaybackProperties playbackProperties; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadRequest.java b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadRequest.java index 31d86349ce..1fa1655445 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadRequest.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadRequest.java @@ -22,6 +22,7 @@ import android.os.Parcel; import android.os.Parcelable; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Util; import com.google.common.collect.ImmutableList; @@ -220,6 +221,18 @@ public final class DownloadRequest implements Parcelable { newRequest.data); } + /** Returns a {@link MediaItem} for the content defined by the request. */ + public MediaItem toMediaItem() { + return new MediaItem.Builder() + .setMediaId(id) + .setUri(uri) + .setCustomCacheKey(customCacheKey) + .setMimeType(mimeType) + .setStreamKeys(streamKeys) + .setDrmKeySetId(keySetId) + .build(); + } + @Override public String toString() { return mimeType + ":" + id;