impl apis: play, pause, goto
This commit is contained in:
@@ -112,21 +112,45 @@
|
||||
export const toggle = () => {
|
||||
switch (playerState) {
|
||||
case 'playing':
|
||||
replayer.pause();
|
||||
pause();
|
||||
break;
|
||||
case 'paused':
|
||||
if (finished) {
|
||||
replayer.play();
|
||||
finished = false;
|
||||
} else {
|
||||
replayer.play(currentTime);
|
||||
}
|
||||
play();
|
||||
break;
|
||||
default:
|
||||
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) => {
|
||||
if (speedState === 'skipping') {
|
||||
return;
|
||||
@@ -140,13 +164,7 @@
|
||||
percent = 1;
|
||||
}
|
||||
const timeOffset = meta.totalTime * percent;
|
||||
currentTime = timeOffset;
|
||||
const isPlaying = playerState === 'playing';
|
||||
replayer.pause();
|
||||
replayer.play(timeOffset);
|
||||
if (!isPlaying) {
|
||||
replayer.pause();
|
||||
}
|
||||
goto(timeOffset);
|
||||
};
|
||||
|
||||
export const setSpeed = (newSpeed: number) => {
|
||||
|
||||
@@ -99,6 +99,15 @@
|
||||
export const toggleSkipInactive = () => {
|
||||
controller.toggleSkipInactive();
|
||||
};
|
||||
export const play = () => {
|
||||
controller.play();
|
||||
};
|
||||
export const pause = () => {
|
||||
controller.pause();
|
||||
};
|
||||
export const goto = (timeOffset: number) => {
|
||||
controller.goto(timeOffset);
|
||||
};
|
||||
|
||||
onMount(() => {
|
||||
// runtime type check
|
||||
|
||||
3
typings/index.d.ts
vendored
3
typings/index.d.ts
vendored
@@ -29,4 +29,7 @@ export default class rrwebPlayer {
|
||||
toggle: () => void;
|
||||
setSpeed: (speed: number) => void;
|
||||
toggleSkipInactive: () => void;
|
||||
play: () => void;
|
||||
pause: () => void;
|
||||
goto: (timeOffset: number) => void;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user