eventually deletes elements
parent
b762ce2401
commit
5c924ad154
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue