Bug 283419
| Summary: | iOS AudioContext does not change state from running when an external system app starts to play sounds | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | András Csizmadia <andras> |
| Component: | New Bugs | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | eric.carlson, jer.noble, karlcow, leochliu, rychouwei, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | Safari 18 | ||
| Hardware: | iPhone / iPad | ||
| OS: | iOS 18 | ||
András Csizmadia
1. Initialize a browser app using AudioContext with sound playback on a iOS Safari page
2. Start an external system app with delayed sound playback (I've used the Clock app with a countdown timer)
3. Start playing sounds on the Safari page
4. Wait for the external system app's delayed sound playback to be started
5. Notice that the audio context's playing sounds are muted/not audible anymore, but the AudioContext.state keeps the 'running' state
6. Even after the external app's sound playback is finished the browser app's sounds are not audible anymore
7. I've to switch to the iOS lock screen to trigger an 'interrupted' AudioContext.state change, than call AudioContext.resume() after going back to the browser, to recover and be able to play the browser app's sounds
Tested using iOS Safari 18.1.1
I would expect to have an audio context state change event if an external application interrupts the sound playback in the browser app.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/140546577>
rychouwei
same issue, and I did not found any workaround yet unless user refreshed the page.
leochliu
For me, context.suspend() and then context.resume() will fix the problem.