changeset 16 | a86126ab1dd4 |
parent 7 | cf61fcea0001 |
child 18 | be944660c56a |
15:3d4e9c994f10 | 16:a86126ab1dd4 |
---|---|
6 * using a variety of technologies (pure JavaScript, Flash, iframe) |
6 * using a variety of technologies (pure JavaScript, Flash, iframe) |
7 * |
7 * |
8 * Copyright 2010-2017, John Dyer (http://j.hn/) |
8 * Copyright 2010-2017, John Dyer (http://j.hn/) |
9 * License: MIT |
9 * License: MIT |
10 * |
10 * |
11 */(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ |
11 */(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(_dereq_,module,exports){ |
12 'use strict'; |
12 'use strict'; |
13 |
13 |
14 var VimeoApi = { |
14 var VimeoApi = { |
15 |
15 |
16 promise: null, |
16 promise: null, |
71 |
71 |
72 vimeo.options = options; |
72 vimeo.options = options; |
73 vimeo.id = mediaElement.id + '_' + options.prefix; |
73 vimeo.id = mediaElement.id + '_' + options.prefix; |
74 vimeo.mediaElement = mediaElement; |
74 vimeo.mediaElement = mediaElement; |
75 |
75 |
76 var errorHandler = function errorHandler(error, target) { |
76 var errorHandler = function errorHandler(error) { |
77 var event = mejs.Utils.createEvent('error', target); |
77 mediaElement.generateError('Code ' + error.name + ': ' + error.message, mediaFiles); |
78 event.message = error.name + ': ' + error.message; |
|
79 mediaElement.dispatchEvent(event); |
|
80 }; |
78 }; |
81 |
79 |
82 var props = mejs.html5media.properties, |
80 var props = mejs.html5media.properties, |
83 assignGettersSetters = function assignGettersSetters(propName) { |
81 assignGettersSetters = function assignGettersSetters(propName) { |
84 |
82 |
89 var value = null; |
87 var value = null; |
90 |
88 |
91 switch (propName) { |
89 switch (propName) { |
92 case 'currentTime': |
90 case 'currentTime': |
93 return currentTime; |
91 return currentTime; |
94 |
|
95 case 'duration': |
92 case 'duration': |
96 return duration; |
93 return duration; |
97 |
|
98 case 'volume': |
94 case 'volume': |
99 return volume; |
95 return volume; |
100 case 'muted': |
96 case 'muted': |
101 return volume === 0; |
97 return volume === 0; |
102 case 'paused': |
98 case 'paused': |
103 return paused; |
99 return paused; |
104 case 'ended': |
100 case 'ended': |
105 return ended; |
101 return ended; |
106 |
|
107 case 'src': |
102 case 'src': |
108 vimeoPlayer.getVideoUrl().then(function (_url) { |
103 vimeoPlayer.getVideoUrl().then(function (_url) { |
109 url = _url; |
104 url = _url; |
105 }).catch(function (error) { |
|
106 return errorHandler(error); |
|
110 }); |
107 }); |
111 |
|
112 return url; |
108 return url; |
113 case 'buffered': |
109 case 'buffered': |
114 return { |
110 return { |
115 start: function start() { |
111 start: function start() { |
116 return 0; |
112 return 0; |
139 vimeoPlayer.loadVideo(videoId).then(function () { |
135 vimeoPlayer.loadVideo(videoId).then(function () { |
140 if (mediaElement.originalNode.autoplay) { |
136 if (mediaElement.originalNode.autoplay) { |
141 vimeoPlayer.play(); |
137 vimeoPlayer.play(); |
142 } |
138 } |
143 }).catch(function (error) { |
139 }).catch(function (error) { |
144 errorHandler(error, vimeo); |
140 return errorHandler(error); |
145 }); |
141 }); |
146 break; |
142 break; |
147 case 'currentTime': |
143 case 'currentTime': |
148 vimeoPlayer.setCurrentTime(value).then(function () { |
144 vimeoPlayer.setCurrentTime(value).then(function () { |
149 currentTime = value; |
145 currentTime = value; |
150 setTimeout(function () { |
146 setTimeout(function () { |
151 var event = mejs.Utils.createEvent('timeupdate', vimeo); |
147 var event = mejs.Utils.createEvent('timeupdate', vimeo); |
152 mediaElement.dispatchEvent(event); |
148 mediaElement.dispatchEvent(event); |
153 }, 50); |
149 }, 50); |
154 }).catch(function (error) { |
150 }).catch(function (error) { |
155 errorHandler(error, vimeo); |
151 return errorHandler(error); |
156 }); |
152 }); |
157 break; |
153 break; |
158 case 'volume': |
154 case 'volume': |
159 vimeoPlayer.setVolume(value).then(function () { |
155 vimeoPlayer.setVolume(value).then(function () { |
160 volume = value; |
156 volume = value; |
162 setTimeout(function () { |
158 setTimeout(function () { |
163 var event = mejs.Utils.createEvent('volumechange', vimeo); |
159 var event = mejs.Utils.createEvent('volumechange', vimeo); |
164 mediaElement.dispatchEvent(event); |
160 mediaElement.dispatchEvent(event); |
165 }, 50); |
161 }, 50); |
166 }).catch(function (error) { |
162 }).catch(function (error) { |
167 errorHandler(error, vimeo); |
163 return errorHandler(error); |
168 }); |
164 }); |
169 break; |
165 break; |
170 case 'loop': |
166 case 'loop': |
171 vimeoPlayer.setLoop(value).catch(function (error) { |
167 vimeoPlayer.setLoop(value).catch(function (error) { |
172 errorHandler(error, vimeo); |
168 return errorHandler(error); |
173 }); |
169 }); |
174 break; |
170 break; |
175 case 'muted': |
171 case 'muted': |
176 if (value) { |
172 if (value) { |
177 vimeoPlayer.setVolume(0).then(function () { |
173 vimeoPlayer.setVolume(0).then(function () { |
179 setTimeout(function () { |
175 setTimeout(function () { |
180 var event = mejs.Utils.createEvent('volumechange', vimeo); |
176 var event = mejs.Utils.createEvent('volumechange', vimeo); |
181 mediaElement.dispatchEvent(event); |
177 mediaElement.dispatchEvent(event); |
182 }, 50); |
178 }, 50); |
183 }).catch(function (error) { |
179 }).catch(function (error) { |
184 errorHandler(error, vimeo); |
180 return errorHandler(error); |
185 }); |
181 }); |
186 } else { |
182 } else { |
187 vimeoPlayer.setVolume(oldVolume).then(function () { |
183 vimeoPlayer.setVolume(oldVolume).then(function () { |
188 volume = oldVolume; |
184 volume = oldVolume; |
189 setTimeout(function () { |
185 setTimeout(function () { |
190 var event = mejs.Utils.createEvent('volumechange', vimeo); |
186 var event = mejs.Utils.createEvent('volumechange', vimeo); |
191 mediaElement.dispatchEvent(event); |
187 mediaElement.dispatchEvent(event); |
192 }, 50); |
188 }, 50); |
193 }).catch(function (error) { |
189 }).catch(function (error) { |
194 errorHandler(error, vimeo); |
190 return errorHandler(error); |
195 }); |
191 }); |
196 } |
192 } |
197 break; |
193 break; |
198 case 'readyState': |
194 case 'readyState': |
199 var event = mejs.Utils.createEvent('canplay', vimeo); |
195 var event = mejs.Utils.createEvent('canplay', vimeo); |
307 } |
303 } |
308 |
304 |
309 var event = mejs.Utils.createEvent('progress', vimeo); |
305 var event = mejs.Utils.createEvent('progress', vimeo); |
310 mediaElement.dispatchEvent(event); |
306 mediaElement.dispatchEvent(event); |
311 }).catch(function (error) { |
307 }).catch(function (error) { |
312 errorHandler(error, vimeo); |
308 return errorHandler(error); |
313 }); |
309 }); |
314 }); |
310 }); |
315 vimeoPlayer.on('timeupdate', function () { |
311 vimeoPlayer.on('timeupdate', function () { |
316 vimeoPlayer.getCurrentTime().then(function (seconds) { |
312 vimeoPlayer.getCurrentTime().then(function (seconds) { |
317 currentTime = seconds; |
313 currentTime = seconds; |
318 |
|
319 var event = mejs.Utils.createEvent('timeupdate', vimeo); |
314 var event = mejs.Utils.createEvent('timeupdate', vimeo); |
320 mediaElement.dispatchEvent(event); |
315 mediaElement.dispatchEvent(event); |
321 }).catch(function (error) { |
316 }).catch(function (error) { |
322 errorHandler(error, vimeo); |
317 return errorHandler(error); |
323 }); |
318 }); |
324 }); |
319 }); |
325 vimeoPlayer.on('play', function () { |
320 vimeoPlayer.on('play', function () { |
326 paused = false; |
321 paused = false; |
327 ended = false; |
322 ended = false; |
358 width = mediaElement.originalNode.width, |
353 width = mediaElement.originalNode.width, |
359 vimeoContainer = document.createElement('iframe'), |
354 vimeoContainer = document.createElement('iframe'), |
360 standardUrl = 'https://player.vimeo.com/video/' + VimeoApi.getVimeoId(mediaFiles[0].src); |
355 standardUrl = 'https://player.vimeo.com/video/' + VimeoApi.getVimeoId(mediaFiles[0].src); |
361 |
356 |
362 var queryArgs = ~mediaFiles[0].src.indexOf('?') ? '?' + mediaFiles[0].src.slice(mediaFiles[0].src.indexOf('?') + 1) : ''; |
357 var queryArgs = ~mediaFiles[0].src.indexOf('?') ? '?' + mediaFiles[0].src.slice(mediaFiles[0].src.indexOf('?') + 1) : ''; |
363 if (queryArgs && mediaElement.originalNode.autoplay && queryArgs.indexOf('autoplay') === -1) { |
358 var args = []; |
364 queryArgs += '&autoplay=1'; |
359 |
365 } |
360 if (mediaElement.originalNode.autoplay && queryArgs.indexOf('autoplay') === -1) { |
366 if (queryArgs && mediaElement.originalNode.loop && queryArgs.indexOf('loop') === -1) { |
361 args.push('autoplay=1'); |
367 queryArgs += '&loop=1'; |
362 } |
368 } |
363 if (mediaElement.originalNode.loop && queryArgs.indexOf('loop') === -1) { |
364 args.push('loop=1'); |
|
365 } |
|
366 |
|
367 queryArgs = '' + queryArgs + (queryArgs ? '&' : '?') + args.join('&'); |
|
369 |
368 |
370 vimeoContainer.setAttribute('id', vimeo.id); |
369 vimeoContainer.setAttribute('id', vimeo.id); |
371 vimeoContainer.setAttribute('width', width); |
370 vimeoContainer.setAttribute('width', width); |
372 vimeoContainer.setAttribute('height', height); |
371 vimeoContainer.setAttribute('height', height); |
373 vimeoContainer.setAttribute('frameBorder', '0'); |
372 vimeoContainer.setAttribute('frameBorder', '0'); |
374 vimeoContainer.setAttribute('src', '' + standardUrl + queryArgs); |
373 vimeoContainer.setAttribute('src', '' + standardUrl + queryArgs); |
375 vimeoContainer.setAttribute('webkitallowfullscreen', ''); |
374 vimeoContainer.setAttribute('webkitallowfullscreen', 'true'); |
376 vimeoContainer.setAttribute('mozallowfullscreen', ''); |
375 vimeoContainer.setAttribute('mozallowfullscreen', 'true'); |
377 vimeoContainer.setAttribute('allowfullscreen', ''); |
376 vimeoContainer.setAttribute('allowfullscreen', 'true'); |
377 vimeoContainer.setAttribute('allow', 'autoplay'); |
|
378 |
378 |
379 mediaElement.originalNode.parentNode.insertBefore(vimeoContainer, mediaElement.originalNode); |
379 mediaElement.originalNode.parentNode.insertBefore(vimeoContainer, mediaElement.originalNode); |
380 mediaElement.originalNode.style.display = 'none'; |
380 mediaElement.originalNode.style.display = 'none'; |
381 |
381 |
382 VimeoApi.load({ |
382 VimeoApi.load({ |