diff --git a/data/default/bundle.json b/data/default/bundle.json index aad5d95..6666645 100644 --- a/data/default/bundle.json +++ b/data/default/bundle.json @@ -1,5 +1,5 @@ { - "displayName": "default nimi testi toimiiko 123", + "displayName": "default", "background": "bg.jpg", "duration": 0, "transition": "tiles3d", diff --git a/public/js/display.js b/public/js/display.js index e791c14..353606b 100644 --- a/public/js/display.js +++ b/public/js/display.js @@ -43,6 +43,7 @@ $(function () { }); var layer = 0; +var flvPlayer; /** bundleData * @see data/default/bundle.json @@ -203,6 +204,10 @@ function nextSlide(data) { if (serverOptions.isAnnounce) { $("#" + getWebLayer()).addClass("fadeOut").removeClass("fadeIn"); $("#" + getWebLayer(1)).addClass("fadeOut").removeClass("fadeIn"); + setTimeout(function () { + clearIFrame(getWebLayer()); + clearIFrame(getWebLayer(1)); + }, 2500); $("#slider").show(); $("#slider").addClass(); $("#helperLayer").addClass("announce"); @@ -233,8 +238,13 @@ function nextSlide(data) { transition = serverOptions.currentMeta.transition; } - $("#" + getWebLayer()).addClass("fadeOut").removeClass("fadeIn"); - $("#" + getWebLayer(1)).addClass("fadeOut").removeClass("fadeIn"); + $("#" + getWebLayer()).addClass("fadeOut").removeClass("fadeIn").contents().empty(); + $("#" + getWebLayer(1)).addClass("fadeOut").removeClass("fadeIn").contents().empty(); + setTimeout(function () { + clearIFrame(getWebLayer()); + clearIFrame(getWebLayer(1)); + }, 2500); + $("#slider").show(); window.f.showImageById(serverOptions.currentFile, transition); break; @@ -435,4 +445,9 @@ function getWebLayer(offset) { return "webLayer" + (layer + offset) % 2; } +function clearIFrame(elementId) { + var frame = document.getElementById(elementId); + frame.contentWindow.location.href = "/empty"; +} + diff --git a/public/js/displayLite.js b/public/js/displayLite.js index c417fa7..9f68936 100644 --- a/public/js/displayLite.js +++ b/public/js/displayLite.js @@ -4,6 +4,7 @@ var layer = 0; * @see data/default/bundle.json * **/ +var flvPlayer; var connectionTimeoutId; var bundleData; var serverOptions; @@ -159,6 +160,11 @@ function nextSlide(data) { if (serverOptions.isAnnounce) { $("#" + getWebLayer()).addClass("fadeOut").removeClass("fadeIn"); $("#" + getWebLayer(1)).addClass("fadeOut").removeClass("fadeIn"); + setTimeout(function() { + clearIFrame(getLayer()); + clearIFrame(getLayer(1)); + }, 1000); + $("#helperLayer").addClass("announce"); try { var randomId = uuidv4(); @@ -178,6 +184,10 @@ function nextSlide(data) { $(elem).show(); $("#" + getWebLayer()).addClass("fadeOut").removeClass("fadeIn"); $("#" + getWebLayer(1)).addClass("fadeOut").removeClass("fadeIn"); + setTimeout(function() { + clearIFrame(getLayer()); + clearIFrame(getLayer(1)); + }, 1000); elem.src = "/render/" + serverOptions.currentBundle + "/" + serverOptions.currentFile + ".png"; break; } @@ -198,24 +208,29 @@ function nextSlide(data) { function setBackground(background) { background = "/background/" + bundleData.bundleName + "/" + background; + if (serverOptions.isStreaming) return; var video = document.getElementById("bgvid"); var bg = $("#bg"); var bgImage = document.getElementById("bgimg"); if (background.indexOf(".mp4") !== -1) { + if (parseUrl(video.src) !== background) { - bg.hide(); - $(video).show(); + bg.fadeOut(); video.src = background; + video.load(); video.play(); + $(video).show(); } } else { if (parseUrl(bgImage.src) !== background) { bgImage.src = background; - bg.show(); - $(video).hide(); - video.src = ""; + bg.fadeIn(); + // unload video video.pause(); + video.removeAttribute("src"); + video.load(); + $(video).hide(); } } } @@ -302,4 +317,9 @@ function getWebLayer(offset) { return "webLayer" + (weblayer + offset) % 2; } +function clearIFrame(id) { + var frame = document.getElementById(id), + frameDoc = frame.contentDocument || frame.contentWindow.document; + frameDoc.documentElement.innerHTML = ""; +} diff --git a/routes/index.js b/routes/index.js index beda625..bad0869 100644 --- a/routes/index.js +++ b/routes/index.js @@ -15,6 +15,10 @@ module.exports = function (websocket, dispatcher) { res.render('index', {config: config}); }); + router.get('/empty', function (req, res, next) { + res.render('empty'); + }); + router.get('/display/:id/lite', function (req, res, next) { res.header('Access-Control-Allow-Origin', '*'); let idx = parseInt(req.params.id); diff --git a/views/empty.twig b/views/empty.twig new file mode 100644 index 0000000..5d2dc84 --- /dev/null +++ b/views/empty.twig @@ -0,0 +1,13 @@ + + +
+