Bug: 'speakers publish, listeners subscribe' meant speakers never got the SFU subscribe leg — which carries every screen + camera publish. So a host sharing a screen never saw the other speaker's screen, a late-joining speaker missed any screen already being shared, and toggling camera made each side see only their own preview. Fix: - onRoleEntered: everyone (speaker AND listener) calls sfuSubscribe. The subscribe PC carries all incoming kinds: mic + screen + camera. - onRoleChanged: keep the subscribe alive across role flips instead of tearing it down when becoming speaker. - ontrack mic-handler: if we're a speaker AND we already have a mesh peer for the publisher's pubkey, skip the SFU mic track so audio only comes through mesh (lower-latency path) instead of doubling. Screens + cameras always render regardless of role. Late-join screens already worked from the SFU side (serveSubscribe AddTracks every existing publisher into the initial offer); the missing piece was speakers actually completing the subscribe. |
||
|---|---|---|
| .. | ||
| blog | ||
| fonts | ||
| chat.html | ||
| host-your-own.html | ||
| how-it-works.html | ||
| index.html | ||
| kernel.html | ||
| stamp.js | ||
| zebra-audio.html | ||
| zebra-spaces.html | ||