eventually deletes elements

This commit is contained in:
Bel LaPointe
2020-05-13 15:46:26 -06:00
parent b762ce2401
commit 5c924ad154

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);
}