From 3b832595fed316f16f1aa577af525e8500a29d69 Mon Sep 17 00:00:00 2001 From: Mathias Rasmussen Date: Fri, 10 Jun 2016 04:51:14 +0200 Subject: [PATCH] handle play/pause when window is hidden using `webkitvisibilitychange` event --- renderer/main.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/renderer/main.js b/renderer/main.js index 04ce25bc..36ef4777 100644 --- a/renderer/main.js +++ b/renderer/main.js @@ -91,6 +91,9 @@ function onState (err, _state) { window.addEventListener('focus', onFocus) window.addEventListener('blur', onBlur) + // ...window visibility state. + document.addEventListener('webkitvisibilitychange', onVisibilityChange) + sound.play('STARTUP') // Done! Ideally we want to get here < 500ms after the user clicks the app @@ -360,6 +363,9 @@ function playPause () { } else { pause() } + // force rerendering if window is hidden, + // in order to bypass `raf` and play/pause media immediately + if (!state.window.isVisible) render(state) } function jumpToTime (time) { @@ -1296,3 +1302,7 @@ function onBlur () { state.window.isFocused = false update() } + +function onVisibilityChange () { + state.window.isVisible = !document.webkitHidden +}