aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/plugins/vimeo.js
diff options
context:
space:
mode:
authorAlbin Larsson <mail@albinlarsson.com>2018-05-18 04:42:58 +0200
committerAlbin Larsson <mail@albinlarsson.com>2018-05-19 04:18:27 +0200
commitf8c89e3e95cb01a621f59d66c60f0fa2d76c4d58 (patch)
tree9cde5d36535cb6679ac08c601172aa8ca571fa48 /src/js/plugins/vimeo.js
parent333435a9c2ce263686052318497e604c424d38f3 (diff)
downloadplyr-f8c89e3e95cb01a621f59d66c60f0fa2d76c4d58.tar.lz
plyr-f8c89e3e95cb01a621f59d66c60f0fa2d76c4d58.tar.xz
plyr-f8c89e3e95cb01a621f59d66c60f0fa2d76c4d58.zip
Fix #876: YouTube and Vimeo autoplays on seek
Diffstat (limited to 'src/js/plugins/vimeo.js')
-rw-r--r--src/js/plugins/vimeo.js40
1 files changed, 20 insertions, 20 deletions
diff --git a/src/js/plugins/vimeo.js b/src/js/plugins/vimeo.js
index ec047c9b..46d4f3f9 100644
--- a/src/js/plugins/vimeo.js
+++ b/src/js/plugins/vimeo.js
@@ -149,25 +149,26 @@ const vimeo = {
return currentTime;
},
set(time) {
- // Get current paused state
- // Vimeo will automatically play on seek
- const { paused } = player.media;
-
- // Set seeking flag
- player.media.seeking = true;
-
- // Trigger seeking
- utils.dispatchEvent.call(player, player.media, 'seeking');
-
- // Seek after events
- player.embed.setCurrentTime(time).catch(() => {
- // Do nothing
- });
-
- // Restore pause state
- if (paused) {
- player.pause();
- }
+ // Vimeo will automatically play on seek if the video hasn't been played before
+
+ // Get current paused state and volume etc
+ const { embed, media, paused, volume } = player;
+
+ // Set seeking state and trigger event
+ media.seeking = true;
+ utils.dispatchEvent.call(player, media, 'seeking');
+
+ // If paused, mute until seek is complete
+ Promise.resolve(paused && embed.setVolume(0))
+ // Seek
+ .then(() => embed.setCurrentTime(time))
+ // Restore paused
+ .then(() => paused && embed.pause())
+ // Restore volume
+ .then(() => paused && embed.setVolume(volume))
+ .catch(() => {
+ // Do nothing
+ });
},
});
@@ -357,7 +358,6 @@ const vimeo = {
player.embed.on('seeked', () => {
player.media.seeking = false;
utils.dispatchEvent.call(player, player.media, 'seeked');
- utils.dispatchEvent.call(player, player.media, 'play');
});
player.embed.on('ended', () => {