Как использовать getUsermedia один раз для мульти-соединения в WebRTC? - PullRequest
0 голосов
/ 11 октября 2018

Я использую WebRTC для проведения нескольких видеоконференций.Но я обнаружил, что когда разные люди приходят в мою комнату, вызывается getUserMedia.

Может ли какой-либо метод вызывать getUsermedia только один раз, начиная с мульти-соединения в WebRTC?

1 Ответ

0 голосов
/ 11 октября 2018
  1. Установить dontCaptureUserMedia=true
  2. Вызвать navigator.mediaDevices.getUserMedia себя
  3. Выдвинуть поток на attachStreams массив
  4. Огонь onstream даже или установить вручную localVideo.srcObject=stream
  5. Открыть или присоединиться к комнате

Пример:

// first step
connection.dontCaptureUserMedia = true;

// seocond step
navigator.mediaDevices.getUserMedia({
    audio: true,
    video: true
}).then(function(stream) {
    // third step
    stream.isVideo = true;
    connection.attachStreams = [stream];

    // fourth step
    var video = document.createElement('video');
    video.playsinline = true;
    video.controls = true;
    video.muted = true;
    video.srcObject = stream;
    connection.onstream({
        stream: stream,
        type: 'local',
        streamid: stream.id,
        mediaElement: video
    });

    // last step: now open or join a room
    connection.openOrJoin('your-room-id');
});

Как это работает?

  1. dontCaptureUserMedia будет игнорировать (обходить) любой локальный вызов getUserMedia
  2. attachStreams массив будет использоваться для совместного использования с удаленными сторонами

и остальнымикод случайный.

...