diff options
Diffstat (limited to 'src/js/plugins/vimeo.js')
-rw-r--r-- | src/js/plugins/vimeo.js | 35 |
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; |