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 {
|
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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue