반응형
루트를 바꾸면 노래가 안 나와요.다이내믹 오디오 만드는 법
다이내믹 오디오 플레이어에 문제가 있습니다.
그래서 음악이 있는 페이지가 있고 아무 노래나 '재생'을 클릭하면 기능이 실행됩니다.
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>
여기서 컴포넌트를 Import하면 나중에 보여드리고 재생 상태를 확인할 수 있습니다.
state: {
playingSong: {
audio: null,
name: null,
},
}
그 후 연주곡이 있으면 컴포넌트 '뮤직플레이어'를 실행합니다.뷰'
<script>
import {mapGetters} from 'vuex'
export default {
mounted () {
this.playingSong.audio.play();
},
computed: {
...mapGetters({
playingSong: 'getPlayingSong',
})
},
}
</script>
따라서 곡을 클릭하면 재생이 중지되지만 예를 들어 'localhost:8080/Music'에서 'localhost:8080/Home'으로 경로를 변경하면 재생이 중지됩니다.
이용해야 합니다.
<router-link to="/Page"></router-link>
대신
<a href="/Page"></a>
그게 문제예요:)
라우터 링크 상세
언급URL : https://stackoverflow.com/questions/62062444/when-i-change-the-route-a-song-stops-playing-how-to-make-dynamic-audio
반응형
'programing' 카테고리의 다른 글
정적 함수 내에서 $this를 사용하면 실패함 (0) | 2022.10.22 |
---|---|
mariadb가 WSREP를 시작할 수 없음: std:: bad_alloc (0) | 2022.10.22 |
C에서 int64_t 타입을 인쇄하는 방법 (0) | 2022.10.22 |
Eclipse에서 maven 저장소를 업데이트하려면 어떻게 해야 합니까? (0) | 2022.10.22 |
vuejs 2에서 구성 요소의 내부 html을 변수로 가져옵니다. (0) | 2022.10.22 |