save video mode

This commit is contained in:
Devaev Maxim 2021-07-01 09:22:18 +03:00
parent 2995ca4909
commit 4fe20641da
2 changed files with 27 additions and 6 deletions

View File

@ -459,6 +459,7 @@ export function Streamer() {
__janus_enabled = (enabled && supported && _Janus !== null); __janus_enabled = (enabled && supported && _Janus !== null);
tools.featureSetEnabled($("stream-mode"), __janus_enabled); tools.featureSetEnabled($("stream-mode"), __janus_enabled);
tools.info(`Stream: Janus WebRTC state: enabled=${enabled}, supported=${supported}, imported=${!!_Janus}`); tools.info(`Stream: Janus WebRTC state: enabled=${enabled}, supported=${supported}, imported=${!!_Janus}`);
tools.radioClickValue("stream-mode-radio", tools.storage.get("stream.mode", "mjpeg"));
self.setState(__state); self.setState(__state);
}; };
if (enabled && supported) { if (enabled && supported) {
@ -609,16 +610,17 @@ export function Streamer() {
var __clickModeRadio = function() { var __clickModeRadio = function() {
if (_Janus !== null) { if (_Janus !== null) {
let mode = tools.radioGetValue("stream-mode-radio"); let mode = tools.radioGetValue("stream-mode-radio");
tools.storage.set("stream.mode", mode);
if (mode !== __streamer.getMode()) { if (mode !== __streamer.getMode()) {
setTimeout(() => tools.radioSetValue("stream-mode-radio", mode), 100); setTimeout(() => tools.radioSetValue("stream-mode-radio", mode), 100);
tools.hiddenSetVisible($("stream-image"), (mode === "mjpeg")); tools.hiddenSetVisible($("stream-image"), (mode !== "janus"));
tools.hiddenSetVisible($("stream-video"), (mode !== "mjpeg")); tools.hiddenSetVisible($("stream-video"), (mode === "janus"));
if (mode === "mjpeg") { if (mode === "janus") {
__streamer.stopStream();
__streamer = new _MjpegStreamer(__setActive, __setInactive, __setInfo);
} else { // janus
__streamer.stopStream(); __streamer.stopStream();
__streamer = new _JanusStreamer(__setActive, __setInactive, __setInfo); __streamer = new _JanusStreamer(__setActive, __setInactive, __setInfo);
} else { // mjpeg
__streamer.stopStream();
__streamer = new _MjpegStreamer(__setActive, __setInactive, __setInfo);
} }
if (wm.isWindowVisible($("stream-window"))) { if (wm.isWindowVisible($("stream-window"))) {
__streamer.ensureStream(__state); __streamer.ensureStream(__state);

View File

@ -160,6 +160,15 @@ export var tools = new function() {
el.checked = (el.value === value); el.checked = (el.value === value);
} }
}; };
this.radioClickValue = function(name, value) {
for (let el of $$$(`input[type="radio"][name="${name}"]`)) {
if (el.value === value) {
el.click();
return;
}
}
};
this.progressSetValue = function(el, title, percent) { this.progressSetValue = function(el, title, percent) {
el.setAttribute("data-label", title); el.setAttribute("data-label", title);
@ -242,6 +251,16 @@ export var tools = new function() {
this.info("Browser:", this.browser); this.info("Browser:", this.browser);
this.https = (location.protocol === "https:"); this.https = (location.protocol === "https:");
this.storage = new function() {
return {
"get": function(key, default_value) {
let value = window.localStorage.getItem(key);
return (value !== null ? value : default_value);
},
"set": (key, value) => window.localStorage.setItem(key, value),
};
};
}; };
export var $ = (id) => document.getElementById(id); export var $ = (id) => document.getElementById(id);