Когда я меняю маршрут, песня перестает играть. Как сделать динамик c аудио? - PullRequest
1 голос
/ 28 мая 2020

У меня проблема с аудиоплеером 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 песня перестает воспроизводиться

1 Ответ

1 голос
/ 28 мая 2020

Мы должны использовать

<router-link to="/Page"></router-link>

вместо

<a href="/Page"></a>

И в этом вся проблема :)

Подробнее о router-link

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...