diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java index e2bd51582b..8b7ea65989 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java @@ -117,18 +117,22 @@ public class IntentUtil { Uri uri, Intent intent, String extrasKeySuffix) { @Nullable String mimeType = intent.getStringExtra(MIME_TYPE_EXTRA + extrasKeySuffix); @Nullable String title = intent.getStringExtra(TITLE_EXTRA + extrasKeySuffix); + @Nullable String adTagUri = intent.getStringExtra(AD_TAG_URI_EXTRA + extrasKeySuffix); MediaItem.Builder builder = new MediaItem.Builder() .setUri(uri) .setMimeType(mimeType) .setMediaMetadata(new MediaMetadata.Builder().setTitle(title).build()) - .setAdTagUri(intent.getStringExtra(AD_TAG_URI_EXTRA + extrasKeySuffix)) .setSubtitles(createSubtitlesFromIntent(intent, extrasKeySuffix)) .setClipStartPositionMs( intent.getLongExtra(CLIP_START_POSITION_MS_EXTRA + extrasKeySuffix, 0)) .setClipEndPositionMs( intent.getLongExtra( CLIP_END_POSITION_MS_EXTRA + extrasKeySuffix, C.TIME_END_OF_SOURCE)); + if (adTagUri != null) { + builder.setAdsConfiguration( + new MediaItem.AdsConfiguration.Builder(Uri.parse(adTagUri)).build()); + } return populateDrmPropertiesFromIntent(builder, intent, extrasKeySuffix).build(); } diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java index ac6a5037d4..f85aaa97c5 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java @@ -373,7 +373,8 @@ public class SampleChooserActivity extends AppCompatActivity mediaItem.setClipEndPositionMs(reader.nextLong()); break; case "ad_tag_uri": - mediaItem.setAdTagUri(reader.nextString()); + mediaItem.setAdsConfiguration( + new MediaItem.AdsConfiguration.Builder(Uri.parse(reader.nextString())).build()); break; case "drm_scheme": drmUuid = Util.getDrmUuid(reader.nextString()); diff --git a/docs/ad-insertion.md b/docs/ad-insertion.md index be1371f201..544488f14c 100644 --- a/docs/ad-insertion.md +++ b/docs/ad-insertion.md @@ -36,7 +36,11 @@ An ad tag URI can be specified when building a `MediaItem`: ~~~ MediaItem mediaItem = - new MediaItem.Builder().setUri(videoUri).setAdTagUri(adTagUri).build(); + new MediaItem.Builder() + .setUri(videoUri) + .setAdsConfiguration( + new MediaItem.AdsConfiguration.Builder(adTagUri).build()) + .build(); ~~~ {: .language-java} @@ -88,12 +92,18 @@ playlist from start to finish. MediaItem firstItem = new MediaItem.Builder() .setUri(firstVideoUri) - .setAdTagUri(adTagUri, /* adsId= */ adTagUri) + .setAdsConfiguration( + new MediaItem.AdsConfiguration.Builder(adTagUri) + .setAdsId(adTagUri) + .build()) .build(); MediaItem secondItem = new MediaItem.Builder() .setUri(secondVideoUri) - .setAdTagUri(adTagUri, /* adsId= */ adTagUri) + .setAdsConfiguration( + new MediaItem.AdsConfiguration.Builder(adTagUri) + .setAdsId(adTagUri) + .build()) .build(); player.addMediaItem(firstItem); player.addMediaItem(secondItem); diff --git a/docs/media-items.md b/docs/media-items.md index bede066c90..710ded16d6 100644 --- a/docs/media-items.md +++ b/docs/media-items.md @@ -137,7 +137,8 @@ To insert ads, a media item's ad tag URI property should be set: ~~~ MediaItem mediaItem = new MediaItem.Builder() .setUri(videoUri) - .setAdTagUri(adTagUri) + .setAdsConfiguration( + new MediaItem.AdsConfiguration.Builder(adTagUri).build()) .build(); ~~~ {: .language-java} diff --git a/library/core/src/test/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactoryTest.java b/library/core/src/test/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactoryTest.java index 9be9445f47..f15988a8c1 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactoryTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactoryTest.java @@ -166,9 +166,13 @@ public final class DefaultMediaSourceFactoryTest { } @Test - public void createMediaSource_withAdTagUri_callsAdsLoader() { + public void createMediaSource_withAdsConfiguration_callsAdsLoader() { Uri adTagUri = Uri.parse(URI_MEDIA); - MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA).setAdTagUri(adTagUri).build(); + MediaItem mediaItem = + new MediaItem.Builder() + .setUri(URI_MEDIA) + .setAdsConfiguration(new MediaItem.AdsConfiguration.Builder(adTagUri).build()) + .build(); DefaultMediaSourceFactory defaultMediaSourceFactory = new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()) .setAdsLoaderProvider(ignoredAdsConfiguration -> mock(AdsLoader.class)) @@ -180,9 +184,13 @@ public final class DefaultMediaSourceFactoryTest { } @Test - public void createMediaSource_withAdTagUri_adProvidersNotSet_playsWithoutAdNoException() { + public void createMediaSource_withAdsConfiguration_adProvidersNotSet_playsWithoutAdNoException() { MediaItem mediaItem = - new MediaItem.Builder().setUri(URI_MEDIA).setAdTagUri(Uri.parse(URI_MEDIA)).build(); + new MediaItem.Builder() + .setUri(URI_MEDIA) + .setAdsConfiguration( + new MediaItem.AdsConfiguration.Builder(Uri.parse(URI_MEDIA)).build()) + .build(); DefaultMediaSourceFactory defaultMediaSourceFactory = new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext()); @@ -192,10 +200,14 @@ public final class DefaultMediaSourceFactoryTest { } @Test - public void createMediaSource_withAdTagUriProvidersNull_playsWithoutAdNoException() { + public void createMediaSource_withAdsConfigurationProvidersNull_playsWithoutAdNoException() { Context applicationContext = ApplicationProvider.getApplicationContext(); MediaItem mediaItem = - new MediaItem.Builder().setUri(URI_MEDIA).setAdTagUri(Uri.parse(URI_MEDIA)).build(); + new MediaItem.Builder() + .setUri(URI_MEDIA) + .setAdsConfiguration( + new MediaItem.AdsConfiguration.Builder(Uri.parse(URI_MEDIA)).build()) + .build(); MediaSource mediaSource = new DefaultMediaSourceFactory(applicationContext).createMediaSource(mediaItem);