Создание аудиоплеера APlayer в Vue, манипулирование списком воспроизведения перерисовывает компонент, начиная воспроизведение заново - как я могу обойти это?

У меня есть компонент игрока:

<template>
  <div class="player-wrapper">
    <player :music="playlist" ref="player"></player>
  </div>
</template>

<script>
import VueAPlyer from "vue-aplayer"

export default {
  components: {
    player: VueAPlyer
  },
  computed: {
    playlist() {
      return this.$store.state.playlist
    }
  }
}
</script>

<style>
</style>

И действие по добавлению песни:

ADD_SONG (state) {
    state.playlist.push(
      {
        title: 'Preparation2',
        author: 'Hans Zimmer/Richard Harvey',
        url: 'http://devtest.qiniudn.com/Preparation.mp3',
        pic: 'http://devtest.qiniudn.com/Preparation.jpg'
      }
    )
  }

Проблема заключается в том, что, когда я помещаю новую песню в список воспроизведения, компонент проигрывателя пересчитывает список воспроизведения и запускается заново.

Наличие такого объекта плейлиста кажется естественным для использования, но я не могу придумать способ предотвратить эту перезагрузку, кроме того, чтобы сам проигрыватель "наблюдал" за изменениями в плейлисте, а затем изначально приказал APlayer добавить песню в плейлист (который, я предполагаю, не будет воспроизводить аудио компонент) - который кажется очень тяжелым. Я упускаю очевидное решение?

0 ответов

Другие вопросы по тегам