WebRTC / getUserMedia: Jak prawidłowo wyciszyć lokalne wideo?
Próbuję zaimplementować funkcję wyciszania lokalnego wideoMediaStreamTrack
w mojej aplikacji WebRTC. Oto jak do tego podchodzę:
function muteVideo() {
if (this._localStream && this._localStream.getVideoTracks().length > 0) {
this._localStream.getVideoTracks()[0].enabled = false;
}
}
W Firefoksie<video>
element, do którego dołączony jest strumień lokalny, prawidłowo renderuje ciemność na wyciszeniu. W Chrome czerń nie jest renderowana, ale obraz się zawiesza. Jednak w obu przeglądarkachzielone światło aparatu pozostaje włączone, co jest wyraźnie niepożądanym zachowaniem. (Chcę, aby użytkownicy faktycznie widzieli tę aplikacjęrozłącza się z aparatu na wyciszenie wideo.)
Lampka aparatu zgaśnie, jeśli to zrobięthis._localStream.stop()
, ale potem dźwięk również się wyłącza.
Theaktualny projekt w specyfikacji Media Capture wspominaMediaStreamTrack.stop()
metoda, ale obecnie wydaje się niezaimplementowana w Chrome i Firefox.
Czy istnieje sposób na wyciszenie lokalnego wideo podczas:
Wyłączanie światła aparatuNie tracisz ścieżki audio?