From 6a2f94ec4ba5d7cdba2e8ca45a52fd5604cc9ca8 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Fri, 27 Jul 2018 06:10:51 -0700 Subject: [PATCH] Document top-level limitation of AdsMediaSource Issue: #4591 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=206307948 --- .../android/exoplayer2/source/ads/AdsMediaSource.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java index fed3d1526e..66370828b7 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java @@ -47,7 +47,11 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -/** A {@link MediaSource} that inserts ads linearly with a provided content media source. */ +/** + * A {@link MediaSource} that inserts ads linearly with a provided content media source. This source + * cannot be used as a child source in a composition. It must be the top-level source used to + * prepare the player. + */ public final class AdsMediaSource extends CompositeMediaSource { /** Factory for creating {@link MediaSource}s to play ad media. */ @@ -315,7 +319,9 @@ public final class AdsMediaSource extends CompositeMediaSource { boolean isTopLevelSource, @Nullable TransferListener mediaTransferListener) { super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener); - Assertions.checkArgument(isTopLevelSource); + Assertions.checkArgument( + isTopLevelSource, + "AdsMediaSource must be the top-level source used to prepare the player."); final ComponentListener componentListener = new ComponentListener(); this.componentListener = componentListener; prepareChildSource(DUMMY_CONTENT_MEDIA_PERIOD_ID, contentMediaSource);