Rename sourceUri to uri
PiperOrigin-RevId: 308918151
This commit is contained in:
parent
284b843da0
commit
b22783f895
@ -41,19 +41,19 @@ import java.util.List;
|
||||
// Clear content.
|
||||
samples.add(
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri("https://storage.googleapis.com/wvmedia/clear/h264/tears/tears.mpd")
|
||||
.setUri("https://storage.googleapis.com/wvmedia/clear/h264/tears/tears.mpd")
|
||||
.setMediaMetadata(new MediaMetadata.Builder().setTitle("Clear DASH: Tears").build())
|
||||
.setMimeType(MIME_TYPE_DASH)
|
||||
.build());
|
||||
samples.add(
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri("https://storage.googleapis.com/shaka-demo-assets/angel-one-hls/hls.m3u8")
|
||||
.setUri("https://storage.googleapis.com/shaka-demo-assets/angel-one-hls/hls.m3u8")
|
||||
.setMediaMetadata(new MediaMetadata.Builder().setTitle("Clear HLS: Angel one").build())
|
||||
.setMimeType(MIME_TYPE_HLS)
|
||||
.build());
|
||||
samples.add(
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri("https://html5demos.com/assets/dizzy.mp4")
|
||||
.setUri("https://html5demos.com/assets/dizzy.mp4")
|
||||
.setMediaMetadata(new MediaMetadata.Builder().setTitle("Clear MP4: Dizzy").build())
|
||||
.setMimeType(MIME_TYPE_VIDEO_MP4)
|
||||
.build());
|
||||
@ -61,8 +61,7 @@ import java.util.List;
|
||||
// DRM content.
|
||||
samples.add(
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(
|
||||
Uri.parse("https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd"))
|
||||
.setUri(Uri.parse("https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd"))
|
||||
.setMediaMetadata(
|
||||
new MediaMetadata.Builder().setTitle("Widevine DASH cenc: Tears").build())
|
||||
.setMimeType(MIME_TYPE_DASH)
|
||||
@ -71,8 +70,7 @@ import java.util.List;
|
||||
.build());
|
||||
samples.add(
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(
|
||||
"https://storage.googleapis.com/wvmedia/cbc1/h264/tears/tears_aes_cbc1.mpd")
|
||||
.setUri("https://storage.googleapis.com/wvmedia/cbc1/h264/tears/tears_aes_cbc1.mpd")
|
||||
.setMediaMetadata(
|
||||
new MediaMetadata.Builder().setTitle("Widevine DASH cbc1: Tears").build())
|
||||
.setMimeType(MIME_TYPE_DASH)
|
||||
@ -81,8 +79,7 @@ import java.util.List;
|
||||
.build());
|
||||
samples.add(
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(
|
||||
"https://storage.googleapis.com/wvmedia/cbcs/h264/tears/tears_aes_cbcs.mpd")
|
||||
.setUri("https://storage.googleapis.com/wvmedia/cbcs/h264/tears/tears_aes_cbcs.mpd")
|
||||
.setMediaMetadata(
|
||||
new MediaMetadata.Builder().setTitle("Widevine DASH cbcs: Tears").build())
|
||||
.setMimeType(MIME_TYPE_DASH)
|
||||
|
@ -85,7 +85,7 @@ public class DownloadTracker {
|
||||
}
|
||||
|
||||
public boolean isDownloaded(MediaItem mediaItem) {
|
||||
Download download = downloads.get(checkNotNull(mediaItem.playbackProperties).sourceUri);
|
||||
Download download = downloads.get(checkNotNull(mediaItem.playbackProperties).uri);
|
||||
return download != null && download.state != Download.STATE_FAILED;
|
||||
}
|
||||
|
||||
@ -96,7 +96,7 @@ public class DownloadTracker {
|
||||
|
||||
public void toggleDownload(
|
||||
FragmentManager fragmentManager, MediaItem mediaItem, RenderersFactory renderersFactory) {
|
||||
Download download = downloads.get(checkNotNull(mediaItem.playbackProperties).sourceUri);
|
||||
Download download = downloads.get(checkNotNull(mediaItem.playbackProperties).uri);
|
||||
if (download != null) {
|
||||
DownloadService.sendRemoveDownload(
|
||||
context, DemoDownloadService.class, download.request.id, /* foreground= */ false);
|
||||
@ -125,20 +125,19 @@ public class DownloadTracker {
|
||||
MediaItem.PlaybackProperties playbackProperties = checkNotNull(mediaItem.playbackProperties);
|
||||
@C.ContentType
|
||||
int type =
|
||||
Util.inferContentTypeWithMimeType(
|
||||
playbackProperties.sourceUri, playbackProperties.mimeType);
|
||||
Util.inferContentTypeWithMimeType(playbackProperties.uri, playbackProperties.mimeType);
|
||||
switch (type) {
|
||||
case C.TYPE_DASH:
|
||||
return DownloadHelper.forDash(
|
||||
context, playbackProperties.sourceUri, dataSourceFactory, renderersFactory);
|
||||
context, playbackProperties.uri, dataSourceFactory, renderersFactory);
|
||||
case C.TYPE_SS:
|
||||
return DownloadHelper.forSmoothStreaming(
|
||||
context, playbackProperties.sourceUri, dataSourceFactory, renderersFactory);
|
||||
context, playbackProperties.uri, dataSourceFactory, renderersFactory);
|
||||
case C.TYPE_HLS:
|
||||
return DownloadHelper.forHls(
|
||||
context, playbackProperties.sourceUri, dataSourceFactory, renderersFactory);
|
||||
context, playbackProperties.uri, dataSourceFactory, renderersFactory);
|
||||
case C.TYPE_OTHER:
|
||||
return DownloadHelper.forProgressive(context, playbackProperties.sourceUri);
|
||||
return DownloadHelper.forProgressive(context, playbackProperties.uri);
|
||||
default:
|
||||
throw new IllegalStateException("Unsupported type: " + type);
|
||||
}
|
||||
|
@ -125,14 +125,14 @@ public class IntentUtil {
|
||||
if (mediaItems.size() == 1) {
|
||||
MediaItem.PlaybackProperties playbackProperties =
|
||||
checkNotNull(mediaItems.get(0).playbackProperties);
|
||||
intent.setAction(IntentUtil.ACTION_VIEW).setData(playbackProperties.sourceUri);
|
||||
intent.setAction(IntentUtil.ACTION_VIEW).setData(playbackProperties.uri);
|
||||
addPlaybackPropertiesToIntent(playbackProperties, intent, /* extrasKeySuffix= */ "");
|
||||
} else {
|
||||
intent.setAction(IntentUtil.ACTION_VIEW_LIST);
|
||||
for (int i = 0; i < mediaItems.size(); i++) {
|
||||
MediaItem.PlaybackProperties playbackProperties =
|
||||
checkNotNull(mediaItems.get(i).playbackProperties);
|
||||
intent.putExtra(IntentUtil.URI_EXTRA + ("_" + i), playbackProperties.sourceUri.toString());
|
||||
intent.putExtra(IntentUtil.URI_EXTRA + ("_" + i), playbackProperties.uri.toString());
|
||||
addPlaybackPropertiesToIntent(playbackProperties, intent, /* extrasKeySuffix= */ "_" + i);
|
||||
}
|
||||
}
|
||||
@ -165,7 +165,7 @@ public class IntentUtil {
|
||||
}
|
||||
MediaItem.Builder builder =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(uri)
|
||||
.setUri(uri)
|
||||
.setStreamKeys(downloadRequest != null ? downloadRequest.streamKeys : null)
|
||||
.setCustomCacheKey(downloadRequest != null ? downloadRequest.customCacheKey : null)
|
||||
.setMimeType(mimeType)
|
||||
|
@ -278,7 +278,7 @@ public class SampleChooserActivity extends AppCompatActivity
|
||||
if (playbackProperties.adTagUri != null) {
|
||||
return R.string.download_ads_unsupported;
|
||||
}
|
||||
String scheme = playbackProperties.sourceUri.getScheme();
|
||||
String scheme = playbackProperties.uri.getScheme();
|
||||
if (!("http".equals(scheme) || "https".equals(scheme))) {
|
||||
return R.string.download_scheme_unsupported;
|
||||
}
|
||||
@ -457,7 +457,7 @@ public class SampleChooserActivity extends AppCompatActivity
|
||||
return new PlaylistHolder(title, mediaItems);
|
||||
} else {
|
||||
mediaItem
|
||||
.setSourceUri(uri)
|
||||
.setUri(uri)
|
||||
.setMediaMetadata(new MediaMetadata.Builder().setTitle(title).build())
|
||||
.setMimeType(IntentUtil.inferAdaptiveStreamMimeType(uri, extension))
|
||||
.setTag(new IntentUtil.Tag(isLive, sphericalStereoMode));
|
||||
|
@ -59,7 +59,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
|
||||
metadata.putString(MediaMetadata.KEY_TITLE, item.mediaMetadata.title);
|
||||
}
|
||||
MediaInfo mediaInfo =
|
||||
new MediaInfo.Builder(item.playbackProperties.sourceUri.toString())
|
||||
new MediaInfo.Builder(item.playbackProperties.uri.toString())
|
||||
.setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
|
||||
.setContentType(item.playbackProperties.mimeType)
|
||||
.setMetadata(metadata)
|
||||
@ -74,7 +74,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
|
||||
try {
|
||||
JSONObject mediaItemJson = customData.getJSONObject(KEY_MEDIA_ITEM);
|
||||
MediaItem.Builder builder = new MediaItem.Builder();
|
||||
builder.setSourceUri(Uri.parse(mediaItemJson.getString(KEY_URI)));
|
||||
builder.setUri(Uri.parse(mediaItemJson.getString(KEY_URI)));
|
||||
if (mediaItemJson.has(KEY_TITLE)) {
|
||||
com.google.android.exoplayer2.MediaMetadata mediaMetadata =
|
||||
new com.google.android.exoplayer2.MediaMetadata.Builder()
|
||||
@ -127,7 +127,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
|
||||
Assertions.checkNotNull(mediaItem.playbackProperties);
|
||||
JSONObject json = new JSONObject();
|
||||
json.put(KEY_TITLE, mediaItem.mediaMetadata.title);
|
||||
json.put(KEY_URI, mediaItem.playbackProperties.sourceUri.toString());
|
||||
json.put(KEY_URI, mediaItem.playbackProperties.uri.toString());
|
||||
json.put(KEY_MIME_TYPE, mediaItem.playbackProperties.mimeType);
|
||||
if (mediaItem.playbackProperties.drmConfiguration != null) {
|
||||
json.put(
|
||||
|
@ -232,36 +232,30 @@ public class CastPlayerTest {
|
||||
@Test
|
||||
public void setMediaItems_callsRemoteMediaClient() {
|
||||
List<MediaItem> mediaItems = new ArrayList<>();
|
||||
String sourceUri1 = "http://www.google.com/video1";
|
||||
String sourceUri2 = "http://www.google.com/video2";
|
||||
String uri1 = "http://www.google.com/video1";
|
||||
String uri2 = "http://www.google.com/video2";
|
||||
mediaItems.add(
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(sourceUri1)
|
||||
.setMimeType(MimeTypes.APPLICATION_MPD)
|
||||
.build());
|
||||
new MediaItem.Builder().setUri(uri1).setMimeType(MimeTypes.APPLICATION_MPD).build());
|
||||
mediaItems.add(
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(sourceUri2)
|
||||
.setMimeType(MimeTypes.APPLICATION_MP4)
|
||||
.build());
|
||||
new MediaItem.Builder().setUri(uri2).setMimeType(MimeTypes.APPLICATION_MP4).build());
|
||||
|
||||
castPlayer.setMediaItems(mediaItems, /* startWindowIndex= */ 1, /* startPositionMs= */ 2000L);
|
||||
|
||||
verify(mockRemoteMediaClient)
|
||||
.queueLoad(queueItemsArgumentCaptor.capture(), eq(1), anyInt(), eq(2000L), any());
|
||||
MediaQueueItem[] mediaQueueItems = queueItemsArgumentCaptor.getValue();
|
||||
assertThat(mediaQueueItems[0].getMedia().getContentId()).isEqualTo(sourceUri1);
|
||||
assertThat(mediaQueueItems[1].getMedia().getContentId()).isEqualTo(sourceUri2);
|
||||
assertThat(mediaQueueItems[0].getMedia().getContentId()).isEqualTo(uri1);
|
||||
assertThat(mediaQueueItems[1].getMedia().getContentId()).isEqualTo(uri2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setMediaItems_doNotReset_callsRemoteMediaClient() {
|
||||
MediaItem.Builder builder = new MediaItem.Builder();
|
||||
List<MediaItem> mediaItems = new ArrayList<>();
|
||||
String sourceUri1 = "http://www.google.com/video1";
|
||||
String sourceUri2 = "http://www.google.com/video2";
|
||||
mediaItems.add(builder.setSourceUri(sourceUri1).setMimeType(MimeTypes.APPLICATION_MPD).build());
|
||||
mediaItems.add(builder.setSourceUri(sourceUri2).setMimeType(MimeTypes.APPLICATION_MP4).build());
|
||||
String uri1 = "http://www.google.com/video1";
|
||||
String uri2 = "http://www.google.com/video2";
|
||||
mediaItems.add(builder.setUri(uri1).setMimeType(MimeTypes.APPLICATION_MPD).build());
|
||||
mediaItems.add(builder.setUri(uri2).setMimeType(MimeTypes.APPLICATION_MP4).build());
|
||||
int startWindowIndex = C.INDEX_UNSET;
|
||||
long startPositionMs = 2000L;
|
||||
|
||||
@ -271,18 +265,18 @@ public class CastPlayerTest {
|
||||
.queueLoad(queueItemsArgumentCaptor.capture(), eq(0), anyInt(), eq(0L), any());
|
||||
|
||||
MediaQueueItem[] mediaQueueItems = queueItemsArgumentCaptor.getValue();
|
||||
assertThat(mediaQueueItems[0].getMedia().getContentId()).isEqualTo(sourceUri1);
|
||||
assertThat(mediaQueueItems[1].getMedia().getContentId()).isEqualTo(sourceUri2);
|
||||
assertThat(mediaQueueItems[0].getMedia().getContentId()).isEqualTo(uri1);
|
||||
assertThat(mediaQueueItems[1].getMedia().getContentId()).isEqualTo(uri2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addMediaItems_callsRemoteMediaClient() {
|
||||
MediaItem.Builder builder = new MediaItem.Builder();
|
||||
List<MediaItem> mediaItems = new ArrayList<>();
|
||||
String sourceUri1 = "http://www.google.com/video1";
|
||||
String sourceUri2 = "http://www.google.com/video2";
|
||||
mediaItems.add(builder.setSourceUri(sourceUri1).setMimeType(MimeTypes.APPLICATION_MPD).build());
|
||||
mediaItems.add(builder.setSourceUri(sourceUri2).setMimeType(MimeTypes.APPLICATION_MP4).build());
|
||||
String uri1 = "http://www.google.com/video1";
|
||||
String uri2 = "http://www.google.com/video2";
|
||||
mediaItems.add(builder.setUri(uri1).setMimeType(MimeTypes.APPLICATION_MPD).build());
|
||||
mediaItems.add(builder.setUri(uri2).setMimeType(MimeTypes.APPLICATION_MP4).build());
|
||||
|
||||
castPlayer.addMediaItems(mediaItems);
|
||||
|
||||
@ -291,8 +285,8 @@ public class CastPlayerTest {
|
||||
queueItemsArgumentCaptor.capture(), eq(MediaQueueItem.INVALID_ITEM_ID), any());
|
||||
|
||||
MediaQueueItem[] mediaQueueItems = queueItemsArgumentCaptor.getValue();
|
||||
assertThat(mediaQueueItems[0].getMedia().getContentId()).isEqualTo(sourceUri1);
|
||||
assertThat(mediaQueueItems[1].getMedia().getContentId()).isEqualTo(sourceUri2);
|
||||
assertThat(mediaQueueItems[0].getMedia().getContentId()).isEqualTo(uri1);
|
||||
assertThat(mediaQueueItems[1].getMedia().getContentId()).isEqualTo(uri2);
|
||||
}
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
@ -301,12 +295,9 @@ public class CastPlayerTest {
|
||||
int[] mediaQueueItemIds = createMediaQueueItemIds(/* numberOfIds= */ 2);
|
||||
List<MediaItem> mediaItems = createMediaItems(mediaQueueItemIds);
|
||||
fillTimeline(mediaItems, mediaQueueItemIds);
|
||||
String sourceUri = "http://www.google.com/video3";
|
||||
String uri = "http://www.google.com/video3";
|
||||
MediaItem anotherMediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(sourceUri)
|
||||
.setMimeType(MimeTypes.APPLICATION_MPD)
|
||||
.build();
|
||||
new MediaItem.Builder().setUri(uri).setMimeType(MimeTypes.APPLICATION_MPD).build();
|
||||
|
||||
// Add another on position 1
|
||||
int index = 1;
|
||||
@ -319,7 +310,7 @@ public class CastPlayerTest {
|
||||
any());
|
||||
|
||||
MediaQueueItem[] mediaQueueItems = queueItemsArgumentCaptor.getValue();
|
||||
assertThat(mediaQueueItems[0].getMedia().getContentId()).isEqualTo(sourceUri);
|
||||
assertThat(mediaQueueItems[0].getMedia().getContentId()).isEqualTo(uri);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -477,7 +468,7 @@ public class CastPlayerTest {
|
||||
for (int mediaQueueItemId : mediaQueueItemIds) {
|
||||
MediaItem mediaItem =
|
||||
builder
|
||||
.setSourceUri("http://www.google.com/video" + mediaQueueItemId)
|
||||
.setUri("http://www.google.com/video" + mediaQueueItemId)
|
||||
.setMimeType(MimeTypes.APPLICATION_MPD)
|
||||
.setTag(mediaQueueItemId)
|
||||
.build();
|
||||
|
@ -36,7 +36,7 @@ public class DefaultMediaItemConverterTest {
|
||||
public void serialize_deserialize_minimal() {
|
||||
MediaItem.Builder builder = new MediaItem.Builder();
|
||||
MediaItem item =
|
||||
builder.setSourceUri("http://example.com").setMimeType(MimeTypes.APPLICATION_MPD).build();
|
||||
builder.setUri("http://example.com").setMimeType(MimeTypes.APPLICATION_MPD).build();
|
||||
|
||||
DefaultMediaItemConverter converter = new DefaultMediaItemConverter();
|
||||
MediaQueueItem queueItem = converter.toMediaQueueItem(item);
|
||||
@ -50,7 +50,7 @@ public class DefaultMediaItemConverterTest {
|
||||
MediaItem.Builder builder = new MediaItem.Builder();
|
||||
MediaItem item =
|
||||
builder
|
||||
.setSourceUri(Uri.parse("http://example.com"))
|
||||
.setUri(Uri.parse("http://example.com"))
|
||||
.setMediaMetadata(new MediaMetadata.Builder().build())
|
||||
.setMimeType(MimeTypes.APPLICATION_MPD)
|
||||
.setDrmUuid(C.WIDEVINE_UUID)
|
||||
|
@ -32,30 +32,30 @@ import java.util.UUID;
|
||||
public final class MediaItem {
|
||||
|
||||
/**
|
||||
* Creates a {@link MediaItem} for the given source uri.
|
||||
* Creates a {@link MediaItem} for the given uri.
|
||||
*
|
||||
* @param sourceUri The source uri.
|
||||
* @return An {@link MediaItem} for the given source uri.
|
||||
* @param uri The uri.
|
||||
* @return An {@link MediaItem} for the given uri.
|
||||
*/
|
||||
public static MediaItem fromUri(String sourceUri) {
|
||||
return new MediaItem.Builder().setSourceUri(sourceUri).build();
|
||||
public static MediaItem fromUri(String uri) {
|
||||
return new MediaItem.Builder().setUri(uri).build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a {@link MediaItem} for the given {@link Uri source uri}.
|
||||
* Creates a {@link MediaItem} for the given {@link Uri uri}.
|
||||
*
|
||||
* @param sourceUri The {@link Uri source uri}.
|
||||
* @return An {@link MediaItem} for the given source uri.
|
||||
* @param uri The {@link Uri uri}.
|
||||
* @return An {@link MediaItem} for the given uri.
|
||||
*/
|
||||
public static MediaItem fromUri(Uri sourceUri) {
|
||||
return new MediaItem.Builder().setSourceUri(sourceUri).build();
|
||||
public static MediaItem fromUri(Uri uri) {
|
||||
return new MediaItem.Builder().setUri(uri).build();
|
||||
}
|
||||
|
||||
/** A builder for {@link MediaItem} instances. */
|
||||
public static final class Builder {
|
||||
|
||||
@Nullable private String mediaId;
|
||||
@Nullable private Uri sourceUri;
|
||||
@Nullable private Uri uri;
|
||||
@Nullable private String mimeType;
|
||||
private long clipStartPositionMs;
|
||||
private long clipEndPositionMs;
|
||||
@ -99,7 +99,7 @@ public final class MediaItem {
|
||||
adTagUri = playbackProperties.adTagUri;
|
||||
customCacheKey = playbackProperties.customCacheKey;
|
||||
mimeType = playbackProperties.mimeType;
|
||||
sourceUri = playbackProperties.sourceUri;
|
||||
uri = playbackProperties.uri;
|
||||
streamKeys = playbackProperties.streamKeys;
|
||||
subtitles = playbackProperties.subtitles;
|
||||
tag = playbackProperties.tag;
|
||||
@ -117,28 +117,25 @@ public final class MediaItem {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the optional media id which identifies the media item. If not specified, {@link
|
||||
* #setSourceUri} must be called and the string representation of {@link
|
||||
* PlaybackProperties#sourceUri} is used as the media id.
|
||||
* Sets the optional media id which identifies the media item. If not specified, {@link #setUri}
|
||||
* must be called and the string representation of {@link PlaybackProperties#uri} is used as the
|
||||
* media id.
|
||||
*/
|
||||
public Builder setMediaId(@Nullable String mediaId) {
|
||||
this.mediaId = mediaId;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the optional source uri. If not specified, {@link #setMediaId(String)} must be called.
|
||||
*/
|
||||
public Builder setSourceUri(@Nullable String sourceUri) {
|
||||
return setSourceUri(sourceUri == null ? null : Uri.parse(sourceUri));
|
||||
/** Sets the optional uri. If not specified, {@link #setMediaId(String)} must be called. */
|
||||
public Builder setUri(@Nullable String uri) {
|
||||
return setUri(uri == null ? null : Uri.parse(uri));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the optional source {@link Uri}. If not specified, {@link #setMediaId(String)} must be
|
||||
* called.
|
||||
* Sets the optional {@link Uri}. If not specified, {@link #setMediaId(String)} must be called.
|
||||
*/
|
||||
public Builder setSourceUri(@Nullable Uri sourceUri) {
|
||||
this.sourceUri = sourceUri;
|
||||
public Builder setUri(@Nullable Uri uri) {
|
||||
this.uri = uri;
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -147,7 +144,7 @@ public final class MediaItem {
|
||||
*
|
||||
* <p>The mime type may be used as a hint for inferring the type of the media item.
|
||||
*
|
||||
* <p>If a {@link PlaybackProperties#sourceUri} is set, the mime type is used to create a {@link
|
||||
* <p>If a {@link PlaybackProperties#uri} is set, the mime type is used to create a {@link
|
||||
* PlaybackProperties} object. Otherwise it will be ignored.
|
||||
*
|
||||
* @param mimeType The mime type.
|
||||
@ -210,8 +207,8 @@ public final class MediaItem {
|
||||
* Sets the optional license server {@link Uri}. If a license uri is set, the {@link
|
||||
* DrmConfiguration#uuid} needs to be specified as well.
|
||||
*
|
||||
* <p>If a {@link PlaybackProperties#sourceUri} is set, the drm license uri is used to create a
|
||||
* {@link PlaybackProperties} object. Otherwise it will be ignored.
|
||||
* <p>If a {@link PlaybackProperties#uri} is set, the drm license uri is used to create a {@link
|
||||
* PlaybackProperties} object. Otherwise it will be ignored.
|
||||
*/
|
||||
public Builder setDrmLicenseUri(@Nullable Uri licenseUri) {
|
||||
drmLicenseUri = licenseUri;
|
||||
@ -222,8 +219,8 @@ public final class MediaItem {
|
||||
* Sets the optional license server uri as a {@link String}. If a license uri is set, the {@link
|
||||
* DrmConfiguration#uuid} needs to be specified as well.
|
||||
*
|
||||
* <p>If a {@link PlaybackProperties#sourceUri} is set, the drm license uri is used to create a
|
||||
* {@link PlaybackProperties} object. Otherwise it will be ignored.
|
||||
* <p>If a {@link PlaybackProperties#uri} is set, the drm license uri is used to create a {@link
|
||||
* PlaybackProperties} object. Otherwise it will be ignored.
|
||||
*/
|
||||
public Builder setDrmLicenseUri(@Nullable String licenseUri) {
|
||||
drmLicenseUri = licenseUri == null ? null : Uri.parse(licenseUri);
|
||||
@ -250,8 +247,8 @@ public final class MediaItem {
|
||||
* Sets the {@link UUID} of the protection scheme. If a drm system uuid is set, the {@link
|
||||
* DrmConfiguration#licenseUri} needs to be set as well.
|
||||
*
|
||||
* <p>If a {@link PlaybackProperties#sourceUri} is set, the drm system uuid is used to create a
|
||||
* {@link PlaybackProperties} object. Otherwise it will be ignored.
|
||||
* <p>If a {@link PlaybackProperties#uri} is set, the drm system uuid is used to create a {@link
|
||||
* PlaybackProperties} object. Otherwise it will be ignored.
|
||||
*/
|
||||
public Builder setDrmUuid(@Nullable UUID uuid) {
|
||||
drmUuid = uuid;
|
||||
@ -261,8 +258,8 @@ public final class MediaItem {
|
||||
/**
|
||||
* Sets whether the drm configuration is multi session enabled.
|
||||
*
|
||||
* <p>If a {@link PlaybackProperties#sourceUri} is set, the drm multi session flag is used to
|
||||
* create a {@link PlaybackProperties} object. Otherwise it will be ignored.
|
||||
* <p>If a {@link PlaybackProperties#uri} is set, the drm multi session flag is used to create a
|
||||
* {@link PlaybackProperties} object. Otherwise it will be ignored.
|
||||
*/
|
||||
public Builder setDrmMultiSession(boolean multiSession) {
|
||||
drmMultiSession = multiSession;
|
||||
@ -333,8 +330,8 @@ public final class MediaItem {
|
||||
*
|
||||
* <p>{@code null} or an empty {@link List} can be used for a reset.
|
||||
*
|
||||
* <p>If a {@link PlaybackProperties#sourceUri} is set, the stream keys are used to create a
|
||||
* {@link PlaybackProperties} object. Otherwise it will be ignored.
|
||||
* <p>If a {@link PlaybackProperties#uri} is set, the stream keys are used to create a {@link
|
||||
* PlaybackProperties} object. Otherwise it will be ignored.
|
||||
*/
|
||||
public Builder setStreamKeys(@Nullable List<StreamKey> streamKeys) {
|
||||
this.streamKeys =
|
||||
@ -347,7 +344,7 @@ public final class MediaItem {
|
||||
/**
|
||||
* Sets the optional custom cache key (only used for progressive streams).
|
||||
*
|
||||
* <p>If a {@link PlaybackProperties#sourceUri} is set, the custom cache key is used to create a
|
||||
* <p>If a {@link PlaybackProperties#uri} is set, the custom cache key is used to create a
|
||||
* {@link PlaybackProperties} object. Otherwise it will be ignored.
|
||||
*/
|
||||
public Builder setCustomCacheKey(@Nullable String customCacheKey) {
|
||||
@ -360,8 +357,8 @@ public final class MediaItem {
|
||||
*
|
||||
* <p>{@code null} or an empty {@link List} can be used for a reset.
|
||||
*
|
||||
* <p>If a {@link PlaybackProperties#sourceUri} is set, the subtitles are used to create a
|
||||
* {@link PlaybackProperties} object. Otherwise it will be ignored.
|
||||
* <p>If a {@link PlaybackProperties#uri} is set, the subtitles are used to create a {@link
|
||||
* PlaybackProperties} object. Otherwise it will be ignored.
|
||||
*/
|
||||
public Builder setSubtitles(@Nullable List<Subtitle> subtitles) {
|
||||
this.subtitles =
|
||||
@ -374,8 +371,8 @@ public final class MediaItem {
|
||||
/**
|
||||
* Sets the optional ad tag URI.
|
||||
*
|
||||
* <p>If a {@link PlaybackProperties#sourceUri} is set, the ad tag URI is used to create a
|
||||
* {@link PlaybackProperties} object. Otherwise it will be ignored.
|
||||
* <p>If a {@link PlaybackProperties#uri} is set, the ad tag URI is used to create a {@link
|
||||
* PlaybackProperties} object. Otherwise it will be ignored.
|
||||
*/
|
||||
public Builder setAdTagUri(@Nullable String adTagUri) {
|
||||
this.adTagUri = adTagUri != null ? Uri.parse(adTagUri) : null;
|
||||
@ -385,8 +382,8 @@ public final class MediaItem {
|
||||
/**
|
||||
* Sets the optional ad tag {@link Uri}.
|
||||
*
|
||||
* <p>If a {@link PlaybackProperties#sourceUri} is set, the ad tag URI is used to create a
|
||||
* {@link PlaybackProperties} object. Otherwise it will be ignored.
|
||||
* <p>If a {@link PlaybackProperties#uri} is set, the ad tag URI is used to create a {@link
|
||||
* PlaybackProperties} object. Otherwise it will be ignored.
|
||||
*/
|
||||
public Builder setAdTagUri(@Nullable Uri adTagUri) {
|
||||
this.adTagUri = adTagUri;
|
||||
@ -398,7 +395,7 @@ public final class MediaItem {
|
||||
* published in the {@code com.google.android.exoplayer2.Timeline} of the source as {@code
|
||||
* com.google.android.exoplayer2.Timeline.Window#tag}.
|
||||
*
|
||||
* <p>If a {@link PlaybackProperties#sourceUri} is set, the tag is used to create a {@link
|
||||
* <p>If a {@link PlaybackProperties#uri} is set, the tag is used to create a {@link
|
||||
* PlaybackProperties} object. Otherwise it will be ignored.
|
||||
*/
|
||||
public Builder setTag(@Nullable Object tag) {
|
||||
@ -418,10 +415,10 @@ public final class MediaItem {
|
||||
public MediaItem build() {
|
||||
Assertions.checkState(drmLicenseUri == null || drmUuid != null);
|
||||
@Nullable PlaybackProperties playbackProperties = null;
|
||||
if (sourceUri != null) {
|
||||
if (uri != null) {
|
||||
playbackProperties =
|
||||
new PlaybackProperties(
|
||||
sourceUri,
|
||||
uri,
|
||||
mimeType,
|
||||
drmUuid != null
|
||||
? new DrmConfiguration(
|
||||
@ -438,7 +435,7 @@ public final class MediaItem {
|
||||
subtitles,
|
||||
adTagUri,
|
||||
tag);
|
||||
mediaId = mediaId != null ? mediaId : sourceUri.toString();
|
||||
mediaId = mediaId != null ? mediaId : uri.toString();
|
||||
}
|
||||
return new MediaItem(
|
||||
Assertions.checkNotNull(mediaId),
|
||||
@ -540,8 +537,8 @@ public final class MediaItem {
|
||||
/** Properties for local playback. */
|
||||
public static final class PlaybackProperties {
|
||||
|
||||
/** The source {@link Uri}. */
|
||||
public final Uri sourceUri;
|
||||
/** The {@link Uri}. */
|
||||
public final Uri uri;
|
||||
|
||||
/**
|
||||
* The optional mime type of the item, or {@code null} if unspecified.
|
||||
@ -574,7 +571,7 @@ public final class MediaItem {
|
||||
@Nullable public final Object tag;
|
||||
|
||||
private PlaybackProperties(
|
||||
Uri sourceUri,
|
||||
Uri uri,
|
||||
@Nullable String mimeType,
|
||||
@Nullable DrmConfiguration drmConfiguration,
|
||||
List<StreamKey> streamKeys,
|
||||
@ -582,7 +579,7 @@ public final class MediaItem {
|
||||
List<Subtitle> subtitles,
|
||||
@Nullable Uri adTagUri,
|
||||
@Nullable Object tag) {
|
||||
this.sourceUri = sourceUri;
|
||||
this.uri = uri;
|
||||
this.mimeType = mimeType;
|
||||
this.drmConfiguration = drmConfiguration;
|
||||
this.streamKeys = streamKeys;
|
||||
@ -602,7 +599,7 @@ public final class MediaItem {
|
||||
}
|
||||
PlaybackProperties other = (PlaybackProperties) obj;
|
||||
|
||||
return sourceUri.equals(other.sourceUri)
|
||||
return uri.equals(other.uri)
|
||||
&& Util.areEqual(mimeType, other.mimeType)
|
||||
&& Util.areEqual(drmConfiguration, other.drmConfiguration)
|
||||
&& streamKeys.equals(other.streamKeys)
|
||||
@ -614,7 +611,7 @@ public final class MediaItem {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = sourceUri.hashCode();
|
||||
int result = uri.hashCode();
|
||||
result = 31 * result + (mimeType == null ? 0 : mimeType.hashCode());
|
||||
result = 31 * result + (drmConfiguration == null ? 0 : drmConfiguration.hashCode());
|
||||
result = 31 * result + streamKeys.hashCode();
|
||||
|
@ -213,7 +213,7 @@ public final class Util {
|
||||
if (mediaItem.playbackProperties == null) {
|
||||
continue;
|
||||
}
|
||||
if (isLocalFileUri(mediaItem.playbackProperties.sourceUri)) {
|
||||
if (isLocalFileUri(mediaItem.playbackProperties.uri)) {
|
||||
return requestExternalStoragePermission(activity);
|
||||
}
|
||||
for (int i = 0; i < mediaItem.playbackProperties.subtitles.size(); i++) {
|
||||
@ -241,7 +241,7 @@ public final class Util {
|
||||
if (mediaItem.playbackProperties == null) {
|
||||
continue;
|
||||
}
|
||||
if (isTrafficRestricted(mediaItem.playbackProperties.sourceUri)) {
|
||||
if (isTrafficRestricted(mediaItem.playbackProperties.uri)) {
|
||||
return false;
|
||||
}
|
||||
for (int i = 0; i < mediaItem.playbackProperties.subtitles.size(); i++) {
|
||||
|
@ -38,26 +38,26 @@ public class MediaItemTest {
|
||||
private static final String URI_STRING = "http://www.google.com";
|
||||
|
||||
@Test
|
||||
public void builder_needsSourceUriOrMediaId() {
|
||||
public void builder_needsUriOrMediaId() {
|
||||
assertThrows(NullPointerException.class, () -> new MediaItem.Builder().build());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void builderWithUri_setsSourceUri() {
|
||||
public void builderWithUri_setsUri() {
|
||||
Uri uri = Uri.parse(URI_STRING);
|
||||
|
||||
MediaItem mediaItem = MediaItem.fromUri(uri);
|
||||
|
||||
assertThat(mediaItem.playbackProperties.sourceUri.toString()).isEqualTo(URI_STRING);
|
||||
assertThat(mediaItem.playbackProperties.uri.toString()).isEqualTo(URI_STRING);
|
||||
assertThat(mediaItem.mediaId).isEqualTo(URI_STRING);
|
||||
assertThat(mediaItem.mediaMetadata).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void builderWithUriAsString_setsSourceUri() {
|
||||
public void builderWithUriAsString_setsUri() {
|
||||
MediaItem mediaItem = MediaItem.fromUri(URI_STRING);
|
||||
|
||||
assertThat(mediaItem.playbackProperties.sourceUri.toString()).isEqualTo(URI_STRING);
|
||||
assertThat(mediaItem.playbackProperties.uri.toString()).isEqualTo(URI_STRING);
|
||||
assertThat(mediaItem.mediaId).isEqualTo(URI_STRING);
|
||||
}
|
||||
|
||||
@ -71,10 +71,7 @@ public class MediaItemTest {
|
||||
@Test
|
||||
public void builderSetMimeType_setsMimeType() {
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_STRING)
|
||||
.setMimeType(MimeTypes.APPLICATION_MPD)
|
||||
.build();
|
||||
new MediaItem.Builder().setUri(URI_STRING).setMimeType(MimeTypes.APPLICATION_MPD).build();
|
||||
|
||||
assertThat(mediaItem.playbackProperties.mimeType).isEqualTo(MimeTypes.APPLICATION_MPD);
|
||||
}
|
||||
@ -82,7 +79,7 @@ public class MediaItemTest {
|
||||
@Test
|
||||
public void builderSetDrmConfig_isNullByDefault() {
|
||||
// Null value by default.
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_STRING).build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_STRING).build();
|
||||
assertThat(mediaItem.playbackProperties.drmConfiguration).isNull();
|
||||
}
|
||||
|
||||
@ -94,7 +91,7 @@ public class MediaItemTest {
|
||||
byte[] keySetId = new byte[] {1, 2, 3};
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_STRING)
|
||||
.setUri(URI_STRING)
|
||||
.setDrmUuid(C.WIDEVINE_UUID)
|
||||
.setDrmLicenseUri(licenseUri)
|
||||
.setDrmLicenseRequestHeaders(requestHeaders)
|
||||
@ -121,7 +118,7 @@ public class MediaItemTest {
|
||||
Uri licenseUri = Uri.parse(URI_STRING);
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_STRING)
|
||||
.setUri(URI_STRING)
|
||||
.setDrmUuid(C.WIDEVINE_UUID)
|
||||
.setDrmLicenseUri(licenseUri)
|
||||
.setDrmSessionForClearTypes(Arrays.asList(C.TRACK_TYPE_AUDIO))
|
||||
@ -138,7 +135,7 @@ public class MediaItemTest {
|
||||
IllegalStateException.class,
|
||||
() ->
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_STRING)
|
||||
.setUri(URI_STRING)
|
||||
// missing uuid
|
||||
.setDrmLicenseUri(Uri.parse(URI_STRING))
|
||||
.build());
|
||||
@ -147,7 +144,7 @@ public class MediaItemTest {
|
||||
@Test
|
||||
public void builderSetCustomCacheKey_setsCustomCacheKey() {
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder().setSourceUri(URI_STRING).setCustomCacheKey("key").build();
|
||||
new MediaItem.Builder().setUri(URI_STRING).setCustomCacheKey("key").build();
|
||||
|
||||
assertThat(mediaItem.playbackProperties.customCacheKey).isEqualTo("key");
|
||||
}
|
||||
@ -159,7 +156,7 @@ public class MediaItemTest {
|
||||
streamKeys.add(new StreamKey(0, 1, 1));
|
||||
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder().setSourceUri(URI_STRING).setStreamKeys(streamKeys).build();
|
||||
new MediaItem.Builder().setUri(URI_STRING).setStreamKeys(streamKeys).build();
|
||||
|
||||
assertThat(mediaItem.playbackProperties.streamKeys).isEqualTo(streamKeys);
|
||||
}
|
||||
@ -177,14 +174,14 @@ public class MediaItemTest {
|
||||
C.SELECTION_FLAG_DEFAULT));
|
||||
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder().setSourceUri(URI_STRING).setSubtitles(subtitles).build();
|
||||
new MediaItem.Builder().setUri(URI_STRING).setSubtitles(subtitles).build();
|
||||
|
||||
assertThat(mediaItem.playbackProperties.subtitles).isEqualTo(subtitles);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void builderSetTag_isNullByDefault() {
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_STRING).build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_STRING).build();
|
||||
|
||||
assertThat(mediaItem.playbackProperties.tag).isNull();
|
||||
}
|
||||
@ -193,7 +190,7 @@ public class MediaItemTest {
|
||||
public void builderSetTag_setsTag() {
|
||||
Object tag = new Object();
|
||||
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_STRING).setTag(tag).build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_STRING).setTag(tag).build();
|
||||
|
||||
assertThat(mediaItem.playbackProperties.tag).isEqualTo(tag);
|
||||
}
|
||||
@ -201,14 +198,14 @@ public class MediaItemTest {
|
||||
@Test
|
||||
public void builderSetStartPositionMs_setsStartPositionMs() {
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder().setSourceUri(URI_STRING).setClipStartPositionMs(1000L).build();
|
||||
new MediaItem.Builder().setUri(URI_STRING).setClipStartPositionMs(1000L).build();
|
||||
|
||||
assertThat(mediaItem.clippingProperties.startPositionMs).isEqualTo(1000L);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void builderSetStartPositionMs_zeroByDefault() {
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_STRING).build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_STRING).build();
|
||||
|
||||
assertThat(mediaItem.clippingProperties.startPositionMs).isEqualTo(0);
|
||||
}
|
||||
@ -223,14 +220,14 @@ public class MediaItemTest {
|
||||
@Test
|
||||
public void builderSetEndPositionMs_setsEndPositionMs() {
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder().setSourceUri(URI_STRING).setClipEndPositionMs(1000L).build();
|
||||
new MediaItem.Builder().setUri(URI_STRING).setClipEndPositionMs(1000L).build();
|
||||
|
||||
assertThat(mediaItem.clippingProperties.endPositionMs).isEqualTo(1000L);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void builderSetEndPositionMs_timeEndOfSourceByDefault() {
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_STRING).build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_STRING).build();
|
||||
|
||||
assertThat(mediaItem.clippingProperties.endPositionMs).isEqualTo(C.TIME_END_OF_SOURCE);
|
||||
}
|
||||
@ -239,7 +236,7 @@ public class MediaItemTest {
|
||||
public void builderSetEndPositionMs_timeEndOfSource_setsEndPositionMs() {
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_STRING)
|
||||
.setUri(URI_STRING)
|
||||
.setClipEndPositionMs(1000)
|
||||
.setClipEndPositionMs(C.TIME_END_OF_SOURCE)
|
||||
.build();
|
||||
@ -258,7 +255,7 @@ public class MediaItemTest {
|
||||
public void builderSetClippingFlags_setsClippingFlags() {
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_STRING)
|
||||
.setUri(URI_STRING)
|
||||
.setClipRelativeToDefaultPosition(true)
|
||||
.setClipRelativeToLiveWindow(true)
|
||||
.setClipStartsAtKeyFrame(true)
|
||||
@ -273,8 +270,7 @@ public class MediaItemTest {
|
||||
public void builderSetAdTagUri_setsAdTagUri() {
|
||||
Uri adTagUri = Uri.parse(URI_STRING + "/ad");
|
||||
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder().setSourceUri(URI_STRING).setAdTagUri(adTagUri).build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_STRING).setAdTagUri(adTagUri).build();
|
||||
|
||||
assertThat(mediaItem.playbackProperties.adTagUri).isEqualTo(adTagUri);
|
||||
}
|
||||
@ -284,7 +280,7 @@ public class MediaItemTest {
|
||||
MediaMetadata mediaMetadata = new MediaMetadata.Builder().setTitle("title").build();
|
||||
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder().setSourceUri(URI_STRING).setMediaMetadata(mediaMetadata).build();
|
||||
new MediaItem.Builder().setUri(URI_STRING).setMediaMetadata(mediaMetadata).build();
|
||||
|
||||
assertThat(mediaItem.mediaMetadata).isEqualTo(mediaMetadata);
|
||||
}
|
||||
@ -311,7 +307,7 @@ public class MediaItemTest {
|
||||
.setMediaId("mediaId")
|
||||
.setMediaMetadata(new MediaMetadata.Builder().setTitle("title").build())
|
||||
.setMimeType(MimeTypes.APPLICATION_MP4)
|
||||
.setSourceUri(URI_STRING)
|
||||
.setUri(URI_STRING)
|
||||
.setStreamKeys(Collections.singletonList(new StreamKey(1, 0, 0)))
|
||||
.setSubtitles(
|
||||
Collections.singletonList(
|
||||
|
@ -52,25 +52,24 @@ import java.util.Map;
|
||||
* factories:
|
||||
*
|
||||
* <ul>
|
||||
* <li>{@code DashMediaSource.Factory} if the item's {@link MediaItem.PlaybackProperties#sourceUri
|
||||
* sourceUri} ends in '.mpd' or if its {@link MediaItem.PlaybackProperties#mimeType mimeType
|
||||
* field} is explicitly set to {@link MimeTypes#APPLICATION_MPD} (Requires the <a
|
||||
* <li>{@code DashMediaSource.Factory} if the item's {@link MediaItem.PlaybackProperties#uri uri}
|
||||
* ends in '.mpd' or if its {@link MediaItem.PlaybackProperties#mimeType mimeType field} is
|
||||
* explicitly set to {@link MimeTypes#APPLICATION_MPD} (Requires the <a
|
||||
* href="https://exoplayer.dev/hello-world.html#add-exoplayer-modules">exoplayer-dash module
|
||||
* to be added</a> to the app).
|
||||
* <li>{@code HlsMediaSource.Factory} if the item's {@link MediaItem.PlaybackProperties#sourceUri
|
||||
* sourceUri} ends in '.m3u8' or if its {@link MediaItem.PlaybackProperties#mimeType mimeType
|
||||
* field} is explicitly set to {@link MimeTypes#APPLICATION_M3U8} (Requires the <a
|
||||
* <li>{@code HlsMediaSource.Factory} if the item's {@link MediaItem.PlaybackProperties#uri uri}
|
||||
* ends in '.m3u8' or if its {@link MediaItem.PlaybackProperties#mimeType mimeType field} is
|
||||
* explicitly set to {@link MimeTypes#APPLICATION_M3U8} (Requires the <a
|
||||
* href="https://exoplayer.dev/hello-world.html#add-exoplayer-modules">exoplayer-hls module to
|
||||
* be added</a> to the app).
|
||||
* <li>{@code SsMediaSource.Factory} if the item's {@link MediaItem.PlaybackProperties#sourceUri
|
||||
* sourceUri} ends in '.ism', '.ism/Manifest' or if its {@link
|
||||
* MediaItem.PlaybackProperties#mimeType mimeType field} is explicitly set to {@link
|
||||
* MimeTypes#APPLICATION_SS} (Requires the <a
|
||||
* <li>{@code SsMediaSource.Factory} if the item's {@link MediaItem.PlaybackProperties#uri uri}
|
||||
* ends in '.ism', '.ism/Manifest' or if its {@link MediaItem.PlaybackProperties#mimeType
|
||||
* mimeType field} is explicitly set to {@link MimeTypes#APPLICATION_SS} (Requires the <a
|
||||
* href="https://exoplayer.dev/hello-world.html#add-exoplayer-modules">
|
||||
* exoplayer-smoothstreaming module to be added</a> to the app).
|
||||
* <li>{@link ProgressiveMediaSource.Factory} serves as a fallback if the item's {@link
|
||||
* MediaItem.PlaybackProperties#sourceUri sourceUri} doesn't match one of the above. It tries
|
||||
* to infer the required extractor by using the {@link
|
||||
* MediaItem.PlaybackProperties#uri uri} doesn't match one of the above. It tries to infer the
|
||||
* required extractor by using the {@link
|
||||
* com.google.android.exoplayer2.extractor.DefaultExtractorsFactory}. An {@link
|
||||
* UnrecognizedInputFormatException} is thrown if none of the available extractors can read
|
||||
* the stream.
|
||||
@ -249,7 +248,7 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory {
|
||||
@C.ContentType
|
||||
int type =
|
||||
Util.inferContentTypeWithMimeType(
|
||||
mediaItem.playbackProperties.sourceUri, mediaItem.playbackProperties.mimeType);
|
||||
mediaItem.playbackProperties.uri, mediaItem.playbackProperties.mimeType);
|
||||
@Nullable MediaSourceFactory mediaSourceFactory = mediaSourceFactories.get(type);
|
||||
Assertions.checkNotNull(
|
||||
mediaSourceFactory, "No suitable media source factory found for content type: " + type);
|
||||
|
@ -173,7 +173,7 @@ public final class ExtractorMediaSource extends CompositeMediaSource<Void> {
|
||||
@Deprecated
|
||||
@Override
|
||||
public ExtractorMediaSource createMediaSource(Uri uri) {
|
||||
return createMediaSource(new MediaItem.Builder().setSourceUri(uri).build());
|
||||
return createMediaSource(new MediaItem.Builder().setUri(uri).build());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -187,7 +187,7 @@ public final class ExtractorMediaSource extends CompositeMediaSource<Void> {
|
||||
public ExtractorMediaSource createMediaSource(MediaItem mediaItem) {
|
||||
Assertions.checkNotNull(mediaItem.playbackProperties);
|
||||
return new ExtractorMediaSource(
|
||||
mediaItem.playbackProperties.sourceUri,
|
||||
mediaItem.playbackProperties.uri,
|
||||
dataSourceFactory,
|
||||
extractorsFactory,
|
||||
loadErrorHandlingPolicy,
|
||||
|
@ -166,7 +166,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
|
||||
@Deprecated
|
||||
@Override
|
||||
public ProgressiveMediaSource createMediaSource(Uri uri) {
|
||||
return createMediaSource(new MediaItem.Builder().setSourceUri(uri).build());
|
||||
return createMediaSource(new MediaItem.Builder().setUri(uri).build());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -180,7 +180,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
|
||||
public ProgressiveMediaSource createMediaSource(MediaItem mediaItem) {
|
||||
Assertions.checkNotNull(mediaItem.playbackProperties);
|
||||
return new ProgressiveMediaSource(
|
||||
mediaItem.playbackProperties.sourceUri,
|
||||
mediaItem.playbackProperties.uri,
|
||||
dataSourceFactory,
|
||||
extractorsFactory,
|
||||
drmSessionManager,
|
||||
|
@ -46,7 +46,7 @@ public final class DefaultMediaSourceFactoryTest {
|
||||
public void createMediaSource_withoutMimeType_progressiveSource() {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_MEDIA).build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA).build();
|
||||
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
|
||||
@ -58,7 +58,7 @@ public final class DefaultMediaSourceFactoryTest {
|
||||
Object tag = new Object();
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_MEDIA).setTag(tag).build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA).setTag(tag).build();
|
||||
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
|
||||
@ -69,7 +69,7 @@ public final class DefaultMediaSourceFactoryTest {
|
||||
public void createMediaSource_withPath_progressiveSource() {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_MEDIA + "/file.mp3").build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.mp3").build();
|
||||
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
|
||||
@ -80,7 +80,7 @@ public final class DefaultMediaSourceFactoryTest {
|
||||
public void createMediaSource_withNull_usesNonNullDefaults() {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_MEDIA).build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA).build();
|
||||
|
||||
MediaSource mediaSource =
|
||||
defaultMediaSourceFactory
|
||||
@ -101,8 +101,7 @@ public final class DefaultMediaSourceFactoryTest {
|
||||
new MediaItem.Subtitle(Uri.parse(URI_TEXT), MimeTypes.APPLICATION_TTML, "en"),
|
||||
new MediaItem.Subtitle(
|
||||
Uri.parse(URI_TEXT), MimeTypes.APPLICATION_TTML, "de", C.SELECTION_FLAG_DEFAULT));
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder().setSourceUri(URI_MEDIA).setSubtitles(subtitles).build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA).setSubtitles(subtitles).build();
|
||||
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
|
||||
@ -117,7 +116,7 @@ public final class DefaultMediaSourceFactoryTest {
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setTag(tag)
|
||||
.setSourceUri(URI_MEDIA)
|
||||
.setUri(URI_MEDIA)
|
||||
.setSubtitles(
|
||||
Collections.singletonList(
|
||||
new MediaItem.Subtitle(Uri.parse(URI_TEXT), MimeTypes.APPLICATION_TTML, "en")))
|
||||
@ -133,7 +132,7 @@ public final class DefaultMediaSourceFactoryTest {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder().setSourceUri(URI_MEDIA).setClipStartPositionMs(1000L).build();
|
||||
new MediaItem.Builder().setUri(URI_MEDIA).setClipStartPositionMs(1000L).build();
|
||||
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
|
||||
@ -145,7 +144,7 @@ public final class DefaultMediaSourceFactoryTest {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder().setSourceUri(URI_MEDIA).setClipEndPositionMs(1000L).build();
|
||||
new MediaItem.Builder().setUri(URI_MEDIA).setClipEndPositionMs(1000L).build();
|
||||
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
|
||||
@ -157,10 +156,7 @@ public final class DefaultMediaSourceFactoryTest {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_MEDIA)
|
||||
.setClipRelativeToDefaultPosition(true)
|
||||
.build();
|
||||
new MediaItem.Builder().setUri(URI_MEDIA).setClipRelativeToDefaultPosition(true).build();
|
||||
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
|
||||
@ -173,7 +169,7 @@ public final class DefaultMediaSourceFactoryTest {
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_MEDIA)
|
||||
.setUri(URI_MEDIA)
|
||||
.setClipEndPositionMs(C.TIME_END_OF_SOURCE)
|
||||
.build();
|
||||
|
||||
@ -195,8 +191,7 @@ public final class DefaultMediaSourceFactoryTest {
|
||||
public void createMediaSource_withAdTagUri_callsAdsLoader() {
|
||||
Context applicationContext = ApplicationProvider.getApplicationContext();
|
||||
Uri adTagUri = Uri.parse(URI_MEDIA);
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder().setSourceUri(URI_MEDIA).setAdTagUri(adTagUri).build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA).setAdTagUri(adTagUri).build();
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
new DefaultMediaSourceFactory(
|
||||
applicationContext,
|
||||
@ -212,7 +207,7 @@ public final class DefaultMediaSourceFactoryTest {
|
||||
public void createMediaSource_withAdTagUriAdsLoaderNull_playsWithoutAdNoException() {
|
||||
Context applicationContext = ApplicationProvider.getApplicationContext();
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder().setSourceUri(URI_MEDIA).setAdTagUri(Uri.parse(URI_MEDIA)).build();
|
||||
new MediaItem.Builder().setUri(URI_MEDIA).setAdTagUri(Uri.parse(URI_MEDIA)).build();
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
new DefaultMediaSourceFactory(
|
||||
applicationContext,
|
||||
@ -228,7 +223,7 @@ public final class DefaultMediaSourceFactoryTest {
|
||||
public void createMediaSource_withAdTagUriProvidersNull_playsWithoutAdNoException() {
|
||||
Context applicationContext = ApplicationProvider.getApplicationContext();
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder().setSourceUri(URI_MEDIA).setAdTagUri(Uri.parse(URI_MEDIA)).build();
|
||||
new MediaItem.Builder().setUri(URI_MEDIA).setAdTagUri(Uri.parse(URI_MEDIA)).build();
|
||||
|
||||
MediaSource mediaSource =
|
||||
DefaultMediaSourceFactory.newInstance(applicationContext).createMediaSource(mediaItem);
|
||||
|
@ -313,7 +313,7 @@ public final class DashMediaSource extends BaseMediaSource {
|
||||
@Deprecated
|
||||
@Override
|
||||
public DashMediaSource createMediaSource(Uri uri) {
|
||||
return createMediaSource(new MediaItem.Builder().setSourceUri(uri).build());
|
||||
return createMediaSource(new MediaItem.Builder().setUri(uri).build());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -339,7 +339,7 @@ public final class DashMediaSource extends BaseMediaSource {
|
||||
}
|
||||
return new DashMediaSource(
|
||||
/* manifest= */ null,
|
||||
mediaItem.playbackProperties.sourceUri,
|
||||
mediaItem.playbackProperties.uri,
|
||||
manifestDataSourceFactory,
|
||||
manifestParser,
|
||||
chunkSourceFactory,
|
||||
|
@ -38,10 +38,7 @@ public class DefaultMediaSourceFactoryTest {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_MEDIA)
|
||||
.setMimeType(MimeTypes.APPLICATION_MPD)
|
||||
.build();
|
||||
new MediaItem.Builder().setUri(URI_MEDIA).setMimeType(MimeTypes.APPLICATION_MPD).build();
|
||||
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
|
||||
@ -55,7 +52,7 @@ public class DefaultMediaSourceFactoryTest {
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_MEDIA)
|
||||
.setUri(URI_MEDIA)
|
||||
.setMimeType(MimeTypes.APPLICATION_MPD)
|
||||
.setTag(tag)
|
||||
.build();
|
||||
@ -69,7 +66,7 @@ public class DefaultMediaSourceFactoryTest {
|
||||
public void createMediaSource_withPath_dashSource() {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_MEDIA + "/file.mpd").build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.mpd").build();
|
||||
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
|
||||
@ -80,7 +77,7 @@ public class DefaultMediaSourceFactoryTest {
|
||||
public void createMediaSource_withNull_usesNonNullDefaults() {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_MEDIA + "/file.mpd").build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.mpd").build();
|
||||
|
||||
MediaSource mediaSource =
|
||||
defaultMediaSourceFactory
|
||||
|
@ -332,7 +332,7 @@ public final class HlsMediaSource extends BaseMediaSource
|
||||
@Deprecated
|
||||
@Override
|
||||
public HlsMediaSource createMediaSource(Uri uri) {
|
||||
return createMediaSource(new MediaItem.Builder().setSourceUri(uri).build());
|
||||
return createMediaSource(new MediaItem.Builder().setUri(uri).build());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -355,7 +355,7 @@ public final class HlsMediaSource extends BaseMediaSource
|
||||
new FilteringHlsPlaylistParserFactory(playlistParserFactory, streamKeys);
|
||||
}
|
||||
return new HlsMediaSource(
|
||||
mediaItem.playbackProperties.sourceUri,
|
||||
mediaItem.playbackProperties.uri,
|
||||
hlsDataSourceFactory,
|
||||
extractorFactory,
|
||||
compositeSequenceableLoaderFactory,
|
||||
|
@ -38,10 +38,7 @@ public class DefaultMediaSourceFactoryTest {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_MEDIA)
|
||||
.setMimeType(MimeTypes.APPLICATION_M3U8)
|
||||
.build();
|
||||
new MediaItem.Builder().setUri(URI_MEDIA).setMimeType(MimeTypes.APPLICATION_M3U8).build();
|
||||
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
|
||||
@ -55,7 +52,7 @@ public class DefaultMediaSourceFactoryTest {
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_MEDIA)
|
||||
.setUri(URI_MEDIA)
|
||||
.setMimeType(MimeTypes.APPLICATION_M3U8)
|
||||
.setTag(tag)
|
||||
.build();
|
||||
@ -69,7 +66,7 @@ public class DefaultMediaSourceFactoryTest {
|
||||
public void createMediaSource_withPath_hlsSource() {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_MEDIA + "/file.m3u8").build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.m3u8").build();
|
||||
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
|
||||
@ -80,7 +77,7 @@ public class DefaultMediaSourceFactoryTest {
|
||||
public void createMediaSource_withNull_usesNonNullDefaults() {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_MEDIA + "/file.m3u8").build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.m3u8").build();
|
||||
|
||||
MediaSource mediaSource =
|
||||
defaultMediaSourceFactory
|
||||
|
@ -223,7 +223,7 @@ public final class SsMediaSource extends BaseMediaSource
|
||||
@Deprecated
|
||||
@Override
|
||||
public SsMediaSource createMediaSource(Uri uri) {
|
||||
return createMediaSource(new MediaItem.Builder().setSourceUri(uri).build());
|
||||
return createMediaSource(new MediaItem.Builder().setUri(uri).build());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -307,7 +307,7 @@ public final class SsMediaSource extends BaseMediaSource
|
||||
}
|
||||
return new SsMediaSource(
|
||||
/* manifest= */ null,
|
||||
mediaItem.playbackProperties.sourceUri,
|
||||
mediaItem.playbackProperties.uri,
|
||||
manifestDataSourceFactory,
|
||||
manifestParser,
|
||||
chunkSourceFactory,
|
||||
|
@ -40,10 +40,7 @@ public class DefaultMediaSourceFactoryTest {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_MEDIA)
|
||||
.setMimeType(MimeTypes.APPLICATION_SS)
|
||||
.build();
|
||||
new MediaItem.Builder().setUri(URI_MEDIA).setMimeType(MimeTypes.APPLICATION_SS).build();
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
assertThat(mediaSource).isInstanceOf(SsMediaSource.class);
|
||||
}
|
||||
@ -55,7 +52,7 @@ public class DefaultMediaSourceFactoryTest {
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setSourceUri(URI_MEDIA)
|
||||
.setUri(URI_MEDIA)
|
||||
.setMimeType(MimeTypes.APPLICATION_SS)
|
||||
.setTag(tag)
|
||||
.build();
|
||||
@ -69,7 +66,7 @@ public class DefaultMediaSourceFactoryTest {
|
||||
public void createMediaSource_withIsmPath_smoothstreamingSource() {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_MEDIA + "/file.ism").build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.ism").build();
|
||||
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
|
||||
@ -80,7 +77,7 @@ public class DefaultMediaSourceFactoryTest {
|
||||
public void createMediaSource_withManifestPath_smoothstreamingSource() {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_MEDIA + ".ism/Manifest").build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + ".ism/Manifest").build();
|
||||
|
||||
MediaSource mediaSource = defaultMediaSourceFactory.createMediaSource(mediaItem);
|
||||
|
||||
@ -91,7 +88,7 @@ public class DefaultMediaSourceFactoryTest {
|
||||
public void createMediaSource_withNull_usesNonNullDefaults() {
|
||||
DefaultMediaSourceFactory defaultMediaSourceFactory =
|
||||
DefaultMediaSourceFactory.newInstance(ApplicationProvider.getApplicationContext());
|
||||
MediaItem mediaItem = new MediaItem.Builder().setSourceUri(URI_MEDIA + "/file.ism").build();
|
||||
MediaItem mediaItem = new MediaItem.Builder().setUri(URI_MEDIA + "/file.ism").build();
|
||||
|
||||
MediaSource mediaSource =
|
||||
defaultMediaSourceFactory
|
||||
|
Loading…
x
Reference in New Issue
Block a user