refactoring

This commit is contained in:
Maxim Devaev 2022-11-29 10:13:53 +03:00
parent 6a339238ff
commit a68eb4ed2d
2 changed files with 25 additions and 30 deletions

View File

@ -111,23 +111,24 @@ export function Streamer() {
let has_webrtc = JanusStreamer.is_webrtc_available(); let has_webrtc = JanusStreamer.is_webrtc_available();
let has_h264 = JanusStreamer.is_h264_available(); let has_h264 = JanusStreamer.is_h264_available();
let set_enabled = function() { let set_enabled = function(imported) {
tools.hidden.setVisible($("stream-message-no-webrtc"), !has_webrtc); tools.hidden.setVisible($("stream-message-no-webrtc"), enabled && !has_webrtc);
tools.hidden.setVisible($("stream-message-no-h264"), !has_h264); tools.hidden.setVisible($("stream-message-no-h264"), enabled && !has_h264);
__janus_enabled = (enabled && has_webrtc && JanusStreamer.is_imported()); // Don't check has_h264 for sure __janus_enabled = (enabled && has_webrtc && imported); // Don't check has_h264 for sure
tools.feature.setEnabled($("stream-mode"), __janus_enabled); tools.feature.setEnabled($("stream-mode"), __janus_enabled);
tools.info( tools.info(
`Stream: Janus WebRTC state: enabled=${enabled},` `Stream: Janus WebRTC state: enabled=${enabled},`
+ ` webrtc=${has_webrtc}, h264=${has_h264}, imported=${JanusStreamer.is_imported()}` + ` webrtc=${has_webrtc}, h264=${has_h264}, imported=${imported}`
); );
tools.radio.clickValue("stream-mode-radio", tools.storage.get("stream.mode", "janus")); let mode = (__janus_enabled ? tools.storage.get("stream.mode", "janus") : "mjpeg");
tools.radio.clickValue("stream-mode-radio", mode);
self.setState(__state); self.setState(__state);
}; };
if (enabled && has_webrtc) { if (enabled && has_webrtc) {
JanusStreamer.ensure_janus(set_enabled); JanusStreamer.ensure_janus(set_enabled);
} else { } else {
set_enabled(); set_enabled(false);
} }
}; };
@ -239,22 +240,20 @@ export function Streamer() {
}; };
var __clickModeRadio = function() { var __clickModeRadio = function() {
if (JanusStreamer.is_imported()) { let mode = tools.radio.getValue("stream-mode-radio");
let mode = tools.radio.getValue("stream-mode-radio"); tools.storage.set("stream.mode", mode);
tools.storage.set("stream.mode", mode); if (mode !== __streamer.getMode()) {
if (mode !== __streamer.getMode()) { tools.hidden.setVisible($("stream-image"), (mode !== "janus"));
tools.hidden.setVisible($("stream-image"), (mode !== "janus")); tools.hidden.setVisible($("stream-video"), (mode === "janus"));
tools.hidden.setVisible($("stream-video"), (mode === "janus")); if (mode === "janus") {
if (mode === "janus") { __streamer.stopStream();
__streamer.stopStream(); __streamer = new JanusStreamer(__setActive, __setInactive, __setInfo);
__streamer = new JanusStreamer(__setActive, __setInactive, __setInfo); } else { // mjpeg
} else { // mjpeg __streamer.stopStream();
__streamer.stopStream(); __streamer = new MjpegStreamer(__setActive, __setInactive, __setInfo);
__streamer = new MjpegStreamer(__setActive, __setInactive, __setInfo); }
} if (wm.isWindowVisible($("stream-window"))) {
if (wm.isWindowVisible($("stream-window"))) { __streamer.ensureStream(__state);
__streamer.ensureStream(__state);
}
} }
} }
}; };

View File

@ -333,22 +333,18 @@ JanusStreamer.ensure_janus = function(callback) {
"debug": "all", "debug": "all",
"callback": function() { "callback": function() {
_Janus = module.Janus; _Janus = module.Janus;
callback(); callback(true);
}, },
}); });
}).catch((err) => { }).catch((err) => {
tools.error("Stream: Can't import Janus module:", err); tools.error("Stream: Can't import Janus module:", err);
callback(); callback(false);
}); });
} else { } else {
callback(); callback(true);
} }
}; };
JanusStreamer.is_imported = function() {
return (_Janus !== null);
};
JanusStreamer.is_webrtc_available = function() { JanusStreamer.is_webrtc_available = function() {
return !!window.RTCPeerConnection; return !!window.RTCPeerConnection;
}; };