diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaSource.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaSource.java index 259f293a94..6c1d26cb07 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaSource.java @@ -180,15 +180,18 @@ public final class ProgressiveMediaSource extends BaseMediaSource @Override public ProgressiveMediaSource createMediaSource(MediaItem mediaItem) { checkNotNull(mediaItem.playbackProperties); - MediaItem.Builder builder = mediaItem.buildUpon(); - if (mediaItem.playbackProperties.tag == null) { - builder.setTag(tag); - } - if (mediaItem.playbackProperties.customCacheKey == null) { - builder.setCustomCacheKey(customCacheKey); + boolean needsTag = mediaItem.playbackProperties.tag == null && tag != null; + boolean needsCustomCacheKey = + mediaItem.playbackProperties.customCacheKey == null && customCacheKey != null; + if (needsTag && needsCustomCacheKey) { + mediaItem = mediaItem.buildUpon().setTag(tag).setCustomCacheKey(customCacheKey).build(); + } else if (needsTag) { + mediaItem = mediaItem.buildUpon().setTag(tag).build(); + } else if (needsCustomCacheKey) { + mediaItem = mediaItem.buildUpon().setCustomCacheKey(customCacheKey).build(); } return new ProgressiveMediaSource( - builder.build(), + mediaItem, dataSourceFactory, extractorsFactory, drmSessionManager,