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) {
|
if (mediaItem.mediaMetadata.trackNumber != null) {
|
||||||
metadata.putInt(MediaMetadata.KEY_TRACK_NUMBER, mediaItem.mediaMetadata.trackNumber);
|
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 =
|
MediaInfo mediaInfo =
|
||||||
new MediaInfo.Builder(mediaItem.localConfiguration.uri.toString())
|
new MediaInfo.Builder(contentId)
|
||||||
.setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
|
.setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
|
||||||
.setContentType(mediaItem.localConfiguration.mimeType)
|
.setContentType(mediaItem.localConfiguration.mimeType)
|
||||||
|
.setContentUrl(contentUrl)
|
||||||
.setMetadata(metadata)
|
.setMetadata(metadata)
|
||||||
.setCustomData(getCustomData(mediaItem))
|
.setCustomData(getCustomData(mediaItem))
|
||||||
.build();
|
.build();
|
||||||
|
@ -50,6 +50,7 @@ public class DefaultMediaItemConverterTest {
|
|||||||
MediaItem.Builder builder = new MediaItem.Builder();
|
MediaItem.Builder builder = new MediaItem.Builder();
|
||||||
MediaItem item =
|
MediaItem item =
|
||||||
builder
|
builder
|
||||||
|
.setMediaId("fooBar")
|
||||||
.setUri(Uri.parse("http://example.com"))
|
.setUri(Uri.parse("http://example.com"))
|
||||||
.setMediaMetadata(MediaMetadata.EMPTY)
|
.setMediaMetadata(MediaMetadata.EMPTY)
|
||||||
.setMimeType(MimeTypes.APPLICATION_MPD)
|
.setMimeType(MimeTypes.APPLICATION_MPD)
|
||||||
@ -66,4 +67,45 @@ public class DefaultMediaItemConverterTest {
|
|||||||
|
|
||||||
assertThat(reconstructedItem).isEqualTo(item);
|
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