diff options
author | Albin Larsson <mail@albinlarsson.com> | 2018-05-18 00:34:59 +0200 |
---|---|---|
committer | Albin Larsson <mail@albinlarsson.com> | 2018-05-19 04:18:27 +0200 |
commit | 333435a9c2ce263686052318497e604c424d38f3 (patch) | |
tree | f02a8d8803b704185706f4347cf287a7f933cdbc /src/js/plugins/vimeo.js | |
parent | 3ab2295fe7f77766d85c76fdefa3ecd8e10dd165 (diff) | |
download | plyr-333435a9c2ce263686052318497e604c424d38f3.tar.lz plyr-333435a9c2ce263686052318497e604c424d38f3.tar.xz plyr-333435a9c2ce263686052318497e604c424d38f3.zip |
Fix playback state (paused) and events (play/pause)
Diffstat (limited to 'src/js/plugins/vimeo.js')
-rw-r--r-- | src/js/plugins/vimeo.js | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/js/plugins/vimeo.js b/src/js/plugins/vimeo.js index 96b36781..ec047c9b 100644 --- a/src/js/plugins/vimeo.js +++ b/src/js/plugins/vimeo.js @@ -7,6 +7,14 @@ import controls from './../controls'; import ui from './../ui'; import utils from './../utils'; +// Set playback state and trigger change (only on actual change) +function assurePlaybackState(play) { + if (this.media.paused === play) { + this.media.paused = !play; + utils.dispatchEvent.call(this, this.media, play ? 'play' : 'pause'); + } +} + const vimeo = { setup() { // Add embed class for responsive @@ -120,15 +128,13 @@ const vimeo = { // Create a faux HTML5 API using the Vimeo API player.media.play = () => { - player.embed.play().then(() => { - player.media.paused = false; - }); + assurePlaybackState.call(player, true); + return player.embed.play(); }; player.media.pause = () => { - player.embed.pause().then(() => { - player.media.paused = true; - }); + assurePlaybackState.call(player, false); + return player.embed.pause(); }; player.media.stop = () => { @@ -315,17 +321,12 @@ const vimeo = { }); player.embed.on('play', () => { - // Only fire play if paused before - if (player.media.paused) { - utils.dispatchEvent.call(player, player.media, 'play'); - } - player.media.paused = false; + assurePlaybackState.call(player, true); utils.dispatchEvent.call(player, player.media, 'playing'); }); player.embed.on('pause', () => { - player.media.paused = true; - utils.dispatchEvent.call(player, player.media, 'pause'); + assurePlaybackState.call(player, false); }); player.embed.on('timeupdate', data => { |