aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/plugins/vimeo.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/plugins/vimeo.js')
-rw-r--r--src/js/plugins/vimeo.js35
1 files changed, 29 insertions, 6 deletions
diff --git a/src/js/plugins/vimeo.js b/src/js/plugins/vimeo.js
index 24003d3f..0ceb89e5 100644
--- a/src/js/plugins/vimeo.js
+++ b/src/js/plugins/vimeo.js
@@ -2,10 +2,10 @@
// Vimeo plugin
// ==========================================================================
-import utils from './../utils';
import captions from './../captions';
import controls from './../controls';
import ui from './../ui';
+import utils from './../utils';
const vimeo = {
setup() {
@@ -18,7 +18,7 @@ const vimeo = {
// Load the API if not already
if (!utils.is.object(window.Vimeo)) {
utils
- .loadScript(this.config.urls.vimeo.api)
+ .loadScript(this.config.urls.vimeo.sdk)
.then(() => {
vimeo.ready.call(this);
})
@@ -53,6 +53,7 @@ const vimeo = {
const options = {
loop: player.config.loop.active,
autoplay: player.autoplay,
+ // muted: player.muted,
byline: false,
portrait: false,
title: false,
@@ -68,27 +69,49 @@ const vimeo = {
// Get from <div> if needed
if (utils.is.empty(source)) {
- source = player.media.getAttribute(this.config.attributes.embed.id);
+ source = player.media.getAttribute(player.config.attributes.embed.id);
}
const id = utils.parseVimeoId(source);
// Build an iframe
const iframe = utils.createElement('iframe');
- const src = `https://player.vimeo.com/video/${id}?${params}`;
+ const src = utils.format(player.config.urls.vimeo.iframe, id, params);
iframe.setAttribute('src', src);
iframe.setAttribute('allowfullscreen', '');
iframe.setAttribute('allowtransparency', '');
iframe.setAttribute('allow', 'autoplay');
// Inject the package
- const wrapper = utils.createElement('div');
+ const wrapper = utils.createElement('div', { class: player.config.classNames.embedContainer });
wrapper.appendChild(iframe);
player.media = utils.replaceElement(wrapper, player.media);
+ // Get poster image
+ utils.fetch(utils.format(player.config.urls.vimeo.api, id), 'json').then(response => {
+ if (utils.is.empty(response)) {
+ return;
+ }
+
+ // Get the URL for thumbnail
+ const url = new URL(response[0].thumbnail_large);
+
+ // Get original image
+ url.pathname = `${url.pathname.split('_')[0]}.jpg`;
+
+ // Set attribute
+ player.media.setAttribute('poster', url.href);
+
+ // Update
+ ui.setPoster.call(player);
+ });
+
// Setup instance
// https://github.com/vimeo/player.js
- player.embed = new window.Vimeo.Player(iframe);
+ player.embed = new window.Vimeo.Player(iframe, {
+ autopause: player.config.autopause,
+ muted: player.muted,
+ });
player.media.paused = true;
player.media.currentTime = 0;