Use the new MediaItem.Builder#setAdsConfiguration method

PiperOrigin-RevId: 398185843
This commit is contained in:
ibaker 2021-09-22 10:00:53 +01:00 committed by bachinger
parent c927bc8358
commit a194d73c75
5 changed files with 40 additions and 12 deletions

View File

@ -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();
}

View File

@ -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());

View File

@ -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);

View File

@ -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}

View File

@ -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);