Add useful DownloadRequest to MediaItem conversion method

PiperOrigin-RevId: 329722775
This commit is contained in:
olly 2020-09-02 17:01:01 +01:00 committed by Oliver Woodman
parent b5a4dc8f36
commit fe2fc8b73f
3 changed files with 15 additions and 19 deletions

View File

@ -550,17 +550,7 @@ public class PlayerActivity extends AppCompatActivity
@Nullable @Nullable
DownloadRequest downloadRequest = DownloadRequest downloadRequest =
downloadTracker.getDownloadRequest(checkNotNull(item.playbackProperties).uri); downloadTracker.getDownloadRequest(checkNotNull(item.playbackProperties).uri);
if (downloadRequest != null) { mediaItems.add(downloadRequest != null ? downloadRequest.toMediaItem() : item);
MediaItem mediaItem =
item.buildUpon()
.setStreamKeys(downloadRequest.streamKeys)
.setCustomCacheKey(downloadRequest.customCacheKey)
.setDrmKeySetId(downloadRequest.keySetId)
.build();
mediaItems.add(mediaItem);
} else {
mediaItems.add(item);
}
} }
return mediaItems; return mediaItems;
} }

View File

@ -448,14 +448,7 @@ public final class DownloadHelper {
DataSource.Factory dataSourceFactory, DataSource.Factory dataSourceFactory,
@Nullable DrmSessionManager drmSessionManager) { @Nullable DrmSessionManager drmSessionManager) {
return createMediaSourceInternal( return createMediaSourceInternal(
new MediaItem.Builder() downloadRequest.toMediaItem(), dataSourceFactory, drmSessionManager);
.setUri(downloadRequest.uri)
.setCustomCacheKey(downloadRequest.customCacheKey)
.setMimeType(downloadRequest.mimeType)
.setStreamKeys(downloadRequest.streamKeys)
.build(),
dataSourceFactory,
drmSessionManager);
} }
private final MediaItem.PlaybackProperties playbackProperties; private final MediaItem.PlaybackProperties playbackProperties;

View File

@ -22,6 +22,7 @@ import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.google.android.exoplayer2.C; 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.Assertions;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
@ -220,6 +221,18 @@ public final class DownloadRequest implements Parcelable {
newRequest.data); 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 @Override
public String toString() { public String toString() {
return mimeType + ":" + id; return mimeType + ":" + id;