CLIENT_LOG made the failure mode unambiguous: after the play button tap, the WebRTC audio elements report paused=false rs=4 muted=false srcObject=true — the browser believes it is playing — but Firefox Android emits zero output. Same shape as the camera autoplay-block we fixed earlier with swapFreshVideoElement: an element created muted=true and later unmuted is internally pinned to silent. Fix mirrors that pattern. Inside the listener's btn-mute click (real user gesture), every <audio> in remoteAudio / streamAudio is replaced with a freshly-built unmuted element, the same srcObject (for WebRTC) or src URL (for DJ stream) is reattached, and play() fires inside the gesture context. The fresh element has never been muted so the internal routing is clean. |
||
|---|---|---|
| .. | ||
| blog | ||
| fonts | ||
| chat.html | ||
| host-your-own.html | ||
| how-it-works.html | ||
| index.html | ||
| kernel.html | ||
| stamp.js | ||
| zebra-audio.html | ||
| zebra-spaces.html | ||