• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z wykrywaniem kamery i mikrofonu (Django - WebRTC)

0 głosów
295 wizyt
pytanie zadane 31 marca 2025 w Python przez krzysieq18 Początkujący (390 p.)

Witam,

Mam problem z aplikacją opartą na Django i WebRTC (Fragment większego projektu). Niektórzy użytkownicy dołączają do pokoju i wszystko działa poprawnie - ich dźwięk i obraz są przesyłane prawidłowo. Jednak inni uczestnicy dołączają, ale ich nie słychać i nie widać, mimo że mają włączony mikrofon i kamerę.

Sprawdziłem już:

  • Czy użytkownicy udzielili odpowiednich uprawnień do mikrofonu i kamery,

  • Czy przeglądarka nie blokuje dostępu do urządzeń,

  • Czy problem występuje we wszystkich przeglądarkach (i tak, nadal się pojawia).

Czy ktoś spotkał się z podobnym problemem? Może coś przeoczyłem w konfiguracji WebRTC? Każda wskazówka będzie bardzo pomocna!

Z góry dziękuję!

P.S. Jeśli temat jest zbyt konkretny, prosiłbym o ewentualną propozycję do kogo można się z takim czymś zwrócić o pomoc(nawet odpłatną).

Kod: 

room2.html: https://pastebin.com/499g2vW3

room2_rtc.js: https://pastebin.com/eD0wK1kY

room2.js: https://pastebin.com/WH9QHazr

1 odpowiedź

0 głosów
odpowiedź 21 kwietnia przez niezalogowany

Nasze uwagi:
createMicrophoneAndCameraTracks() zwraca tylko jeden track → użytkownik nie publikuje niczego. Brak obsługi user-unpublished → po wyłączeniu kamery/mikrofonu nie wraca obraz/dźwięk. Ponowne client.publish() w handleUserLeft → psuje połączenia, renegocjacje, gubienie tracków. Autoplay blokuje audio → Chrome/Safari nie odtwarzają dźwięku bez interakcji. Safari/iOS nie wspiera VP8 → brak obrazu u części użytkowników. Brak tokena przy włączonym App Certificate → część klientów nie publikuje. Brak obsługi błędów subscribe() → jeśli subskrypcja się wywali, audio/video nie pojawi się. Brak kontenera video gdy user publikuje tylko audio → audio nie ma gdzie się odtworzyć. Zbyt agresywne encoderConfig → część urządzeń nie wspiera 1080p → brak tracków. Brak renegocjacji po reconnectach → część użytkowników nie dostaje tracków. Niektóre przeglądarki blokują kamerę mimo zgody → track null, brak publikacji. Zbyt późne podpinanie eventów user-published → pierwszy publish może zostać zgubiony. Brak HTTPS (jeśli dotyczy) → WebRTC ograniczone, szczególnie na iOS. Zajęta kamera/mikrofon przez inną aplikację → track null, użytkownik „niewidzialny”. Problemy z wirtualnymi kamerami → Agora nie tworzy videoTrack.

Polecamy usprawnić na początek:
createMicrophoneAndCameraTracks() zwraca null → użytkownik nie publikuje niczego (kamera/mikrofon niedostępne lub nieobsługiwane).
Safari / iOS nie wspiera VP8 → brak obrazu u części użytkowników.
Autoplay blokuje audio → użytkownik widoczny, ale niesłyszalny.
Błąd w handleUserLeft (ponowne publish) → psuje połączenia i gubi tracki.
Brak obsługi user-unpublished → po wyciszeniu kamera/mikrofon nie wracają.

Reszta ok devil

Podobne pytania

0 głosów
1 odpowiedź 868 wizyt
0 głosów
0 odpowiedzi 320 wizyt
pytanie zadane 5 stycznia 2020 w C i C++ przez igorczarnowo Nowicjusz (120 p.)
0 głosów
1 odpowiedź 364 wizyt

93,729 zapytań

142,668 odpowiedzi

323,283 komentarzy

63,288 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...