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 {
element = null;
@ -97,10 +84,6 @@ class Preview {
this.element = document.getElementById(id);
this.element.srcObject = stream;
}
destructor() {
this.element.remove();
}
}
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 {
peer = null;
streams = {};
@ -126,17 +126,17 @@ class Peer {
event.streams.forEach((stream) => {
this.streams[stream.id] = new Remote(stream.id, stream);
});
View.log("/ontrack:", this.streams);
};
this.peer.onremovestream = (event) => {
event.streams.forEach((stream) => {
this.streams[stream.id].destructor();
delete this.streams[stream.id];
});
View.log("/onremovestream:", this.streams);
};
this.peer.onconnectionstatechange = (event) => {
View.log("/onconnectionstatechange:", this.streams, this.peer.connectionState);
this.peer.oniceconnectionstatechange = (event) => {
switch (this.peer.iceConnectionState) {
case "disconnected":
case "failed":
case "closed":
for (var k in this.streams) {
this.streams[k].destructor();
delete this.streams[k];
}
}
};
this.peer.addStream(stream);
}