diff --git a/webroot/js/app.js b/webroot/js/app.js index 9bfcbeff2..edc63e56f 100644 --- a/webroot/js/app.js +++ b/webroot/js/app.js @@ -33,21 +33,24 @@ async function setupApp() { } async function getStatus() { - let url = "/status"; + const url = "/status"; try { const response = await fetch(url); - const status = await response.json(); // read response body and parse as JSON + const status = await response.json(); if (!app.isOnline && status.online) { // The stream was offline, but now it's online. Force start of playback after an arbitrary // delay to make sure the stream has actual data ready to go. setTimeout(function () { - var player = videojs('video'); - player.pause() - player.src(player.src()); // Reload the same video - player.load(); - player.play(); + try { + const player = videojs('video'); + player.src(player.src()); // Reload the same video + player.load(); + player.play(); + } catch (e) { + console.log(e) + } }, 3000) } @@ -113,7 +116,12 @@ function setupWebsocket() { } setupApp() -getStatus() -setupWebsocket() -setInterval(getStatus, 5000) + +// Wait until the player is setup before we start polling status +videojs.hookOnce('setup', function (player) { + getStatus(); + setInterval(getStatus, 5000); +}); + +setupWebsocket()