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 = () => {
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) => {

View File

@@ -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