fix(player): fix Android 17 lockscreen playback and SABR seek buffering#70
fix(player): fix Android 17 lockscreen playback and SABR seek buffering#70Priveetee wants to merge 1 commit into
Conversation
|
Thanks. I just updated my p7 to 17 and also reproduced the issue. After isolating the changes, the background audio issue is fixed by calling startForeground() again after
I'll close this PR since the main issue is resolved :) |
|
Thanks for the update and for digging into this :) Great to hear the background audio issue is fixed with such a small change. I’m totally fine with closing the PR if the main issue is resolved that's always the most important part as always ! Feel free to ping me if you want help with the future MediaSession refactor, like always np at all! Have a great day :) |
|
can you help check if playback and download works correct with logged in, including age restricted videos? I'm deal with another edge case |
|
Yeah of course, I'm on it |
Fixes InfinityLoop1308/PipePipe#2575
Pairs with the extractor-side SABR cold-start fix: InfinityLoop1308/PipePipeExtractor#80
Summary
I reproduced the lockscreen/background issue on my Pixel 8 / Android 17.
There were two problems here:
Problem
After
startForeground(), later notification updates could go throughnotify()instead of keeping the service foreground notification updated throughstartForeground().For SABR, lockscreen seek can call
seekToUs()without a new track selection. That means ExoPlayer starts asking for the new segment, but SABR was still pacing from the previous reader position.Observed during repro:
Changes
startForeground()while the player service is alive.SabrMediaPeriod.seekToUs(), not only from track selection.Validation
Tested on Pixel 8 / Android 17:
Build:
./gradlew :app:assembleDebuggit diff --check