diff --git a/web/js/3las/3las.js b/web/js/3las/3las.js index 5930aa2..4409bf4 100644 --- a/web/js/3las/3las.js +++ b/web/js/3las/3las.js @@ -2,7 +2,8 @@ var audioStreamRestartInterval; var elapsedTimeConnectionWatchdog; var _3LAS_Settings = /** @class */ (function () { function _3LAS_Settings() { - this.SocketHost = document.location.hostname ? document.location.hostname : "127.0.0.1"; + this.SocketHost = location.hostname ? location.hostname : "127.0.0.1"; + this.SocketPort = location.port; this.SocketPath = "/"; this.Fallback = new Fallback_Settings(); } @@ -69,14 +70,14 @@ var _3LAS = /** @class */ (function () { console.log("Stream connection watchdog active."); let intervalReconnectWatchdog = setInterval(() => { if (Stream) { - var endTimeConnectionWatchdog = performance.now(); + let endTimeConnectionWatchdog = performance.now(); elapsedTimeConnectionWatchdog = endTimeConnectionWatchdog - window.startTimeConnectionWatchdog; - //console.log(`Stream frame elapsed time: ${elapsedTimeConnectionWatchdog} ms`); + //console.log(`Stream frame elapsed time: ${parseInt(elapsedTimeConnectionWatchdog)} ms`); if (elapsedTimeConnectionWatchdog > 2000 && shouldReconnect) { clearInterval(intervalReconnectWatchdog); setTimeout(() => { clearInterval(intervalReconnectWatchdog); - console.log("Unstable internet connection detected, reconnecting (" + elapsedTimeConnectionWatchdog + " ms)..."); + console.log("Unstable internet connection detected, reconnecting... (" + parseInt(elapsedTimeConnectionWatchdog) + " ms)"); this.Stop(); this.Start(); }, 2000); @@ -93,10 +94,10 @@ var _3LAS = /** @class */ (function () { this.WakeLock.Begin(); try { if (window.location.protocol === 'https:') { - this.WebSocket = new WebSocketClient(this.Logger, 'wss://' + this.Settings.SocketHost + ':' + location.port.toString() + window.location.pathname + 'audio' , this.OnSocketError.bind(this), this.OnSocketConnect.bind(this), this.OnSocketDataReady.bind(this), this.OnSocketDisconnect.bind(this)); + this.WebSocket = new WebSocketClient(this.Logger, 'wss://' + this.Settings.SocketHost + ':' + this.Settings.SocketPort.toString() + window.location.pathname + 'audio' , this.OnSocketError.bind(this), this.OnSocketConnect.bind(this), this.OnSocketDataReady.bind(this), this.OnSocketDisconnect.bind(this)); } else { - this.WebSocket = new WebSocketClient(this.Logger, 'ws://' + this.Settings.SocketHost + ':' + location.port.toString() + window.location.pathname + 'audio' , this.OnSocketError.bind(this), this.OnSocketConnect.bind(this), this.OnSocketDataReady.bind(this), this.OnSocketDisconnect.bind(this)); + this.WebSocket = new WebSocketClient(this.Logger, 'ws://' + this.Settings.SocketHost + ':' + this.Settings.SocketPort.toString() + window.location.pathname + 'audio' , this.OnSocketError.bind(this), this.OnSocketConnect.bind(this), this.OnSocketDataReady.bind(this), this.OnSocketDisconnect.bind(this)); } this.Logger.Log("Init of WebSocketClient succeeded"); this.Logger.Log("Trying to connect to server."); diff --git a/web/js/3las/util/3las.helpers.js b/web/js/3las/util/3las.helpers.js index 548d3d3..85dac3d 100644 --- a/web/js/3las/util/3las.helpers.js +++ b/web/js/3las/util/3las.helpers.js @@ -103,18 +103,29 @@ var WakeLock = /** @class */ (function () { try { navigator.wakeLock.request("screen").then(function (obj) { _this.Logger.Log("WakeLock request successful. Lock acquired."); - _this.LockElement = obj; + _this.LockElement = obj; // Not an audio/video element + console.log("WakeLock request successful."); }, function () { _this.Logger.Log("WakeLock request failed."); + console.log("WakeLock request failed."); }); } catch (err) { this.Logger.Log("WakeLock request failed."); + console.log("WakeLock request failed."); } } else { this.Logger.Log("WakeLock video loop started."); - this.LockElement.play(); + + // Ensure it's an audio/video element before calling play() + if (_this.LockElement instanceof HTMLMediaElement) { + _this.LockElement.play().catch(err => { + console.error("LockElement failed:", err); + }); + } else { + console.warn("LockElement not a media element or already assigned."); + } } }; WakeLock.AddSourceToVideo = function (element, type, dataURI) {