我正在使用WebRTC进行多视频会议。 但我发现当不同的人来到我的房间时,getUserMedia会被调用。
有没有方法只能在WebRTC中的多连接开始时调用getUsermedia一次?
- Set
dontCaptureUserMedia=true
- 唤起
navigator.mediaDevices.getUserMedia
自己 - 将流推送到
attachStreams
阵列 - 甚至可以
onstream
或手动设置localVideo.srcObject=stream
- 打开或加入聊天室
例:
// 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');
});
它是如何工作的?
dontCaptureUserMedia
将忽略(绕过(任何本地 getUserMedia 调用attachStreams
阵列将用于与远程方共享
其余代码是随意的。