Я создаю несколько одноранговых соединений webrtc и создаю один медиапоток, используя
if (mediaStream == undefined) {
navigator.mediaDevices.getUserMedia({
audio: true,
video: true
}).then(function (stream) {
mediaStream = stream;
mediaStream.getTracks().forEach(function (track) {
rtcPeerConns[userName].addTrack(track, mediaStream);
});
}).catch(function (err) {
console.log("get user media " + err.name + ": " + err.message);
});
} else {
console.log("using the existing local stream");
mediaStream.getTracks().forEach(function (track) {
rtcPeerConns[userName].addTrack(track, mediaStream);
});
}
Все работает отлично, пока не будет закрыто последнее одноранговое соединение, и я не хочу закрыть медиапоток.
if (mediaStream != undefined) {
if (mediaStream.active) {
mediaStream.getTracks().forEach(function (track) {
track.stop();
});
mediaStream = null;
}
}
Если использовалось только 1 одноранговое соединение, все отключается, как и планировалось. Если более одного однорангового соединения использовали MediaStream, тогда MediaStream становится нулевым, но индикатор камеры в браузере и индикатор камеры остаются включенными.
Что мне не хватает?