diff options
feat: more things
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/Player/Player.svelte | 6 | ||||
-rw-r--r-- | src/lib/Renderer/Renderer.svelte | 13 |
2 files changed, 16 insertions, 3 deletions
diff --git a/src/lib/Player/Player.svelte b/src/lib/Player/Player.svelte index 5981162..cc438f5 100644 --- a/src/lib/Player/Player.svelte +++ b/src/lib/Player/Player.svelte @@ -90,6 +90,7 @@ if (f > frameCount) { f = frameCount; playbackRelativeTo = 0; + playbackFrameOffset = 0; playing = false; } frame = f; @@ -110,7 +111,10 @@ $effect(() => { if (playing) { startPlaying(); - } else playbackRelativeTo = 0; + } else { + playbackRelativeTo = 0; + playbackFrameOffset = 0; + } }); let loadedFrameTimestamp = false; onMount(() => { diff --git a/src/lib/Renderer/Renderer.svelte b/src/lib/Renderer/Renderer.svelte index 1100e35..e848312 100644 --- a/src/lib/Renderer/Renderer.svelte +++ b/src/lib/Renderer/Renderer.svelte @@ -45,7 +45,7 @@ const video = new VideoImplementation(c); video['_isInit'] = true; await video.init({ - isPreview: true + isPreview: false }); video['_isInit'] = false; frameCount = video.length; @@ -121,7 +121,16 @@ ); message = 'Disposing ffmpeg state'; await ffmpeg.deleteFile('output.' + format); - location.href = videoUrl; + // TODO: save dialog with preview + const el = document.createElement('a'); + el.download = `output.${format}`; + el.href = videoUrl; + el.textContent = '-'; + document.body.appendChild(el); + el.click(); + setTimeout(() => { + el.remove(); + }, 10); }; $effect(() => { if (canvas && VideoImplementation) start(); |