eventually deletes elements

master
Bel LaPointe 2020-05-13 15:46:26 -06:00
parent b762ce2401
commit 5c924ad154
1 changed files with 27 additions and 27 deletions

View File

@ -77,19 +77,6 @@ class View {
} }
} }
class Remote {
element = null;
constructor(id, stream) {
document.getElementById("remote").innerHTML += `
<video id="${id}" autoplay ></video>
`;
this.element = document.getElementById(id);
this.element.srcObject = stream;
View.log(this.element);
}
}
class Preview { class Preview {
element = null; element = null;
@ -97,10 +84,6 @@ class Preview {
this.element = document.getElementById(id); this.element = document.getElementById(id);
this.element.srcObject = stream; this.element.srcObject = stream;
} }
destructor() {
this.element.remove();
}
} }
class Server { class Server {
@ -112,6 +95,23 @@ class Server {
} }
} }
class Remote {
element = null;
constructor(id, stream) {
document.getElementById("remote").innerHTML += `
<video id="${id}" autoplay ></video>
`;
this.element = document.getElementById(id);
this.element.srcObject = stream;
}
destructor() {
View.log("destructor called");
this.element.remove();
}
}
class Peer { class Peer {
peer = null; peer = null;
streams = {}; streams = {};
@ -126,17 +126,17 @@ class Peer {
event.streams.forEach((stream) => { event.streams.forEach((stream) => {
this.streams[stream.id] = new Remote(stream.id, stream); this.streams[stream.id] = new Remote(stream.id, stream);
}); });
View.log("/ontrack:", this.streams);
}; };
this.peer.onremovestream = (event) => { this.peer.oniceconnectionstatechange = (event) => {
event.streams.forEach((stream) => { switch (this.peer.iceConnectionState) {
this.streams[stream.id].destructor(); case "disconnected":
delete this.streams[stream.id]; case "failed":
}); case "closed":
View.log("/onremovestream:", this.streams); for (var k in this.streams) {
}; this.streams[k].destructor();
this.peer.onconnectionstatechange = (event) => { delete this.streams[k];
View.log("/onconnectionstatechange:", this.streams, this.peer.connectionState); }
}
}; };
this.peer.addStream(stream); this.peer.addStream(stream);
} }