Use mediaId as contentId if available
This is to be consistent with what cast `QueueMediaItem` is doing. If a contentId is not available the contentUrl is used as the ID. #minor-release PiperOrigin-RevId: 459133323
This commit is contained in:
parent
bbbb009608
commit
84c801a723
@ -126,11 +126,14 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
|
||||
if (mediaItem.mediaMetadata.trackNumber != null) {
|
||||
metadata.putInt(MediaMetadata.KEY_TRACK_NUMBER, mediaItem.mediaMetadata.trackNumber);
|
||||
}
|
||||
|
||||
String contentUrl = mediaItem.localConfiguration.uri.toString();
|
||||
String contentId =
|
||||
mediaItem.mediaId.equals(MediaItem.DEFAULT_MEDIA_ID) ? contentUrl : mediaItem.mediaId;
|
||||
MediaInfo mediaInfo =
|
||||
new MediaInfo.Builder(mediaItem.localConfiguration.uri.toString())
|
||||
new MediaInfo.Builder(contentId)
|
||||
.setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
|
||||
.setContentType(mediaItem.localConfiguration.mimeType)
|
||||
.setContentUrl(contentUrl)
|
||||
.setMetadata(metadata)
|
||||
.setCustomData(getCustomData(mediaItem))
|
||||
.build();
|
||||
|
@ -50,6 +50,7 @@ public class DefaultMediaItemConverterTest {
|
||||
MediaItem.Builder builder = new MediaItem.Builder();
|
||||
MediaItem item =
|
||||
builder
|
||||
.setMediaId("fooBar")
|
||||
.setUri(Uri.parse("http://example.com"))
|
||||
.setMediaMetadata(MediaMetadata.EMPTY)
|
||||
.setMimeType(MimeTypes.APPLICATION_MPD)
|
||||
@ -66,4 +67,45 @@ public class DefaultMediaItemConverterTest {
|
||||
|
||||
assertThat(reconstructedItem).isEqualTo(item);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toMediaQueueItem_nonDefaultMediaId_usedAsContentId() {
|
||||
MediaItem.Builder builder = new MediaItem.Builder();
|
||||
MediaItem item =
|
||||
builder
|
||||
.setMediaId("fooBar")
|
||||
.setUri("http://example.com")
|
||||
.setMimeType(MimeTypes.APPLICATION_MPD)
|
||||
.build();
|
||||
|
||||
DefaultMediaItemConverter converter = new DefaultMediaItemConverter();
|
||||
MediaQueueItem queueItem = converter.toMediaQueueItem(item);
|
||||
|
||||
assertThat(queueItem.getMedia().getContentId()).isEqualTo("fooBar");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toMediaQueueItem_defaultMediaId_uriAsContentId() {
|
||||
DefaultMediaItemConverter converter = new DefaultMediaItemConverter();
|
||||
MediaItem mediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setUri("http://example.com")
|
||||
.setMimeType(MimeTypes.APPLICATION_MPD)
|
||||
.build();
|
||||
|
||||
MediaQueueItem queueItem = converter.toMediaQueueItem(mediaItem);
|
||||
|
||||
assertThat(queueItem.getMedia().getContentId()).isEqualTo("http://example.com");
|
||||
|
||||
MediaItem secondMediaItem =
|
||||
new MediaItem.Builder()
|
||||
.setMediaId(MediaItem.DEFAULT_MEDIA_ID)
|
||||
.setUri("http://example.com")
|
||||
.setMimeType(MimeTypes.APPLICATION_MPD)
|
||||
.build();
|
||||
|
||||
MediaQueueItem secondQueueItem = converter.toMediaQueueItem(secondMediaItem);
|
||||
|
||||
assertThat(secondQueueItem.getMedia().getContentId()).isEqualTo("http://example.com");
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user