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);
},
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 }) => {
console.log('speed seek');
const currentTimeMs = await dispatch('FETCH_PLAYER_CURRENT_TIME_MS_OR_FALLBACK');
@ -164,14 +169,15 @@ export default {
const main = CAF(function* main(signal) {
setPlaybackRate(rate);
try {
// Nosync process
dispatch('synclounge/PROCESS_PLAYER_STATE_UPDATE', true, { root: true });
// Nosync process. Purposefully not awaited
dispatch('PROCESS_STATE_UPDATE_ON_PLAYBACK_RATE_CHANGE', signal);
yield CAF.delay(signal, timeUntilSynced);
} finally {
setPlaybackRate(1);
// Nosync process
dispatch('synclounge/PROCESS_PLAYER_STATE_UPDATE', true, { root: true });
// Nosync process. Purposefully not awaited
dispatch('PROCESS_STATE_UPDATE_ON_PLAYBACK_RATE_CHANGE', signal);
}
});