Files
akademiawodociagowca/frontend
debian 5cd1380286 Zmiana trybu nie wycisza juz calej sali
Wylaczenie "wideo dla wszystkich" przy wlaczonym otwartym mikrofonie
wyciszalo WSZYSTKICH uczestnikow, takze mowiacych w tej chwili. Zdarzylo
sie to na zywo i zaklocilo spotkanie.

Zlozyly sie na to dwie rzeczy:

1. Stan `voiceState` byl trojstopniowy (`none` / `granted` / `video`)
   i mieszal dwa NIEZALEZNE przelaczniki prowadzacego. Wideo przykrywalo
   informacje o mikrofonie, wiec jego wylaczenie wygladalo jak zmiana
   uprawnien, chociaz prawo do mikrofonu zostawalo.

2. `key={join.token}` przemontowywal sale przy KAZDYM nowym tokenie,
   a przemontowanie jest ponownym wejsciem: provider startuje z
   `audio={false}`, wiec kazda opublikowana sciezka przepada. Token jest
   przy tym zawsze inny, bo JWT niesie czas wydania.

Sam token byl poprawny: rola SPEAKER zachowuje `canPublishAudio`.

Klucz sklada teraz `canPublishAudio` i `canPublishVideo`, czyli faktyczne
uprawnienia tego uczestnika wyliczone przez backend z roli, obu trybow
i przyznanego glosu. Zmiana trybu, ktora go nie dotyczy, nie rusza jego sali.

Do tego `initialAudio`/`initialVideo`: urzadzenia wlaczone przed
przemontowaniem wracaja wlaczone, wiec przemontowanie nieuniknione (realna
zmiana uprawnien) tez nie wycisza mowiacego. Kamera wraca wylacznie wtedy,
gdy uczestnik nadal ma do niej prawo.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 09:44:46 +02:00
..
2026-09-02 08:21:27 +02:00
2026-09-02 08:21:27 +02:00
2026-09-02 08:21:27 +02:00
2026-09-02 08:21:27 +02:00
2026-09-02 08:21:27 +02:00
2026-09-02 08:21:27 +02:00
2026-09-02 08:21:27 +02:00
2026-09-02 08:21:27 +02:00
2026-09-02 08:21:27 +02:00
2026-09-02 08:21:27 +02:00
2026-09-02 08:21:27 +02:00
2026-09-02 08:21:27 +02:00
2026-09-02 08:21:27 +02:00
2026-09-02 08:21:27 +02:00