В моем веб-приложении одновременно отображаются четыре потока, поступающие с WebRTC RTCPeerConnection
. Каждый раз, когда я получаю предложение, я проверяю, занят ли элемент видео, если я не показываю поток.
bobConn.onaddstream = AddingStream;
function AddingStream(evt) {
if (video1.readyState === 0){
video1 = video1 = attachMediaStream(video1, evt.stream);
video1attached = true;
} else if (video1.readyState === 4 && video2.readyState === 0){
video2 = attachMediaStream(video2, evt.stream);
video2attached = true;
} else if (video2.readyState === 4 && video3.readyState === 0){
video3 = attachMediaStream(video3, evt.stream);
video3attached = true;
} else if (video3.readyState === 4 && video4.readyState === 0){
video4 = attachMediaStream(video4, evt.stream);
video4attached = true;
}
};
Теперь я пытаюсь обработать событие, при котором произойдет отключение любого из подключений (например, устройство, которое будет отключать потоки), в этом случае элемент video
будет заменен изображением информирование об отключении.
Чтобы узнать, какое видео заменить, мне нужно знать, какое соединение было прервано.
Может кто-нибудь сказать мне, как отличить RTCPeerConnection
соединения?
редактирование:
function getBrowserRTCConnectionObj () {
var servers = {'iceServers': [{'url': 'stun:stun.services.mozilla.com'}, {'url': 'stun:stun.l.google.com:19302'}]};
if (window.mozRTCPeerConnection) {
return new mozRTCPeerConnection(servers);
} else if (window.webkitRTCPeerConnection) {
return new webkitRTCPeerConnection(servers);
} else if (window.msRTCPeerConnection) {
return new msRTCPeerConnection(servers);
} else {
return new RTCPeerConnection(servers);
}
};
function getStream(){
//pytanie: nowy objekt zawsze przyjmuje nazwe connection
bobConn = getBrowserRTCConnectionObj();
bobConn.onicecandidate = sentIceCandidates;
bobConn.onaddstream = AddingStream;
bobConn.setRemoteDescription(
new RTCSessionDescription(TempDescriptions),
function() {
bobConn.createAnswer(gotDescription, displayError);
//toggleVideo();
}, displayError);
};
ShowStreams ():
function showStreams(){
var streams = connection.getRemoteStreams();
for (var stream of streams) {
console.log("Remote streams: " + stream.id);
};
};