impl apis: play, pause, goto
This commit is contained in:
@@ -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) => {
|
||||||
|
|||||||
@@ -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
3
typings/index.d.ts
vendored
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user