diff --git a/modules/admin.js b/modules/admin.js index 91b6905..5be93ce 100644 --- a/modules/admin.js +++ b/modules/admin.js @@ -442,6 +442,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..e1d404b 100644 --- a/modules/bundle.js +++ b/modules/bundle.js @@ -115,7 +115,7 @@ export default class bundleClass { x++; } if (slide.uuid === uuid) { - if (slide.type === "slide") { + if (slide.type === "slide" || slide.type === "video") { let path = process.cwd() + "/data/bundles/" + this.name; try { uuid = checkAndSanitizeFilePathName(uuid) diff --git a/public/js/displayWebGl.js b/public/js/displayWebGl.js index 4f79942..eb45de6 100644 --- a/public/js/displayWebGl.js +++ b/public/js/displayWebGl.js @@ -300,6 +300,7 @@ function nextSlide(data) { 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 +447,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