diff --git a/directory/Version b/directory/Version index aa0ea79..5767123 100644 --- a/directory/Version +++ b/directory/Version @@ -1 +1 @@ -0.5.29 \ No newline at end of file +0.5.30 \ No newline at end of file diff --git a/directory/src/libs/voice.jsx b/directory/src/libs/voice.jsx index dbe0152..e6cbf42 100644 --- a/directory/src/libs/voice.jsx +++ b/directory/src/libs/voice.jsx @@ -51,11 +51,15 @@ export default function useAudio() { }, []) const getSrc = useCallback(() => audioEl.src, []) + const resetSrc = useCallback(() => { + audioEl.src = '' + }, []) return { play, stop, getSrc, + resetSrc, isPlaying, isPlayingRef, } diff --git a/directory/src/routes/path/home.jsx b/directory/src/routes/path/home.jsx index 42f2a67..9d210be 100644 --- a/directory/src/routes/path/home.jsx +++ b/directory/src/routes/path/home.jsx @@ -88,13 +88,20 @@ export default function Home() { function OperatorElement({ item, hidden }) { const { textDefaultLang, language, alternateLang } = useLanguage() - const { play } = useAudio() + const { play, stop, resetSrc } = useAudio() const [voiceOn] = useAtom(voiceOnAtom) const playVoice = useCallback(() => { if (!voiceOn) return play(`/${item.link}/assets/${JSON.parse(import.meta.env.VITE_VOICE_FOLDERS).main}/${import.meta.env.VITE_APP_VOICE_URL}`) - }, [play, item.link, voiceOn]) + }, [voiceOn, play, item.link]) + + useEffect(() => { + if (!voiceOn) { + stop() + resetSrc() + } + }, [voiceOn, stop, resetSrc]) return useMemo(() => { return ( diff --git a/directory/src/routes/path/operator.jsx b/directory/src/routes/path/operator.jsx index 4edb68b..a33f879 100644 --- a/directory/src/routes/path/operator.jsx +++ b/directory/src/routes/path/operator.jsx @@ -91,6 +91,10 @@ export default function Operator() { stop() }, [setExtraArea, stop]) + useEffect(() => { + if (!voiceLang) stop() + }, [stop, voiceLang]) + useEffect(() => { if (backgrounds) setCurrentBackground(backgrounds[0]) }, [backgrounds])