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?

questionAnswers(3)

yourAnswerToTheQuestion