Bug 243258 - Cannot resume MediaSession from PWA after 5sec pause
Summary: Cannot resume MediaSession from PWA after 5sec pause
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: Safari 15
Hardware: iPhone / iPad iOS 15
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2022-07-27 11:09 PDT by Michael Rosenberg
Modified: 2023-08-14 02:15 PDT (History)
4 users (show)

See Also:


Attachments
A screencap demonstrating the bug (16.74 MB, video/quicktime)
2022-07-27 11:09 PDT, Michael Rosenberg
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Rosenberg 2022-07-27 11:09:07 PDT
Created attachment 461254 [details]
A screencap demonstrating the bug

If you have a MediaSession from and add-to-homescreen PWA that has been backgrounded and paused for 5sec, you cannot resume the audio.

Steps to reproduce:
1. In iOS Safari, navigate to https://readtomyshoe.mrosenberg.pub
2. Click Share -> Add to Home Screen -> Add
3. Open the ReadToMyShoe app
4. Click the "+" button next to any article to add it to your queue (this might take a second because it has to download a few megabytes of audio)
5. Click the play button next to the article in the queue
6. Navigate away from the app, e.g., by going to home
7. From the Notification Center, pause playback
8. Wait 5 seconds, then click play

The audio should fail to resume. Retrying play-pause does not help. I've attached a screencap of the bug.

OS: iOS 15.6
Comment 1 Radar WebKit Bug Importer 2022-07-27 18:17:14 PDT
<rdar://problem/97694963>
Comment 2 Dom Christie 2023-08-14 02:15:44 PDT
I have experienced similar issues including the similar case of the disappearing MediaSession controls (https://bugs.webkit.org/show_bug.cgi?id=243256)

It's difficult to debug this, but the MediaSession widget reliability appears to improve when I remove other progressive web apps from my device. The "connection" to the source audio doesn't seem as flaky. The widget can still disappear after a while, but resumption feels more stable.

It almost feels like when multiple PWAs are installed, the MediaSession widget tries to connect to the first installed PWA. If that PWA is not the one that triggered the MediaSession the connection will be lost, and it'll disappear or resumption will be broken.