diff --git a/RELEASENOTES.md b/RELEASENOTES.md index e6e68257cb..2e7c2d3bbc 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -19,6 +19,9 @@ * Muxers: * IMA extension: * Session: + * Hide seekbar in the media notification for live streams by not setting + the duration into the platform session metadata + ([#1256](https://github.com/androidx/media/issues/1256)). * UI: * Downloads: * OkHttp Extension: diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java index 9d3f380908..e1d90c77d1 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java @@ -1292,7 +1292,10 @@ import org.checkerframework.checker.initialization.qual.Initialized; PlayerWrapper player = sessionImpl.getPlayerWrapper(); @Nullable MediaItem currentMediaItem = player.getCurrentMediaItemWithCommandCheck(); MediaMetadata newMediaMetadata = player.getMediaMetadataWithCommandCheck(); - long newDurationMs = player.getDurationWithCommandCheck(); + long newDurationMs = + player.isCurrentMediaItemLiveWithCommandCheck() + ? C.TIME_UNSET + : player.getDurationWithCommandCheck(); String newMediaId = currentMediaItem != null ? currentMediaItem.mediaId : MediaItem.DEFAULT_MEDIA_ID; @Nullable diff --git a/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java b/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java index cdf97c8265..a0a3faf294 100644 --- a/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java +++ b/libraries/session/src/main/java/androidx/media3/session/PlayerWrapper.java @@ -982,6 +982,10 @@ import java.util.List; return super.isCurrentMediaItemLive(); } + public boolean isCurrentMediaItemLiveWithCommandCheck() { + return isCommandAvailable(COMMAND_GET_CURRENT_MEDIA_ITEM) && isCurrentMediaItemLive(); + } + @Override public boolean isCurrentMediaItemSeekable() { verifyApplicationThread();