1daa3e9d6a48e239724689d7741ec486350f2b4e
Oliver's hunch was right: the tap unlocks audio and starts a 768 KB fetch, but the source starts seconds later inside a promise with no gesture near it. iOS suspends an idle context in that gap, and a source started into a suspended context is silent for good — nothing on the splash ever asks for audio again. Resume once more when the buffer lands, which the first tap has already authorised, and again when the app comes back to the foreground. Intermittent because it only bites when the decode outlasts the browser's patience: a phone, a cold cache, a slow radio. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Languages
JavaScript
75.2%
Python
15.8%
HTML
7.3%
Shell
1.4%
Swift
0.2%