как снова переключиться с общего экрана на камеру с помощью RTCMultiConnection

#javascript #rtcmulticonnection

Вопрос:

Мне нужно снова переключиться с экрана общего доступа на видео. Сначала я использую этот код для совместного использования экрана. подключение.addStream ({ экран: true, oneway: true, обратный вызов потока: функция (экран) { addStreamStopListener (экран, функция () { selectFrontCameraDuringActiveSession (); }); }, })

а затем я использую этот код, чтобы показать видео, которое я снова делаю неправильно.

 connection.attachStreams.forEach (function (stream) {  // stop only video tracks  // so that we can recapture video track  stream.getVideoTracks (). forEach (function (track) {  track.stop ();  });  });   var mediaConstraints = {  audio: false, // NO need to capture audio again  video: {  facingMode: "application",  },  };   navigator.mediaDevices  .getUserMedia (mediaConstraints)  .then (function (frontCamera) {  var frontCameraTrack = frontCamera.getVideoTracks () [0];  //video.srcObject = frontCamera;  connection.getAllParticipants (). forEach (function (pid) {  connection.peers [pid] .peer  .getSenders ()  .forEach (function (sender) {  if (sender.track.kind == "video") {  sender.replaceTrack (frontCameraTrack);  }  });  });  app.toggleShareScreen = false;  });  

Каждый, кто слушает, получает сдачу. но тот, кто передает изменение, не отражается. и, например, выключение видео и активация видео перестают работать.

 if (value === false) {  connection.attachStreams.forEach (function (stream) {  stream.getVideoTracks (). forEach ((t) =gt; (t.enabled = value));  });  }  if (value === true) {  connection.attachStreams.forEach (function (stream) {  stream.getVideoTracks (). forEach ((t) =gt; (t.enabled = value));  });  }