androidx / media

Jetpack Media3 support libraries for media use cases, including ExoPlayer, an extensible media player for Android
https://developer.android.com/media/media3
Apache License 2.0
1.75k stars 422 forks source link

Show HLS stream in media notification as a progressive stream (without the "live window") #1256

Open dxshindeo opened 7 months ago

dxshindeo commented 7 months ago

Reading from the docs ( https://developer.android.com/media/media3/exoplayer/live-streaming ), I see that livestreams are divided into 2 categories:

adaptive

progressive

From my understanding, the adaptive is the relative "new kid" on the block, offering that live window seek functionality and that awesome wave visual effect.

Call me old-fashioned, but I just hate seeing a seekable timeline on a LIVE audio stream. It rubs me the wrong way. In my opinion, it should only be on audio that is finished (a file). Less confusion.

So my question is - is it possible to play an HLS stream, but WITHOUT that live window? To make it look like it is a progressive livestream? (I mean I know it can be because one of my old apps can do it, but it was not built with "media3")

marcbaechinger commented 7 months ago

Thanks for reporting!

Yes, I agree the seekbar for a live window doesn't make sense in the notification. The fix for this is to not set the duration when syncing the Media3 session state to the platform metadata data.

When testing this works for System UI media controls on API 29 and API 33. The seekbar is shown starting with API 29 I think and only for media style notification that have a session attached (which is standard with DefaultMediaNotificationProvider). Hence this only needs to be changed in the MediaSessionLegacyStub where we can set C.TIME_UNSET if it's a live stream.

I'll mark this issue as an enhancement and send such a change to the internal review. The commit will be referenced here when it lands on GitHub.