Telemetry from fxhp-phone proved the bug isn't play()-promise-rejects. Firefox Android: receiver decodes audio (aud.recv level=0.449 in the stats) but the <audio> element stays pa=1 ct=0.00 forever. play() returns a resolved promise on the pre-blessed pool element, but assigning the WebRTC srcObject silently breaks the autoplay grant without firing an error — flagAudioBlocked's promise-reject hook never gets called. Add a state-based trigger inside the existing 5s telemetry tick: if any audio element has rs>=2 (HAVE_CURRENT_DATA) but is paused at ct=0, call flagAudioBlocked() to surface the tap-anywhere notice. Listener role only — speakers have other audio paths that shouldn't be disturbed by a global click handler. Re-uses the existing tap-to-resume scaffolding from b8fd50c (single document-level click listener that fires activateListenerAudio() inside the gesture and self-removes). One tap on the phone screen should now recover all paused audio. |
||
|---|---|---|
| .. | ||
| blog | ||
| fonts | ||
| chat.html | ||
| host-your-own.html | ||
| how-it-works.html | ||
| index.html | ||
| kernel.html | ||
| stamp.js | ||
| zebra-audio.html | ||
| zebra-spaces.html | ||