Fix status info in JS player
This commit is contained in:
+28
-18
@@ -1,19 +1,23 @@
|
|||||||
import {VideoRTC} from "./video-rtc.js";
|
import {VideoRTC} from "./video-rtc.js";
|
||||||
|
|
||||||
class VideoStream extends VideoRTC {
|
class VideoStream extends VideoRTC {
|
||||||
constructor() {
|
set divMode(value) {
|
||||||
super();
|
this.querySelector(".mode").innerText = value;
|
||||||
|
this.querySelector(".status").innerText = "";
|
||||||
|
}
|
||||||
|
|
||||||
/** @type {HTMLDivElement} */
|
set divError(value) {
|
||||||
this.divMode = null;
|
const state = this.querySelector(".mode").innerText;
|
||||||
/** @type {HTMLDivElement} */
|
if (state !== "loading") return;
|
||||||
this.divStatus = null;
|
this.querySelector(".mode").innerText = "error";
|
||||||
|
this.querySelector(".status").innerText = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Custom GUI
|
* Custom GUI
|
||||||
*/
|
*/
|
||||||
oninit() {
|
oninit() {
|
||||||
|
console.debug("stream.oninit");
|
||||||
super.oninit();
|
super.oninit();
|
||||||
|
|
||||||
this.innerHTML = `
|
this.innerHTML = `
|
||||||
@@ -36,35 +40,36 @@ class VideoStream extends VideoRTC {
|
|||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
this.divStatus = this.querySelector(".status");
|
|
||||||
this.divMode = this.querySelector(".mode");
|
|
||||||
|
|
||||||
const info = this.querySelector(".info")
|
const info = this.querySelector(".info")
|
||||||
this.insertBefore(this.video, info);
|
this.insertBefore(this.video, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
onconnect() {
|
onconnect() {
|
||||||
|
console.debug("stream.onconnect");
|
||||||
const result = super.onconnect();
|
const result = super.onconnect();
|
||||||
if (result) {
|
if (result) this.divMode = "loading";
|
||||||
this.divMode.innerText = "loading";
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ondisconnect() {
|
||||||
|
console.debug("stream.ondisconnect");
|
||||||
|
super.ondisconnect();
|
||||||
|
}
|
||||||
|
|
||||||
onopen() {
|
onopen() {
|
||||||
|
console.debug("stream.onopen");
|
||||||
const result = super.onopen();
|
const result = super.onopen();
|
||||||
|
|
||||||
this.onmessage["stream"] = msg => {
|
this.onmessage["stream"] = msg => {
|
||||||
|
console.debug("stream.onmessge", msg);
|
||||||
switch (msg.type) {
|
switch (msg.type) {
|
||||||
case "error":
|
case "error":
|
||||||
this.divMode.innerText = "error";
|
this.divError = msg.value;
|
||||||
this.divStatus.innerText = msg.value;
|
|
||||||
break;
|
break;
|
||||||
case "mse":
|
case "mse":
|
||||||
case "mp4":
|
case "mp4":
|
||||||
case "mjpeg":
|
case "mjpeg":
|
||||||
this.divMode.innerText = msg.type.toUpperCase();
|
this.divMode = msg.type.toUpperCase();
|
||||||
this.divStatus.innerText = "";
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -72,12 +77,17 @@ class VideoStream extends VideoRTC {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onclose() {
|
||||||
|
console.debug("stream.onclose");
|
||||||
|
return super.onclose();
|
||||||
|
}
|
||||||
|
|
||||||
onpcvideo(ev) {
|
onpcvideo(ev) {
|
||||||
|
console.debug("stream.onpcvideo");
|
||||||
super.onpcvideo(ev);
|
super.onpcvideo(ev);
|
||||||
|
|
||||||
if (this.pcState !== WebSocket.CLOSED) {
|
if (this.pcState !== WebSocket.CLOSED) {
|
||||||
this.divMode.innerText = "RTC";
|
this.divMode = "RTC";
|
||||||
this.divStatus.innerText = "";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user