Fix playback rate state notification until it actuall finishes

processing the change
This commit is contained in:
Travis Shivers 2020-07-20 17:43:55 -05:00
parent ef525b4d85
commit 311f328b00
No known key found for this signature in database
GPG Key ID: EE4CC2891B8FCD33
1 changed files with 10 additions and 4 deletions

View File

@ -154,6 +154,11 @@ export default {
setCurrentTimeMs(seekToMs); setCurrentTimeMs(seekToMs);
}, },
PROCESS_STATE_UPDATE_ON_PLAYBACK_RATE_CHANGE: async ({ dispatch }, signal) => {
await waitForMediaElementEvent({ signal, type: 'ratechange' });
await dispatch('synclounge/PROCESS_PLAYER_STATE_UPDATE', true, { root: true });
},
SPEED_SEEK: async ({ dispatch, rootGetters }, { cancelSignal, seekToMs }) => { SPEED_SEEK: async ({ dispatch, rootGetters }, { cancelSignal, seekToMs }) => {
console.log('speed seek'); console.log('speed seek');
const currentTimeMs = await dispatch('FETCH_PLAYER_CURRENT_TIME_MS_OR_FALLBACK'); const currentTimeMs = await dispatch('FETCH_PLAYER_CURRENT_TIME_MS_OR_FALLBACK');
@ -164,14 +169,15 @@ export default {
const main = CAF(function* main(signal) { const main = CAF(function* main(signal) {
setPlaybackRate(rate); setPlaybackRate(rate);
try { try {
// Nosync process // Nosync process. Purposefully not awaited
dispatch('synclounge/PROCESS_PLAYER_STATE_UPDATE', true, { root: true }); dispatch('PROCESS_STATE_UPDATE_ON_PLAYBACK_RATE_CHANGE', signal);
yield CAF.delay(signal, timeUntilSynced); yield CAF.delay(signal, timeUntilSynced);
} finally { } finally {
setPlaybackRate(1); setPlaybackRate(1);
// Nosync process // Nosync process. Purposefully not awaited
dispatch('synclounge/PROCESS_PLAYER_STATE_UPDATE', true, { root: true }); dispatch('PROCESS_STATE_UPDATE_ON_PLAYBACK_RATE_CHANGE', signal);
} }
}); });