diff --git a/modules/admin.js b/modules/admin.js index 91b6905..dba73f7 100644 --- a/modules/admin.js +++ b/modules/admin.js @@ -367,6 +367,9 @@ export default class admin { } bundle.save(); + // Adds empty slide render for smooth transitions + fs.copyFileSync("./templates/bundle/render/empty.png","./data/bundles/" + data.bundleName + "/render/" + filename + ".png") + cli.success("save web link"); socket.emit("callback.saveLink", {}); @@ -442,6 +445,9 @@ export default class admin { } bundle.save(); + // Adds empty slide render for smooth transitions + // Could be enhanced with the actual last video frame + fs.copyFileSync("./templates/bundle/render/empty.png","./data/bundles/" + data.bundleName + "/render/" + filename + ".png") cli.success("save video link"); socket.emit("callback.saveVideo", {}); diff --git a/modules/bundle.js b/modules/bundle.js index 64f6d28..aebc681 100644 --- a/modules/bundle.js +++ b/modules/bundle.js @@ -115,21 +115,19 @@ export default class bundleClass { x++; } if (slide.uuid === uuid) { - if (slide.type === "slide") { - let path = process.cwd() + "/data/bundles/" + this.name; - try { - uuid = checkAndSanitizeFilePathName(uuid) - if (fs.existsSync(path + "/render/" + uuid + ".png")) { - fs.unlinkSync(path + "/render/" + uuid + ".png"); - cli.success("removing file:" + path + "/render/" + uuid + ".png"); - } - if (fs.existsSync(path + "/slides/" + uuid)) { - fs.unlinkSync(path + "/slides/" + uuid); - cli.success("removing file:" + path + "/slides/" + uuid); - } - } catch (err) { - cli.error("error while deleting file:" + uuid, err); + let path = process.cwd() + "/data/bundles/" + this.name; + try { + uuid = checkAndSanitizeFilePathName(uuid) + if (fs.existsSync(path + "/render/" + uuid + ".png")) { + fs.unlinkSync(path + "/render/" + uuid + ".png"); + cli.success("removing file:" + path + "/render/" + uuid + ".png"); } + if (fs.existsSync(path + "/slides/" + uuid)) { + fs.unlinkSync(path + "/slides/" + uuid); + cli.success("removing file:" + path + "/slides/" + uuid); + } + } catch (err) { + cli.error("error while deleting file:" + uuid, err); } } } diff --git a/public/js/displayWebGl.js b/public/js/displayWebGl.js index 4f79942..7888e68 100644 --- a/public/js/displayWebGl.js +++ b/public/js/displayWebGl.js @@ -295,11 +295,13 @@ function nextSlide(data) { $("#slider").hide(); video.pause(); $("#stream").hide(); + sketch.showSlide(serverOptions.currentFile, serverOptions.transition); $("#" + getWebLayer()).css("transform", "scale(" + serverOptions.currentMeta.zoom + ")"); $("#" + getWebLayer()).addClass("fadeIn").removeClass("fadeOut"); displayWebPage(serverOptions.currentMeta.webUrl); break; case "video": + sketch.showSlide(serverOptions.currentFile, serverOptions.transition); displayVideo(serverOptions.currentMeta.url, serverOptions.currentMeta.loop, serverOptions.currentMeta.mute); setTimeout(function () { clearIFrame(getWebLayer()); @@ -446,7 +448,7 @@ async function preloadImages(data) { for (let i in allSlides) { try { - if (allSlides[i].type === "slide") { + if (allSlides[i].type === "slide" || allSlides[i].type === "video") { await sketch.loadImage("/render/" + serverOptions.currentBundle + "/" + allSlides[i].uuid + ".png", allSlides[i].uuid); } } catch (err) { diff --git a/templates/bundle/render/empty.png b/templates/bundle/render/empty.png new file mode 100644 index 0000000..6923986 Binary files /dev/null and b/templates/bundle/render/empty.png differ