Resolve "Toggle mute in volume bar does not restore previous volume level"
This commit is contained in:
parent
dd766ac853
commit
4a9ae60120
|
@ -0,0 +1 @@
|
||||||
|
Fixed toggle mute in volume bar does not restore previous volume level (#514)
|
|
@ -86,13 +86,13 @@
|
||||||
v-bind:class="{ active : showVolume }">
|
v-bind:class="{ active : showVolume }">
|
||||||
<i
|
<i
|
||||||
:title="labels.unmute"
|
:title="labels.unmute"
|
||||||
@click="$store.commit('player/volume', 1)" v-if="volume === 0" class="volume off secondary icon"></i>
|
@click="unmute" v-if="volume === 0" class="volume off secondary icon"></i>
|
||||||
<i
|
<i
|
||||||
:title="labels.mute"
|
:title="labels.mute"
|
||||||
@click="$store.commit('player/volume', 0)" v-else-if="volume < 0.5" class="volume down secondary icon"></i>
|
@click="mute" v-else-if="volume < 0.5" class="volume down secondary icon"></i>
|
||||||
<i
|
<i
|
||||||
:title="labels.mute"
|
:title="labels.mute"
|
||||||
@click="$store.commit('player/volume', 0)" v-else class="volume up secondary icon"></i>
|
@click="mute" v-else class="volume up secondary icon"></i>
|
||||||
<input
|
<input
|
||||||
type="range"
|
type="range"
|
||||||
step="0.05"
|
step="0.05"
|
||||||
|
@ -202,6 +202,8 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions({
|
...mapActions({
|
||||||
togglePlay: 'player/togglePlay',
|
togglePlay: 'player/togglePlay',
|
||||||
|
mute: 'player/mute',
|
||||||
|
unmute: 'player/unmute',
|
||||||
clean: 'queue/clean',
|
clean: 'queue/clean',
|
||||||
updateProgress: 'player/updateProgress'
|
updateProgress: 'player/updateProgress'
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -9,6 +9,7 @@ export default {
|
||||||
errorCount: 0,
|
errorCount: 0,
|
||||||
playing: false,
|
playing: false,
|
||||||
volume: 0.5,
|
volume: 0.5,
|
||||||
|
tempVolume: 0.5,
|
||||||
duration: 0,
|
duration: 0,
|
||||||
currentTime: 0,
|
currentTime: 0,
|
||||||
errored: false,
|
errored: false,
|
||||||
|
@ -25,6 +26,12 @@ export default {
|
||||||
value = Math.max(value, 0)
|
value = Math.max(value, 0)
|
||||||
state.volume = value
|
state.volume = value
|
||||||
},
|
},
|
||||||
|
tempVolume (state, value) {
|
||||||
|
value = parseFloat(value)
|
||||||
|
value = Math.min(value, 1)
|
||||||
|
value = Math.max(value, 0)
|
||||||
|
state.tempVolume = value
|
||||||
|
},
|
||||||
incrementVolume (state, value) {
|
incrementVolume (state, value) {
|
||||||
value = parseFloat(state.volume + value)
|
value = parseFloat(state.volume + value)
|
||||||
value = Math.min(value, 1)
|
value = Math.min(value, 1)
|
||||||
|
@ -110,6 +117,13 @@ export default {
|
||||||
},
|
},
|
||||||
updateProgress ({commit}, t) {
|
updateProgress ({commit}, t) {
|
||||||
commit('currentTime', t)
|
commit('currentTime', t)
|
||||||
|
},
|
||||||
|
mute({commit, state}) {
|
||||||
|
commit('tempVolume', state.volume)
|
||||||
|
commit('volume', 0)
|
||||||
|
},
|
||||||
|
unmute({commit, state}) {
|
||||||
|
commit('volume', state.tempVolume)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -176,5 +176,24 @@ describe('store/player', () => {
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
it('mute', () => {
|
||||||
|
testAction({
|
||||||
|
action: store.actions.mute,
|
||||||
|
params: {state: { volume: 0.7, tempVolume: 0}},
|
||||||
|
expectedMutations: [
|
||||||
|
{ type: 'tempVolume', payload: 0.7 },
|
||||||
|
{ type: 'volume', payload: 0 },
|
||||||
|
]
|
||||||
|
})
|
||||||
|
})
|
||||||
|
it('unmute', () => {
|
||||||
|
testAction({
|
||||||
|
action: store.actions.unmute,
|
||||||
|
params: {state: { volume: 0, tempVolume: 0.8}},
|
||||||
|
expectedMutations: [
|
||||||
|
{ type: 'volume', payload: 0.8 },
|
||||||
|
]
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue