diff --git a/src/Controller.svelte b/src/Controller.svelte index 38292dfc..e7e430e0 100644 --- a/src/Controller.svelte +++ b/src/Controller.svelte @@ -141,13 +141,14 @@ replayer.pause(); }; - export const goto = (timeOffset: number) => { + export const goto = (timeOffset: number, play?: boolean) => { currentTime = timeOffset; - const isPlaying = playerState === 'playing'; - replayer.pause(); - replayer.play(timeOffset); - if (!isPlaying) { - replayer.pause(); + const resumePlaying = + typeof play === 'boolean' ? play : playerState === 'playing'; + if (resumePlaying) { + replayer.play(timeOffset); + } else { + replayer.pause(timeOffset); } }; diff --git a/src/Player.svelte b/src/Player.svelte index 741d42a2..1d5583c9 100644 --- a/src/Player.svelte +++ b/src/Player.svelte @@ -110,8 +110,8 @@ export const pause = () => { controller.pause(); }; - export const goto = (timeOffset: number) => { - controller.goto(timeOffset); + export const goto = (timeOffset: number, play?: boolean) => { + controller.goto(timeOffset, play); }; onMount(() => { diff --git a/typings/index.d.ts b/typings/index.d.ts index 6268e7bb..74124481 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -32,5 +32,5 @@ export default class rrwebPlayer extends SvelteComponent { triggerResize: () => void; play: () => void; pause: () => void; - goto: (timeOffset: number) => void; + goto: (timeOffset: number, play?: boolean) => void; }