Web Audio regression in Safari iOS 17 Beta
Update, Sept. 8, 2023: Apple engineering has acknowledged that this is a bug in the Safari Media frameworks rather than WebKit itself, and that they expect it to get fixed in an upcoming beta release.
Update, Sept. 19, 2023: Apple engineering has pointed to a fix, which appears to be in WebKit. However, the initial release of iOS 17 does not seem to include the fix, which was merged a few days before the launch.
Playing audio from a MediaElementAudioSourceNode
silently fails in the iOS 17 Beta. I’ve reported this to the WebKit bug tracker here.
Repro
Open the repro link (below) and click “Play”.
Expected: An audio sample plays (this happens on Safari 16)
Actual: No audio plays (this happens on Safari 17)
Repro: https://captbaritone.github.io/safari-17-element-source-bug/
Repro code: https://github.com/captbaritone/safari-17-element-source-bug
Impact
This issue was discovered when webamp.org broke (issue)
The Webamp audio player is also used as an optional audio player on the Internet Archive archive.org, and the bug manifests there as well
I’ve also discovered a few other project which worked on Safari 16, but seems to be broken on iOS by this beta release:
https://visicality.derekwolpert.com It also uses
MediaElementAudioSourceNode
(source)https://saturn.fm (sound effects still work, but music does not play)
Observations
The issue reproduces on iOS 17.0 (21a5312c)
The issue does not reproduce on iOS 16.3 (20D47)
The issue does not reproduce on Safari 17 on MacOS. Tested on version 17.0 (18616.1.27.101.1, 18616)
Some projects seem to avoid using
MediaElementAudioSourceNode
on iOS devices, going back to at least May 2020There have been a few previous WebKit bugs that look similar: Bug 211394 and Bug 203435