Be wait for seek to show video player

This commit is contained in:
Nicolas Mowen 2024-03-15 06:02:35 -06:00
parent 4b30c5536b
commit 872dcb2139

View File

@ -81,14 +81,27 @@ export class DynamicVideoController {
this.playerController.currentTime = seekSeconds; this.playerController.currentTime = seekSeconds;
if (play) { if (play) {
// use timeout to avoid race condition with other data loading this.waitAndPlay();
setTimeout(() => this.playerController.play()), 1;
} else { } else {
this.playerController.pause(); 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) { seekToTimelineItem(timeline: Timeline) {
this.playerController.pause(); this.playerController.pause();
this.seekToTimestamp(timeline.timestamp + this.annotationOffset); this.seekToTimestamp(timeline.timestamp + this.annotationOffset);