diff options
Diffstat (limited to 'web/share/js/kvm/stream_janus.js')
-rw-r--r-- | web/share/js/kvm/stream_janus.js | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/web/share/js/kvm/stream_janus.js b/web/share/js/kvm/stream_janus.js index 09ee75da..449450b7 100644 --- a/web/share/js/kvm/stream_janus.js +++ b/web/share/js/kvm/stream_janus.js @@ -29,11 +29,13 @@ import {tools, $} from "../tools.js"; var _Janus = null; -export function JanusStreamer(__setActive, __setInactive, __setInfo, __orient, __allow_audio) { +export function JanusStreamer(__setActive, __setInactive, __setInfo, __orient, __allow_audio, __allow_mic) { var self = this; /************************************************************************/ + __allow_mic = (__allow_audio && __allow_mic); // XXX: Mic only with audio + var __stop = false; var __ensuring = false; @@ -51,8 +53,18 @@ export function JanusStreamer(__setActive, __setInactive, __setInfo, __orient, _ self.getOrientation = () => __orient; self.isAudioAllowed = () => __allow_audio; - - self.getName = () => (__allow_audio ? "WebRTC H.264 + Audio" : "WebRTC H.264"); + self.isMicAllowed = () => __allow_mic; + + self.getName = function() { + let name = "WebRTC H.264"; + if (__allow_audio) { + name += " + Audio"; + if (__allow_mic) { + name += " + Mic"; + } + } + return name; + }; self.getMode = () => "janus"; self.getResolution = function() { @@ -229,6 +241,7 @@ export function JanusStreamer(__setActive, __setInactive, __setInfo, __orient, _ __setInfo(false, false, ""); } else if (msg.result.status === "features") { tools.feature.setEnabled($("stream-audio"), msg.result.features.audio); + tools.feature.setEnabled($("stream-mic"), msg.result.features.mic); } } else if (msg.error_code || msg.error) { __logError("Got uStreamer error message:", msg.error_code, "-", msg.error); @@ -251,7 +264,7 @@ export function JanusStreamer(__setActive, __setInactive, __setInfo, __orient, _ __logInfo("Handling SDP:", jsep); let tracks = [{"type": "video", "capture": false, "recv": true, "add": true}]; if (__allow_audio) { - tracks.push({"type": "audio", "capture": false, "recv": true, "add": true}); + tracks.push({"type": "audio", "capture": __allow_mic, "recv": true, "add": true}); } __handle.createAnswer({ "jsep": jsep, @@ -354,11 +367,12 @@ export function JanusStreamer(__setActive, __setInactive, __setInfo, __orient, _ var __sendWatch = function() { if (__handle) { - __logInfo(`Sending WATCH(orient=${__orient}, audio=${__allow_audio}) + FEATURES ...`); + __logInfo(`Sending WATCH(orient=${__orient}, audio=${__allow_audio}, mic=${__allow_mic}) + FEATURES ...`); __handle.send({"message": {"request": "features"}}); __handle.send({"message": {"request": "watch", "params": { "orientation": __orient, "audio": __allow_audio, + "mic": __allow_mic, }}}); } }; |