impl apis: play, pause, goto

This commit is contained in:
Yanzhen Yu
2020-09-08 15:09:06 +08:00
parent 4c0cbfaf6a
commit 5a1d8b30b0
3 changed files with 44 additions and 14 deletions

View File

@@ -112,21 +112,45 @@
export const toggle = () => { export const toggle = () => {
switch (playerState) { switch (playerState) {
case 'playing': case 'playing':
replayer.pause(); pause();
break; break;
case 'paused': case 'paused':
if (finished) { play();
replayer.play();
finished = false;
} else {
replayer.play(currentTime);
}
break; break;
default: default:
break; break;
} }
}; };
export const play = () => {
if (playerState !== 'paused') {
return;
}
if (finished) {
replayer.play();
finished = false;
} else {
replayer.play(currentTime);
}
};
export const pause = () => {
if (playerState !== 'playing') {
return;
}
replayer.pause();
};
export const goto = (timeOffset: number) => {
currentTime = timeOffset;
const isPlaying = playerState === 'playing';
replayer.pause();
replayer.play(timeOffset);
if (!isPlaying) {
replayer.pause();
}
};
const handleProgressClick = (event: MouseEvent) => { const handleProgressClick = (event: MouseEvent) => {
if (speedState === 'skipping') { if (speedState === 'skipping') {
return; return;
@@ -140,13 +164,7 @@
percent = 1; percent = 1;
} }
const timeOffset = meta.totalTime * percent; const timeOffset = meta.totalTime * percent;
currentTime = timeOffset; goto(timeOffset);
const isPlaying = playerState === 'playing';
replayer.pause();
replayer.play(timeOffset);
if (!isPlaying) {
replayer.pause();
}
}; };
export const setSpeed = (newSpeed: number) => { export const setSpeed = (newSpeed: number) => {

View File

@@ -99,6 +99,15 @@
export const toggleSkipInactive = () => { export const toggleSkipInactive = () => {
controller.toggleSkipInactive(); controller.toggleSkipInactive();
}; };
export const play = () => {
controller.play();
};
export const pause = () => {
controller.pause();
};
export const goto = (timeOffset: number) => {
controller.goto(timeOffset);
};
onMount(() => { onMount(() => {
// runtime type check // runtime type check

3
typings/index.d.ts vendored
View File

@@ -29,4 +29,7 @@ export default class rrwebPlayer {
toggle: () => void; toggle: () => void;
setSpeed: (speed: number) => void; setSpeed: (speed: number) => void;
toggleSkipInactive: () => void; toggleSkipInactive: () => void;
play: () => void;
pause: () => void;
goto: (timeOffset: number) => void;
} }