🐞 fix(Audio): 修复搜索跳转时 音乐一直播放暂停

This commit is contained in:
alger
2023-12-21 18:09:12 +08:00
parent a77afb57fd
commit be83a79b05
2 changed files with 16 additions and 5 deletions
+9
View File
@@ -1,5 +1,6 @@
<template> <template>
<div class="app"> <div class="app">
<audio id="MusicAudio" ref="audioRef" :src="playMusicUrl" :autoplay="play"></audio>
<n-config-provider :theme="darkTheme"> <n-config-provider :theme="darkTheme">
<n-dialog-provider> <n-dialog-provider>
<router-view></router-view> <router-view></router-view>
@@ -10,7 +11,15 @@
<script lang="ts" setup> <script lang="ts" setup>
import { darkTheme } from 'naive-ui' import { darkTheme } from 'naive-ui'
import { ref, computed } from 'vue'
import { useStore } from 'vuex'
const audio = ref<HTMLAudioElement | null>(null)
const store = useStore()
const playMusicUrl = computed(() => store.state.playMusicUrl as string)
// 是否播放
const play = computed(() => store.state.play as boolean)
</script> </script>
+7 -5
View File
@@ -1,6 +1,6 @@
<template> <template>
<!-- 展开全屏 --> <!-- 展开全屏 -->
<music-full ref="MusicFullRef" v-model:musicFull="musicFull" :audio="(audio as HTMLAudioElement)" /> <music-full ref="MusicFullRef" v-model:musicFull="musicFull" :audio="(audio.value as HTMLAudioElement)" />
<!-- 底部播放栏 --> <!-- 底部播放栏 -->
<div class="music-play-bar" :class="setAnimationClass('animate__bounceInUp')"> <div class="music-play-bar" :class="setAnimationClass('animate__bounceInUp')">
<n-image <n-image
@@ -76,7 +76,7 @@
</n-tooltip> </n-tooltip>
</div> </div>
<!-- 播放音乐 --> <!-- 播放音乐 -->
<audio ref="audio" :src="playMusicUrl" :autoplay="play"></audio>
</div> </div>
</template> </template>
@@ -99,8 +99,11 @@ const store = useStore()
const playMusic = computed(() => store.state.playMusic as SongResult) const playMusic = computed(() => store.state.playMusic as SongResult)
// 是否播放 // 是否播放
const play = computed(() => store.state.play as boolean) const play = computed(() => store.state.play as boolean)
// 播放链接
const playMusicUrl = computed(() => store.state.playMusicUrl as string) const audio = {
value: document.querySelector('#MusicAudio') as HTMLAudioElement
}
watch( watch(
() => store.state.playMusicUrl, () => store.state.playMusicUrl,
() => { () => {
@@ -142,7 +145,6 @@ onMounted(() => {
} }
}) })
const audio = ref<HTMLAudioElement | null>(null)
const audioPlay = () => { const audioPlay = () => {