Use the new MediaItem.Builder#setAdsConfiguration method
PiperOrigin-RevId: 398185843
This commit is contained in:
parent
c927bc8358
commit
a194d73c75
@ -117,18 +117,22 @@ public class IntentUtil {
|
|||||||
Uri uri, Intent intent, String extrasKeySuffix) {
|
Uri uri, Intent intent, String extrasKeySuffix) {
|
||||||
@Nullable String mimeType = intent.getStringExtra(MIME_TYPE_EXTRA + extrasKeySuffix);
|
@Nullable String mimeType = intent.getStringExtra(MIME_TYPE_EXTRA + extrasKeySuffix);
|
||||||
@Nullable String title = intent.getStringExtra(TITLE_EXTRA + extrasKeySuffix);
|
@Nullable String title = intent.getStringExtra(TITLE_EXTRA + extrasKeySuffix);
|
||||||
|
@Nullable String adTagUri = intent.getStringExtra(AD_TAG_URI_EXTRA + extrasKeySuffix);
|
||||||
MediaItem.Builder builder =
|
MediaItem.Builder builder =
|
||||||
new MediaItem.Builder()
|
new MediaItem.Builder()
|
||||||
.setUri(uri)
|
.setUri(uri)
|
||||||
.setMimeType(mimeType)
|
.setMimeType(mimeType)
|
||||||
.setMediaMetadata(new MediaMetadata.Builder().setTitle(title).build())
|
.setMediaMetadata(new MediaMetadata.Builder().setTitle(title).build())
|
||||||
.setAdTagUri(intent.getStringExtra(AD_TAG_URI_EXTRA + extrasKeySuffix))
|
|
||||||
.setSubtitles(createSubtitlesFromIntent(intent, extrasKeySuffix))
|
.setSubtitles(createSubtitlesFromIntent(intent, extrasKeySuffix))
|
||||||
.setClipStartPositionMs(
|
.setClipStartPositionMs(
|
||||||
intent.getLongExtra(CLIP_START_POSITION_MS_EXTRA + extrasKeySuffix, 0))
|
intent.getLongExtra(CLIP_START_POSITION_MS_EXTRA + extrasKeySuffix, 0))
|
||||||
.setClipEndPositionMs(
|
.setClipEndPositionMs(
|
||||||
intent.getLongExtra(
|
intent.getLongExtra(
|
||||||
CLIP_END_POSITION_MS_EXTRA + extrasKeySuffix, C.TIME_END_OF_SOURCE));
|
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();
|
return populateDrmPropertiesFromIntent(builder, intent, extrasKeySuffix).build();
|
||||||
}
|
}
|
||||||
|
@ -373,7 +373,8 @@ public class SampleChooserActivity extends AppCompatActivity
|
|||||||
mediaItem.setClipEndPositionMs(reader.nextLong());
|
mediaItem.setClipEndPositionMs(reader.nextLong());
|
||||||
break;
|
break;
|
||||||
case "ad_tag_uri":
|
case "ad_tag_uri":
|
||||||
mediaItem.setAdTagUri(reader.nextString());
|
mediaItem.setAdsConfiguration(
|
||||||
|
new MediaItem.AdsConfiguration.Builder(Uri.parse(reader.nextString())).build());
|
||||||
break;
|
break;
|
||||||
case "drm_scheme":
|
case "drm_scheme":
|
||||||
drmUuid = Util.getDrmUuid(reader.nextString());
|
drmUuid = Util.getDrmUuid(reader.nextString());
|
||||||
|
@ -36,7 +36,11 @@ An ad tag URI can be specified when building a `MediaItem`:
|
|||||||
|
|
||||||
~~~
|
~~~
|
||||||
MediaItem 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}
|
{: .language-java}
|
||||||
|
|
||||||
@ -88,12 +92,18 @@ playlist from start to finish.
|
|||||||
MediaItem firstItem =
|
MediaItem firstItem =
|
||||||
new MediaItem.Builder()
|
new MediaItem.Builder()
|
||||||
.setUri(firstVideoUri)
|
.setUri(firstVideoUri)
|
||||||
.setAdTagUri(adTagUri, /* adsId= */ adTagUri)
|
.setAdsConfiguration(
|
||||||
|
new MediaItem.AdsConfiguration.Builder(adTagUri)
|
||||||
|
.setAdsId(adTagUri)
|
||||||
|
.build())
|
||||||
.build();
|
.build();
|
||||||
MediaItem secondItem =
|
MediaItem secondItem =
|
||||||
new MediaItem.Builder()
|
new MediaItem.Builder()
|
||||||
.setUri(secondVideoUri)
|
.setUri(secondVideoUri)
|
||||||
.setAdTagUri(adTagUri, /* adsId= */ adTagUri)
|
.setAdsConfiguration(
|
||||||
|
new MediaItem.AdsConfiguration.Builder(adTagUri)
|
||||||
|
.setAdsId(adTagUri)
|
||||||
|
.build())
|
||||||
.build();
|
.build();
|
||||||
player.addMediaItem(firstItem);
|
player.addMediaItem(firstItem);
|
||||||
player.addMediaItem(secondItem);
|
player.addMediaItem(secondItem);
|
||||||
|
@ -137,7 +137,8 @@ To insert ads, a media item's ad tag URI property should be set:
|
|||||||
~~~
|
~~~
|
||||||
MediaItem mediaItem = new MediaItem.Builder()
|
MediaItem mediaItem = new MediaItem.Builder()
|
||||||
.setUri(videoUri)
|
.setUri(videoUri)
|
||||||
.setAdTagUri(adTagUri)
|
.setAdsConfiguration(
|
||||||
|
new MediaItem.AdsConfiguration.Builder(adTagUri).build())
|
||||||
.build();
|
.build();
|
||||||
~~~
|
~~~
|
||||||
{: .language-java}
|
{: .language-java}
|
||||||
|
@ -166,9 +166,13 @@ public final class DefaultMediaSourceFactoryTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void createMediaSource_withAdTagUri_callsAdsLoader() {
|
public void createMediaSource_withAdsConfiguration_callsAdsLoader() {
|
||||||
Uri adTagUri = Uri.parse(URI_MEDIA);
|
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 =
|
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||||
new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext())
|
new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext())
|
||||||
.setAdsLoaderProvider(ignoredAdsConfiguration -> mock(AdsLoader.class))
|
.setAdsLoaderProvider(ignoredAdsConfiguration -> mock(AdsLoader.class))
|
||||||
@ -180,9 +184,13 @@ public final class DefaultMediaSourceFactoryTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void createMediaSource_withAdTagUri_adProvidersNotSet_playsWithoutAdNoException() {
|
public void createMediaSource_withAdsConfiguration_adProvidersNotSet_playsWithoutAdNoException() {
|
||||||
MediaItem mediaItem =
|
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 =
|
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||||
new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext());
|
new DefaultMediaSourceFactory((Context) ApplicationProvider.getApplicationContext());
|
||||||
|
|
||||||
@ -192,10 +200,14 @@ public final class DefaultMediaSourceFactoryTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void createMediaSource_withAdTagUriProvidersNull_playsWithoutAdNoException() {
|
public void createMediaSource_withAdsConfigurationProvidersNull_playsWithoutAdNoException() {
|
||||||
Context applicationContext = ApplicationProvider.getApplicationContext();
|
Context applicationContext = ApplicationProvider.getApplicationContext();
|
||||||
MediaItem mediaItem =
|
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 =
|
MediaSource mediaSource =
|
||||||
new DefaultMediaSourceFactory(applicationContext).createMediaSource(mediaItem);
|
new DefaultMediaSourceFactory(applicationContext).createMediaSource(mediaItem);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user