From 872dcb2139ef4b4b1f9c7748448d4b06bda5b668 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Fri, 15 Mar 2024 06:02:35 -0600 Subject: [PATCH] Be wait for seek to show video player --- .../player/dynamic/DynamicVideoController.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/web/src/components/player/dynamic/DynamicVideoController.ts b/web/src/components/player/dynamic/DynamicVideoController.ts index c6771a11c..d30976447 100644 --- a/web/src/components/player/dynamic/DynamicVideoController.ts +++ b/web/src/components/player/dynamic/DynamicVideoController.ts @@ -81,14 +81,27 @@ export class DynamicVideoController { this.playerController.currentTime = seekSeconds; if (play) { - // use timeout to avoid race condition with other data loading - setTimeout(() => this.playerController.play()), 1; + this.waitAndPlay(); } else { this.playerController.pause(); } } } + waitAndPlay() { + return new Promise((resolve) => { + const onSeekedHandler = () => { + this.playerController.removeEventListener("seeked", onSeekedHandler); + this.playerController.play(); + resolve(undefined); + }; + + this.playerController.addEventListener("seeked", onSeekedHandler, { + once: true, + }); + }); + } + seekToTimelineItem(timeline: Timeline) { this.playerController.pause(); this.seekToTimestamp(timeline.timestamp + this.annotationOffset);