62 lines
1.3 KiB
JavaScript
62 lines
1.3 KiB
JavaScript
import Vue from 'vue'
|
|
import Vuex from 'vuex'
|
|
Vue.use(Vuex)
|
|
|
|
export default new Vuex.Store({
|
|
state: {
|
|
player: {
|
|
isPlaying: false,
|
|
isBuffering: false,
|
|
volume: 0,
|
|
isMute: false,
|
|
oldVolume: 0,
|
|
},
|
|
},
|
|
mutations: {
|
|
isPlaying(state, playerState) {
|
|
state.player.isPlaying = playerState
|
|
},
|
|
isBuffering(state, bufferingState) {
|
|
state.player.isBuffering = bufferingState
|
|
},
|
|
changeVolume(state, volume) {
|
|
state.player.volume = volume
|
|
},
|
|
toggleMute(state) {
|
|
if (state.player.isMute) {
|
|
state.player.volume = state.player.oldVolume
|
|
state.player.isMute = false
|
|
} else {
|
|
state.player.oldVolume = state.player.volume
|
|
state.player.volume = 0
|
|
state.player.isMute = true
|
|
}
|
|
},
|
|
togglePlay(state) {
|
|
console.log('toggle play')
|
|
if (state.player.isPlaying) {
|
|
state.player.isPlaying = false
|
|
} else {
|
|
state.player.isPlaying = true
|
|
}
|
|
},
|
|
},
|
|
actions: {
|
|
isPlaying(context, playerState) {
|
|
context.commit('isPlaying', playerState)
|
|
},
|
|
isBuffering(context, bufferingState) {
|
|
context.commit('isBuffering', bufferingState)
|
|
},
|
|
changeVolume(context, volume) {
|
|
context.commit('changeVolume', volume)
|
|
},
|
|
toggleMute(context) {
|
|
context.commit('toggleMute')
|
|
},
|
|
togglePlay(context) {
|
|
context.commit('togglePlay')
|
|
},
|
|
},
|
|
})
|