aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-08-01 01:09:07 +0200
committerLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-08-01 01:09:07 +0200
commitcae2e0a33b028ba0ec3a599b4a6b0e25b25357ee (patch)
treecc12d6e080bc9f49dfe3280a56099f8f5011745e /src
parentdd55f45ea8a568c6a4bed4338eef41d342e58475 (diff)
downloadvideotool-cae2e0a33b028ba0ec3a599b4a6b0e25b25357ee.tar.gz
videotool-cae2e0a33b028ba0ec3a599b4a6b0e25b25357ee.tar.bz2
videotool-cae2e0a33b028ba0ec3a599b4a6b0e25b25357ee.tar.lz
videotool-cae2e0a33b028ba0ec3a599b4a6b0e25b25357ee.zip

fix: more fixing

Diffstat (limited to 'src')
-rw-r--r--src/lib/Player/Player.svelte13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/lib/Player/Player.svelte b/src/lib/Player/Player.svelte
index 078e84a..5981162 100644
--- a/src/lib/Player/Player.svelte
+++ b/src/lib/Player/Player.svelte
@@ -136,18 +136,25 @@
$effect(() => {
if (loadedFrameTimestamp) saveFramePosition(frame);
});
+ let seeking = false;
$effect(() => {
if (audio && video && !playing && !playbackFrameOffset) {
try {
const f = frame;
audio.currentTime = frame / video.fps;
audio.play();
+ seeking = true;
(async () => {
const targetTime = (frame + 1) / video.fps;
while (audio.currentTime <= targetTime) {
await new Promise((rs) => requestAnimationFrame(rs));
- if (playing || frame !== f) return;
+ if (playing) {
+ seeking = false;
+ return;
+ }
+ if (frame !== f) return;
}
+ seeking = false;
audio.pause();
audio.currentTime = frame / video.fps;
})();
@@ -158,8 +165,10 @@
});
const updateAudioPlayingState = (playing: boolean) => {
if (audio) {
+ console.warn('upd');
+
if (playing) audio.play();
- else audio.pause();
+ else if (!seeking) audio.pause();
}
};
$effect(() => updateAudioPlayingState(playing));