У меня проблема с аудиоплеером Dynami c.
Итак, у меня есть страница с музыкой c, и при нажатии на «play» в любой песне запускается функция
playSong (song) {
var payload = {
name: song,
audio: new Audio(require(`@/assets/audio/music/${this.genre}/${song}.mp3`))
};
this.$store.commit('playSong', payload);
}
Как вы можете видеть, он фиксирует мутацию в магазине:
mutations: {
playSong (state, payload) {
state.playingSong.name = payload.name;
state.playingSong.audio = payload.audio;
},
}
Затем я хочу воспроизвести эту песню, не останавливаясь на каждой странице моего приложения. Мое приложение. vue:
<template>
<div id="app">
<router-view/>
<musicPlayer v-if="playingSong.audio"/>
</div>
</template>
<script>
import {mapGetters} from 'vuex'
// Components
import musicPlayer from '@/components/musicPlayer.vue'
export default {
name: 'app',
components: {
musicPlayer
},
computed: {
...mapGetters({
playingSong: 'getPlayingSong',
})
},
}
</script>
Здесь вы можете видеть, что я импортирую компонент, который я покажу позже, и я получаю состояние воспроизведения песни:
state: {
playingSong: {
audio: null,
name: null,
},
}
После этого, если есть играющая песня, я запускаю свой компонент musicPlayer. vue '
<script>
import {mapGetters} from 'vuex'
export default {
mounted () {
this.playingSong.audio.play();
},
computed: {
...mapGetters({
playingSong: 'getPlayingSong',
})
},
}
</script>
Итак, если я нажимаю на песню, она воспроизводится, но если я изменяю путь, например от localhost: 8080 / Musi c до localhost: 8080 / Home песня перестает воспроизводиться