feat: add fading to intro and outro

This commit is contained in:
MAZE 2024-01-29 19:01:36 +03:30
parent 32da26ccfc
commit 5467bbbc24
2 changed files with 23 additions and 4 deletions

View file

@ -43,9 +43,9 @@ export function Sound({
useEffect(() => {
if (isSelected && isPlaying && functional) {
sound?.play();
sound?.fadeIn();
} else {
sound?.pause();
sound?.fadeOut();
}
}, [isSelected, sound, isPlaying, functional]);

View file

@ -62,9 +62,28 @@ export function useSound(
if (sound) sound.pause();
}, [sound]);
const fadeIn = useCallback(() => {
if (sound) {
if (!sound.playing()) {
play();
sound.fade(0, options.volume || 0.5, 1000);
}
}
}, [play, sound, options.volume]);
const fadeOut = useCallback(() => {
if (sound) {
sound.fade(options.volume || 0.5, 0, 1000);
setTimeout(() => {
sound.pause();
}, 1200);
}
}, [sound, options.volume]);
const control = useMemo(
() => ({ isLoading, pause, play, stop }),
[play, stop, pause, isLoading],
() => ({ fadeIn, fadeOut, isLoading, pause, play, stop }),
[play, stop, pause, isLoading, fadeIn, fadeOut],
);
return control;