Skip to content

Commit f650d64

Browse files
committed
fix: add stopAll function to manage audio playback and reset state on unmount
1 parent cc5568a commit f650d64

3 files changed

Lines changed: 21 additions & 1 deletion

File tree

src/composables/useScriptPlayer.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,11 +695,23 @@ export function useScriptPlayer() {
695695
}
696696
}
697697

698+
const stopAll = () => {
699+
if (bgmAudio) {
700+
bgmAudio.pause()
701+
bgmAudio = null
702+
}
703+
seAudios.forEach(audio => {
704+
audio.pause()
705+
})
706+
seAudios.clear()
707+
}
708+
698709
return {
699710
state,
700711
loadScript,
701712
next,
702713
selectChoice,
703714
isLoading,
715+
stopAll,
704716
}
705717
}

src/views/PlayerView.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ onMounted(() => {
6969
})
7070
7171
onUnmounted(() => {
72+
player.stopAll()
7273
if (resizeObserver) {
7374
resizeObserver.disconnect()
7475
}

src/views/SelectorView.vue

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<div class="selector-container">
2+
<div class="selector-container" ref="containerRef">
33
<div class="header">
44
<h1>FGO Story Player</h1>
55
<div class="region-selector">
@@ -87,6 +87,13 @@ const router = useRouter()
8787
const selectedRegion = ref<RegionType>(store.region)
8888
8989
const expandedQuests = ref<Set<number>>(new Set())
90+
const containerRef = ref<HTMLElement | null>(null)
91+
92+
watch(() => store.currentWarId, () => {
93+
if (containerRef.value) {
94+
containerRef.value.scrollTop = 0
95+
}
96+
})
9097
9198
onMounted(() => {
9299
if (store.wars.length === 0) {

0 commit comments

Comments
 (0)