如何在WebRTC中使用一次getUsermedia进行多连接?



我正在使用WebRTC进行多视频会议。 但我发现当不同的人来到我的房间时,getUserMedia会被调用。

有没有方法只能在WebRTC中的多连接开始时调用getUsermedia一次?

  1. SetdontCaptureUserMedia=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阵列将用于与远程方共享

其余代码是随意的。

最新更新