|
1 /*! |
|
2 * MediaElement.js |
|
3 * http://www.mediaelementjs.com/ |
|
4 * |
|
5 * Wrapper that mimics native HTML5 MediaElement (audio and video) |
|
6 * using a variety of technologies (pure JavaScript, Flash, iframe) |
|
7 * |
|
8 * Copyright 2010-2017, John Dyer (http://j.hn/) |
|
9 * License: MIT |
|
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){ |
|
12 |
|
13 },{}],2:[function(_dereq_,module,exports){ |
|
14 (function (global){ |
|
15 var topLevel = typeof global !== 'undefined' ? global : |
|
16 typeof window !== 'undefined' ? window : {} |
|
17 var minDoc = _dereq_(1); |
|
18 |
|
19 var doccy; |
|
20 |
|
21 if (typeof document !== 'undefined') { |
|
22 doccy = document; |
|
23 } else { |
|
24 doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4']; |
|
25 |
|
26 if (!doccy) { |
|
27 doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc; |
|
28 } |
|
29 } |
|
30 |
|
31 module.exports = doccy; |
|
32 |
|
33 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) |
|
34 },{"1":1}],3:[function(_dereq_,module,exports){ |
|
35 (function (global){ |
|
36 var win; |
|
37 |
|
38 if (typeof window !== "undefined") { |
|
39 win = window; |
|
40 } else if (typeof global !== "undefined") { |
|
41 win = global; |
|
42 } else if (typeof self !== "undefined"){ |
|
43 win = self; |
|
44 } else { |
|
45 win = {}; |
|
46 } |
|
47 |
|
48 module.exports = win; |
|
49 |
|
50 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) |
|
51 },{}],4:[function(_dereq_,module,exports){ |
|
52 (function (root) { |
|
53 |
|
54 // Store setTimeout reference so promise-polyfill will be unaffected by |
|
55 // other code modifying setTimeout (like sinon.useFakeTimers()) |
|
56 var setTimeoutFunc = setTimeout; |
|
57 |
|
58 function noop() {} |
|
59 |
|
60 // Polyfill for Function.prototype.bind |
|
61 function bind(fn, thisArg) { |
|
62 return function () { |
|
63 fn.apply(thisArg, arguments); |
|
64 }; |
|
65 } |
|
66 |
|
67 function Promise(fn) { |
|
68 if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new'); |
|
69 if (typeof fn !== 'function') throw new TypeError('not a function'); |
|
70 this._state = 0; |
|
71 this._handled = false; |
|
72 this._value = undefined; |
|
73 this._deferreds = []; |
|
74 |
|
75 doResolve(fn, this); |
|
76 } |
|
77 |
|
78 function handle(self, deferred) { |
|
79 while (self._state === 3) { |
|
80 self = self._value; |
|
81 } |
|
82 if (self._state === 0) { |
|
83 self._deferreds.push(deferred); |
|
84 return; |
|
85 } |
|
86 self._handled = true; |
|
87 Promise._immediateFn(function () { |
|
88 var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected; |
|
89 if (cb === null) { |
|
90 (self._state === 1 ? resolve : reject)(deferred.promise, self._value); |
|
91 return; |
|
92 } |
|
93 var ret; |
|
94 try { |
|
95 ret = cb(self._value); |
|
96 } catch (e) { |
|
97 reject(deferred.promise, e); |
|
98 return; |
|
99 } |
|
100 resolve(deferred.promise, ret); |
|
101 }); |
|
102 } |
|
103 |
|
104 function resolve(self, newValue) { |
|
105 try { |
|
106 // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure |
|
107 if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.'); |
|
108 if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) { |
|
109 var then = newValue.then; |
|
110 if (newValue instanceof Promise) { |
|
111 self._state = 3; |
|
112 self._value = newValue; |
|
113 finale(self); |
|
114 return; |
|
115 } else if (typeof then === 'function') { |
|
116 doResolve(bind(then, newValue), self); |
|
117 return; |
|
118 } |
|
119 } |
|
120 self._state = 1; |
|
121 self._value = newValue; |
|
122 finale(self); |
|
123 } catch (e) { |
|
124 reject(self, e); |
|
125 } |
|
126 } |
|
127 |
|
128 function reject(self, newValue) { |
|
129 self._state = 2; |
|
130 self._value = newValue; |
|
131 finale(self); |
|
132 } |
|
133 |
|
134 function finale(self) { |
|
135 if (self._state === 2 && self._deferreds.length === 0) { |
|
136 Promise._immediateFn(function() { |
|
137 if (!self._handled) { |
|
138 Promise._unhandledRejectionFn(self._value); |
|
139 } |
|
140 }); |
|
141 } |
|
142 |
|
143 for (var i = 0, len = self._deferreds.length; i < len; i++) { |
|
144 handle(self, self._deferreds[i]); |
|
145 } |
|
146 self._deferreds = null; |
|
147 } |
|
148 |
|
149 function Handler(onFulfilled, onRejected, promise) { |
|
150 this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null; |
|
151 this.onRejected = typeof onRejected === 'function' ? onRejected : null; |
|
152 this.promise = promise; |
|
153 } |
|
154 |
|
155 /** |
|
156 * Take a potentially misbehaving resolver function and make sure |
|
157 * onFulfilled and onRejected are only called once. |
|
158 * |
|
159 * Makes no guarantees about asynchrony. |
|
160 */ |
|
161 function doResolve(fn, self) { |
|
162 var done = false; |
|
163 try { |
|
164 fn(function (value) { |
|
165 if (done) return; |
|
166 done = true; |
|
167 resolve(self, value); |
|
168 }, function (reason) { |
|
169 if (done) return; |
|
170 done = true; |
|
171 reject(self, reason); |
|
172 }); |
|
173 } catch (ex) { |
|
174 if (done) return; |
|
175 done = true; |
|
176 reject(self, ex); |
|
177 } |
|
178 } |
|
179 |
|
180 Promise.prototype['catch'] = function (onRejected) { |
|
181 return this.then(null, onRejected); |
|
182 }; |
|
183 |
|
184 Promise.prototype.then = function (onFulfilled, onRejected) { |
|
185 var prom = new (this.constructor)(noop); |
|
186 |
|
187 handle(this, new Handler(onFulfilled, onRejected, prom)); |
|
188 return prom; |
|
189 }; |
|
190 |
|
191 Promise.all = function (arr) { |
|
192 var args = Array.prototype.slice.call(arr); |
|
193 |
|
194 return new Promise(function (resolve, reject) { |
|
195 if (args.length === 0) return resolve([]); |
|
196 var remaining = args.length; |
|
197 |
|
198 function res(i, val) { |
|
199 try { |
|
200 if (val && (typeof val === 'object' || typeof val === 'function')) { |
|
201 var then = val.then; |
|
202 if (typeof then === 'function') { |
|
203 then.call(val, function (val) { |
|
204 res(i, val); |
|
205 }, reject); |
|
206 return; |
|
207 } |
|
208 } |
|
209 args[i] = val; |
|
210 if (--remaining === 0) { |
|
211 resolve(args); |
|
212 } |
|
213 } catch (ex) { |
|
214 reject(ex); |
|
215 } |
|
216 } |
|
217 |
|
218 for (var i = 0; i < args.length; i++) { |
|
219 res(i, args[i]); |
|
220 } |
|
221 }); |
|
222 }; |
|
223 |
|
224 Promise.resolve = function (value) { |
|
225 if (value && typeof value === 'object' && value.constructor === Promise) { |
|
226 return value; |
|
227 } |
|
228 |
|
229 return new Promise(function (resolve) { |
|
230 resolve(value); |
|
231 }); |
|
232 }; |
|
233 |
|
234 Promise.reject = function (value) { |
|
235 return new Promise(function (resolve, reject) { |
|
236 reject(value); |
|
237 }); |
|
238 }; |
|
239 |
|
240 Promise.race = function (values) { |
|
241 return new Promise(function (resolve, reject) { |
|
242 for (var i = 0, len = values.length; i < len; i++) { |
|
243 values[i].then(resolve, reject); |
|
244 } |
|
245 }); |
|
246 }; |
|
247 |
|
248 // Use polyfill for setImmediate for performance gains |
|
249 Promise._immediateFn = (typeof setImmediate === 'function' && function (fn) { setImmediate(fn); }) || |
|
250 function (fn) { |
|
251 setTimeoutFunc(fn, 0); |
|
252 }; |
|
253 |
|
254 Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) { |
|
255 if (typeof console !== 'undefined' && console) { |
|
256 console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console |
|
257 } |
|
258 }; |
|
259 |
|
260 /** |
|
261 * Set the immediate function to execute callbacks |
|
262 * @param fn {function} Function to execute |
|
263 * @deprecated |
|
264 */ |
|
265 Promise._setImmediateFn = function _setImmediateFn(fn) { |
|
266 Promise._immediateFn = fn; |
|
267 }; |
|
268 |
|
269 /** |
|
270 * Change the function to execute on unhandled rejection |
|
271 * @param {function} fn Function to execute on unhandled rejection |
|
272 * @deprecated |
|
273 */ |
|
274 Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) { |
|
275 Promise._unhandledRejectionFn = fn; |
|
276 }; |
|
277 |
|
278 if (typeof module !== 'undefined' && module.exports) { |
|
279 module.exports = Promise; |
|
280 } else if (!root.Promise) { |
|
281 root.Promise = Promise; |
|
282 } |
|
283 |
|
284 })(this); |
|
285 |
|
286 },{}],5:[function(_dereq_,module,exports){ |
|
287 'use strict'; |
|
288 |
|
289 Object.defineProperty(exports, "__esModule", { |
|
290 value: true |
|
291 }); |
|
292 |
|
293 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; |
|
294 |
|
295 var _mejs = _dereq_(7); |
|
296 |
|
297 var _mejs2 = _interopRequireDefault(_mejs); |
|
298 |
|
299 var _en = _dereq_(9); |
|
300 |
|
301 var _general = _dereq_(18); |
|
302 |
|
303 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
304 |
|
305 var i18n = { lang: 'en', en: _en.EN }; |
|
306 |
|
307 i18n.language = function () { |
|
308 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { |
|
309 args[_key] = arguments[_key]; |
|
310 } |
|
311 |
|
312 if (args !== null && args !== undefined && args.length) { |
|
313 |
|
314 if (typeof args[0] !== 'string') { |
|
315 throw new TypeError('Language code must be a string value'); |
|
316 } |
|
317 |
|
318 if (!/^(([a-z]{2}((\-|_)[a-z]{2})?)|([a-z]{3}))$/i.test(args[0])) { |
|
319 throw new TypeError('Language code must have format `xx`, `xxx`, `xx_XX` or `xx-xx`'); |
|
320 } |
|
321 |
|
322 i18n.lang = args[0]; |
|
323 |
|
324 if (i18n[args[0]] === undefined) { |
|
325 args[1] = args[1] !== null && args[1] !== undefined && _typeof(args[1]) === 'object' ? args[1] : {}; |
|
326 i18n[args[0]] = !(0, _general.isObjectEmpty)(args[1]) ? args[1] : _en.EN; |
|
327 } else if (args[1] !== null && args[1] !== undefined && _typeof(args[1]) === 'object') { |
|
328 i18n[args[0]] = args[1]; |
|
329 } |
|
330 } |
|
331 |
|
332 return i18n.lang; |
|
333 }; |
|
334 |
|
335 i18n.t = function (message) { |
|
336 var pluralParam = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; |
|
337 |
|
338 |
|
339 if (typeof message === 'string' && message.length) { |
|
340 |
|
341 var str = void 0, |
|
342 pluralForm = void 0; |
|
343 |
|
344 var language = i18n.language(); |
|
345 |
|
346 var _plural = function _plural(input, number, form) { |
|
347 |
|
348 if ((typeof input === 'undefined' ? 'undefined' : _typeof(input)) !== 'object' || typeof number !== 'number' || typeof form !== 'number') { |
|
349 return input; |
|
350 } |
|
351 |
|
352 var _pluralForms = function () { |
|
353 return [function () { |
|
354 return arguments.length <= 1 ? undefined : arguments[1]; |
|
355 }, function () { |
|
356 return (arguments.length <= 0 ? undefined : arguments[0]) === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2]; |
|
357 }, function () { |
|
358 return (arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2]; |
|
359 }, function () { |
|
360 if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) { |
|
361 return arguments.length <= 1 ? undefined : arguments[1]; |
|
362 } else if ((arguments.length <= 0 ? undefined : arguments[0]) !== 0) { |
|
363 return arguments.length <= 2 ? undefined : arguments[2]; |
|
364 } else { |
|
365 return arguments.length <= 3 ? undefined : arguments[3]; |
|
366 } |
|
367 }, function () { |
|
368 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1 || (arguments.length <= 0 ? undefined : arguments[0]) === 11) { |
|
369 return arguments.length <= 1 ? undefined : arguments[1]; |
|
370 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2 || (arguments.length <= 0 ? undefined : arguments[0]) === 12) { |
|
371 return arguments.length <= 2 ? undefined : arguments[2]; |
|
372 } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 2 && (arguments.length <= 0 ? undefined : arguments[0]) < 20) { |
|
373 return arguments.length <= 3 ? undefined : arguments[3]; |
|
374 } else { |
|
375 return arguments.length <= 4 ? undefined : arguments[4]; |
|
376 } |
|
377 }, function () { |
|
378 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { |
|
379 return arguments.length <= 1 ? undefined : arguments[1]; |
|
380 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 > 0 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 20) { |
|
381 return arguments.length <= 2 ? undefined : arguments[2]; |
|
382 } else { |
|
383 return arguments.length <= 3 ? undefined : arguments[3]; |
|
384 } |
|
385 }, function () { |
|
386 if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) { |
|
387 return arguments.length <= 1 ? undefined : arguments[1]; |
|
388 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) { |
|
389 return arguments.length <= 2 ? undefined : arguments[2]; |
|
390 } else { |
|
391 return [3]; |
|
392 } |
|
393 }, function () { |
|
394 if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) { |
|
395 return arguments.length <= 1 ? undefined : arguments[1]; |
|
396 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) { |
|
397 return arguments.length <= 2 ? undefined : arguments[2]; |
|
398 } else { |
|
399 return arguments.length <= 3 ? undefined : arguments[3]; |
|
400 } |
|
401 }, function () { |
|
402 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { |
|
403 return arguments.length <= 1 ? undefined : arguments[1]; |
|
404 } else if ((arguments.length <= 0 ? undefined : arguments[0]) >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) <= 4) { |
|
405 return arguments.length <= 2 ? undefined : arguments[2]; |
|
406 } else { |
|
407 return arguments.length <= 3 ? undefined : arguments[3]; |
|
408 } |
|
409 }, function () { |
|
410 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { |
|
411 return arguments.length <= 1 ? undefined : arguments[1]; |
|
412 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) { |
|
413 return arguments.length <= 2 ? undefined : arguments[2]; |
|
414 } else { |
|
415 return arguments.length <= 3 ? undefined : arguments[3]; |
|
416 } |
|
417 }, function () { |
|
418 if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 1) { |
|
419 return arguments.length <= 2 ? undefined : arguments[2]; |
|
420 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 2) { |
|
421 return arguments.length <= 3 ? undefined : arguments[3]; |
|
422 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 3 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 === 4) { |
|
423 return arguments.length <= 4 ? undefined : arguments[4]; |
|
424 } else { |
|
425 return arguments.length <= 1 ? undefined : arguments[1]; |
|
426 } |
|
427 }, function () { |
|
428 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { |
|
429 return arguments.length <= 1 ? undefined : arguments[1]; |
|
430 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) { |
|
431 return arguments.length <= 2 ? undefined : arguments[2]; |
|
432 } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 2 && (arguments.length <= 0 ? undefined : arguments[0]) < 7) { |
|
433 return arguments.length <= 3 ? undefined : arguments[3]; |
|
434 } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 6 && (arguments.length <= 0 ? undefined : arguments[0]) < 11) { |
|
435 return arguments.length <= 4 ? undefined : arguments[4]; |
|
436 } else { |
|
437 return arguments.length <= 5 ? undefined : arguments[5]; |
|
438 } |
|
439 }, function () { |
|
440 if ((arguments.length <= 0 ? undefined : arguments[0]) === 0) { |
|
441 return arguments.length <= 1 ? undefined : arguments[1]; |
|
442 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { |
|
443 return arguments.length <= 2 ? undefined : arguments[2]; |
|
444 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) { |
|
445 return arguments.length <= 3 ? undefined : arguments[3]; |
|
446 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 3 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 <= 10) { |
|
447 return arguments.length <= 4 ? undefined : arguments[4]; |
|
448 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 11) { |
|
449 return arguments.length <= 5 ? undefined : arguments[5]; |
|
450 } else { |
|
451 return arguments.length <= 6 ? undefined : arguments[6]; |
|
452 } |
|
453 }, function () { |
|
454 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { |
|
455 return arguments.length <= 1 ? undefined : arguments[1]; |
|
456 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 > 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 11) { |
|
457 return arguments.length <= 2 ? undefined : arguments[2]; |
|
458 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 > 10 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 20) { |
|
459 return arguments.length <= 3 ? undefined : arguments[3]; |
|
460 } else { |
|
461 return arguments.length <= 4 ? undefined : arguments[4]; |
|
462 } |
|
463 }, function () { |
|
464 if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1) { |
|
465 return arguments.length <= 1 ? undefined : arguments[1]; |
|
466 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 2) { |
|
467 return arguments.length <= 2 ? undefined : arguments[2]; |
|
468 } else { |
|
469 return arguments.length <= 3 ? undefined : arguments[3]; |
|
470 } |
|
471 }, function () { |
|
472 return (arguments.length <= 0 ? undefined : arguments[0]) !== 11 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2]; |
|
473 }, function () { |
|
474 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { |
|
475 return arguments.length <= 1 ? undefined : arguments[1]; |
|
476 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) { |
|
477 return arguments.length <= 2 ? undefined : arguments[2]; |
|
478 } else { |
|
479 return arguments.length <= 3 ? undefined : arguments[3]; |
|
480 } |
|
481 }, function () { |
|
482 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { |
|
483 return arguments.length <= 1 ? undefined : arguments[1]; |
|
484 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) { |
|
485 return arguments.length <= 2 ? undefined : arguments[2]; |
|
486 } else if ((arguments.length <= 0 ? undefined : arguments[0]) !== 8 && (arguments.length <= 0 ? undefined : arguments[0]) !== 11) { |
|
487 return arguments.length <= 3 ? undefined : arguments[3]; |
|
488 } else { |
|
489 return arguments.length <= 4 ? undefined : arguments[4]; |
|
490 } |
|
491 }, function () { |
|
492 return (arguments.length <= 0 ? undefined : arguments[0]) === 0 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2]; |
|
493 }, function () { |
|
494 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { |
|
495 return arguments.length <= 1 ? undefined : arguments[1]; |
|
496 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) { |
|
497 return arguments.length <= 2 ? undefined : arguments[2]; |
|
498 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 3) { |
|
499 return arguments.length <= 3 ? undefined : arguments[3]; |
|
500 } else { |
|
501 return arguments.length <= 4 ? undefined : arguments[4]; |
|
502 } |
|
503 }, function () { |
|
504 if ((arguments.length <= 0 ? undefined : arguments[0]) === 0) { |
|
505 return arguments.length <= 1 ? undefined : arguments[1]; |
|
506 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) { |
|
507 return arguments.length <= 2 ? undefined : arguments[2]; |
|
508 } else { |
|
509 return arguments.length <= 3 ? undefined : arguments[3]; |
|
510 } |
|
511 }]; |
|
512 }(); |
|
513 |
|
514 return _pluralForms[form].apply(null, [number].concat(input)); |
|
515 }; |
|
516 |
|
517 if (i18n[language] !== undefined) { |
|
518 str = i18n[language][message]; |
|
519 if (pluralParam !== null && typeof pluralParam === 'number') { |
|
520 pluralForm = i18n[language]['mejs.plural-form']; |
|
521 str = _plural.apply(null, [str, pluralParam, pluralForm]); |
|
522 } |
|
523 } |
|
524 |
|
525 if (!str && i18n.en) { |
|
526 str = i18n.en[message]; |
|
527 if (pluralParam !== null && typeof pluralParam === 'number') { |
|
528 pluralForm = i18n.en['mejs.plural-form']; |
|
529 str = _plural.apply(null, [str, pluralParam, pluralForm]); |
|
530 } |
|
531 } |
|
532 |
|
533 str = str || message; |
|
534 |
|
535 if (pluralParam !== null && typeof pluralParam === 'number') { |
|
536 str = str.replace('%1', pluralParam); |
|
537 } |
|
538 |
|
539 return (0, _general.escapeHTML)(str); |
|
540 } |
|
541 |
|
542 return message; |
|
543 }; |
|
544 |
|
545 _mejs2.default.i18n = i18n; |
|
546 |
|
547 if (typeof mejsL10n !== 'undefined') { |
|
548 _mejs2.default.i18n.language(mejsL10n.language, mejsL10n.strings); |
|
549 } |
|
550 |
|
551 exports.default = i18n; |
|
552 |
|
553 },{"18":18,"7":7,"9":9}],6:[function(_dereq_,module,exports){ |
|
554 'use strict'; |
|
555 |
|
556 Object.defineProperty(exports, "__esModule", { |
|
557 value: true |
|
558 }); |
|
559 |
|
560 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; |
|
561 |
|
562 var _window = _dereq_(3); |
|
563 |
|
564 var _window2 = _interopRequireDefault(_window); |
|
565 |
|
566 var _document = _dereq_(2); |
|
567 |
|
568 var _document2 = _interopRequireDefault(_document); |
|
569 |
|
570 var _mejs = _dereq_(7); |
|
571 |
|
572 var _mejs2 = _interopRequireDefault(_mejs); |
|
573 |
|
574 var _general = _dereq_(18); |
|
575 |
|
576 var _media2 = _dereq_(19); |
|
577 |
|
578 var _renderer = _dereq_(8); |
|
579 |
|
580 var _constants = _dereq_(16); |
|
581 |
|
582 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
583 |
|
584 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
|
585 |
|
586 var MediaElement = function MediaElement(idOrNode, options, sources) { |
|
587 var _this = this; |
|
588 |
|
589 _classCallCheck(this, MediaElement); |
|
590 |
|
591 var t = this; |
|
592 |
|
593 sources = Array.isArray(sources) ? sources : null; |
|
594 |
|
595 t.defaults = { |
|
596 renderers: [], |
|
597 |
|
598 fakeNodeName: 'mediaelementwrapper', |
|
599 |
|
600 pluginPath: 'build/', |
|
601 |
|
602 shimScriptAccess: 'sameDomain' |
|
603 }; |
|
604 |
|
605 options = Object.assign(t.defaults, options); |
|
606 |
|
607 t.mediaElement = _document2.default.createElement(options.fakeNodeName); |
|
608 |
|
609 var id = idOrNode, |
|
610 error = false; |
|
611 |
|
612 if (typeof idOrNode === 'string') { |
|
613 t.mediaElement.originalNode = _document2.default.getElementById(idOrNode); |
|
614 } else { |
|
615 t.mediaElement.originalNode = idOrNode; |
|
616 id = idOrNode.id; |
|
617 } |
|
618 |
|
619 if (t.mediaElement.originalNode === undefined || t.mediaElement.originalNode === null) { |
|
620 return null; |
|
621 } |
|
622 |
|
623 t.mediaElement.options = options; |
|
624 id = id || 'mejs_' + Math.random().toString().slice(2); |
|
625 |
|
626 t.mediaElement.originalNode.setAttribute('id', id + '_from_mejs'); |
|
627 |
|
628 var tagName = t.mediaElement.originalNode.tagName.toLowerCase(); |
|
629 if (['video', 'audio'].indexOf(tagName) > -1 && !t.mediaElement.originalNode.getAttribute('preload')) { |
|
630 t.mediaElement.originalNode.setAttribute('preload', 'none'); |
|
631 } |
|
632 |
|
633 t.mediaElement.originalNode.parentNode.insertBefore(t.mediaElement, t.mediaElement.originalNode); |
|
634 |
|
635 t.mediaElement.appendChild(t.mediaElement.originalNode); |
|
636 |
|
637 var processURL = function processURL(url, type) { |
|
638 if (_window2.default.location.protocol === 'https:' && url.indexOf('http:') === 0 && _constants.IS_IOS && _mejs2.default.html5media.mediaTypes.indexOf(type) > -1) { |
|
639 var xhr = new XMLHttpRequest(); |
|
640 xhr.onreadystatechange = function () { |
|
641 if (this.readyState === 4 && this.status === 200) { |
|
642 var _url = _window2.default.URL || _window2.default.webkitURL, |
|
643 blobUrl = _url.createObjectURL(this.response); |
|
644 t.mediaElement.originalNode.setAttribute('src', blobUrl); |
|
645 return blobUrl; |
|
646 } |
|
647 return url; |
|
648 }; |
|
649 xhr.open('GET', url); |
|
650 xhr.responseType = 'blob'; |
|
651 xhr.send(); |
|
652 } |
|
653 |
|
654 return url; |
|
655 }; |
|
656 |
|
657 var mediaFiles = void 0; |
|
658 |
|
659 if (sources !== null) { |
|
660 mediaFiles = sources; |
|
661 } else if (t.mediaElement.originalNode !== null) { |
|
662 |
|
663 mediaFiles = []; |
|
664 |
|
665 switch (t.mediaElement.originalNode.nodeName.toLowerCase()) { |
|
666 case 'iframe': |
|
667 mediaFiles.push({ |
|
668 type: '', |
|
669 src: t.mediaElement.originalNode.getAttribute('src') |
|
670 }); |
|
671 break; |
|
672 case 'audio': |
|
673 case 'video': |
|
674 var _sources = t.mediaElement.originalNode.children.length, |
|
675 nodeSource = t.mediaElement.originalNode.getAttribute('src'); |
|
676 |
|
677 if (nodeSource) { |
|
678 var node = t.mediaElement.originalNode, |
|
679 type = (0, _media2.formatType)(nodeSource, node.getAttribute('type')); |
|
680 mediaFiles.push({ |
|
681 type: type, |
|
682 src: processURL(nodeSource, type) |
|
683 }); |
|
684 } |
|
685 |
|
686 for (var i = 0; i < _sources; i++) { |
|
687 var n = t.mediaElement.originalNode.children[i]; |
|
688 if (n.tagName.toLowerCase() === 'source') { |
|
689 var src = n.getAttribute('src'), |
|
690 _type = (0, _media2.formatType)(src, n.getAttribute('type')); |
|
691 mediaFiles.push({ type: _type, src: processURL(src, _type) }); |
|
692 } |
|
693 } |
|
694 break; |
|
695 } |
|
696 } |
|
697 |
|
698 t.mediaElement.id = id; |
|
699 t.mediaElement.renderers = {}; |
|
700 t.mediaElement.events = {}; |
|
701 t.mediaElement.promises = []; |
|
702 t.mediaElement.renderer = null; |
|
703 t.mediaElement.rendererName = null; |
|
704 |
|
705 t.mediaElement.changeRenderer = function (rendererName, mediaFiles) { |
|
706 |
|
707 var t = _this, |
|
708 media = Object.keys(mediaFiles[0]).length > 2 ? mediaFiles[0] : mediaFiles[0].src; |
|
709 |
|
710 if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && t.mediaElement.renderer.name === rendererName) { |
|
711 t.mediaElement.renderer.pause(); |
|
712 if (t.mediaElement.renderer.stop) { |
|
713 t.mediaElement.renderer.stop(); |
|
714 } |
|
715 t.mediaElement.renderer.show(); |
|
716 t.mediaElement.renderer.setSrc(media); |
|
717 return true; |
|
718 } |
|
719 |
|
720 if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null) { |
|
721 t.mediaElement.renderer.pause(); |
|
722 if (t.mediaElement.renderer.stop) { |
|
723 t.mediaElement.renderer.stop(); |
|
724 } |
|
725 t.mediaElement.renderer.hide(); |
|
726 } |
|
727 |
|
728 var newRenderer = t.mediaElement.renderers[rendererName], |
|
729 newRendererType = null; |
|
730 |
|
731 if (newRenderer !== undefined && newRenderer !== null) { |
|
732 newRenderer.show(); |
|
733 newRenderer.setSrc(media); |
|
734 t.mediaElement.renderer = newRenderer; |
|
735 t.mediaElement.rendererName = rendererName; |
|
736 return true; |
|
737 } |
|
738 |
|
739 var rendererArray = t.mediaElement.options.renderers.length ? t.mediaElement.options.renderers : _renderer.renderer.order; |
|
740 |
|
741 for (var _i = 0, total = rendererArray.length; _i < total; _i++) { |
|
742 var index = rendererArray[_i]; |
|
743 |
|
744 if (index === rendererName) { |
|
745 var rendererList = _renderer.renderer.renderers; |
|
746 newRendererType = rendererList[index]; |
|
747 |
|
748 var renderOptions = Object.assign(newRendererType.options, t.mediaElement.options); |
|
749 newRenderer = newRendererType.create(t.mediaElement, renderOptions, mediaFiles); |
|
750 newRenderer.name = rendererName; |
|
751 |
|
752 t.mediaElement.renderers[newRendererType.name] = newRenderer; |
|
753 t.mediaElement.renderer = newRenderer; |
|
754 t.mediaElement.rendererName = rendererName; |
|
755 newRenderer.show(); |
|
756 return true; |
|
757 } |
|
758 } |
|
759 |
|
760 return false; |
|
761 }; |
|
762 |
|
763 t.mediaElement.setSize = function (width, height) { |
|
764 if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null) { |
|
765 t.mediaElement.renderer.setSize(width, height); |
|
766 } |
|
767 }; |
|
768 |
|
769 t.mediaElement.generateError = function (message, urlList) { |
|
770 message = message || ''; |
|
771 urlList = Array.isArray(urlList) ? urlList : []; |
|
772 var event = (0, _general.createEvent)('error', t.mediaElement); |
|
773 event.message = message; |
|
774 event.urls = urlList; |
|
775 t.mediaElement.dispatchEvent(event); |
|
776 error = true; |
|
777 }; |
|
778 |
|
779 var props = _mejs2.default.html5media.properties, |
|
780 methods = _mejs2.default.html5media.methods, |
|
781 addProperty = function addProperty(obj, name, onGet, onSet) { |
|
782 var oldValue = obj[name]; |
|
783 var getFn = function getFn() { |
|
784 return onGet.apply(obj, [oldValue]); |
|
785 }, |
|
786 setFn = function setFn(newValue) { |
|
787 oldValue = onSet.apply(obj, [newValue]); |
|
788 return oldValue; |
|
789 }; |
|
790 |
|
791 Object.defineProperty(obj, name, { |
|
792 get: getFn, |
|
793 set: setFn |
|
794 }); |
|
795 }, |
|
796 assignGettersSetters = function assignGettersSetters(propName) { |
|
797 if (propName !== 'src') { |
|
798 |
|
799 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1), |
|
800 getFn = function getFn() { |
|
801 return t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer['get' + capName] === 'function' ? t.mediaElement.renderer['get' + capName]() : null; |
|
802 }, |
|
803 setFn = function setFn(value) { |
|
804 if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer['set' + capName] === 'function') { |
|
805 t.mediaElement.renderer['set' + capName](value); |
|
806 } |
|
807 }; |
|
808 |
|
809 addProperty(t.mediaElement, propName, getFn, setFn); |
|
810 t.mediaElement['get' + capName] = getFn; |
|
811 t.mediaElement['set' + capName] = setFn; |
|
812 } |
|
813 }, |
|
814 getSrc = function getSrc() { |
|
815 return t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null ? t.mediaElement.renderer.getSrc() : null; |
|
816 }, |
|
817 setSrc = function setSrc(value) { |
|
818 var mediaFiles = []; |
|
819 |
|
820 if (typeof value === 'string') { |
|
821 mediaFiles.push({ |
|
822 src: value, |
|
823 type: value ? (0, _media2.getTypeFromFile)(value) : '' |
|
824 }); |
|
825 } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src !== undefined) { |
|
826 var _src = (0, _media2.absolutizeUrl)(value.src), |
|
827 _type2 = value.type, |
|
828 media = Object.assign(value, { |
|
829 src: _src, |
|
830 type: (_type2 === '' || _type2 === null || _type2 === undefined) && _src ? (0, _media2.getTypeFromFile)(_src) : _type2 |
|
831 }); |
|
832 mediaFiles.push(media); |
|
833 } else if (Array.isArray(value)) { |
|
834 for (var _i2 = 0, total = value.length; _i2 < total; _i2++) { |
|
835 |
|
836 var _src2 = (0, _media2.absolutizeUrl)(value[_i2].src), |
|
837 _type3 = value[_i2].type, |
|
838 _media = Object.assign(value[_i2], { |
|
839 src: _src2, |
|
840 type: (_type3 === '' || _type3 === null || _type3 === undefined) && _src2 ? (0, _media2.getTypeFromFile)(_src2) : _type3 |
|
841 }); |
|
842 |
|
843 mediaFiles.push(_media); |
|
844 } |
|
845 } |
|
846 |
|
847 var renderInfo = _renderer.renderer.select(mediaFiles, t.mediaElement.options.renderers.length ? t.mediaElement.options.renderers : []), |
|
848 event = void 0; |
|
849 |
|
850 if (!t.mediaElement.paused) { |
|
851 t.mediaElement.pause(); |
|
852 event = (0, _general.createEvent)('pause', t.mediaElement); |
|
853 t.mediaElement.dispatchEvent(event); |
|
854 } |
|
855 t.mediaElement.originalNode.src = mediaFiles[0].src || ''; |
|
856 |
|
857 if (renderInfo === null && mediaFiles[0].src) { |
|
858 t.mediaElement.generateError('No renderer found', mediaFiles); |
|
859 return; |
|
860 } |
|
861 |
|
862 return mediaFiles[0].src ? t.mediaElement.changeRenderer(renderInfo.rendererName, mediaFiles) : null; |
|
863 }, |
|
864 triggerAction = function triggerAction(methodName, args) { |
|
865 try { |
|
866 if (methodName === 'play' && t.mediaElement.rendererName === 'native_dash') { |
|
867 var response = t.mediaElement.renderer[methodName](args); |
|
868 if (response && typeof response.then === 'function') { |
|
869 response.catch(function () { |
|
870 if (t.mediaElement.paused) { |
|
871 setTimeout(function () { |
|
872 var tmpResponse = t.mediaElement.renderer.play(); |
|
873 if (tmpResponse !== undefined) { |
|
874 tmpResponse.catch(function () { |
|
875 if (!t.mediaElement.renderer.paused) { |
|
876 t.mediaElement.renderer.pause(); |
|
877 } |
|
878 }); |
|
879 } |
|
880 }, 150); |
|
881 } |
|
882 }); |
|
883 } |
|
884 } else { |
|
885 t.mediaElement.renderer[methodName](args); |
|
886 } |
|
887 } catch (e) { |
|
888 t.mediaElement.generateError(e, mediaFiles); |
|
889 } |
|
890 }, |
|
891 assignMethods = function assignMethods(methodName) { |
|
892 t.mediaElement[methodName] = function () { |
|
893 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { |
|
894 args[_key] = arguments[_key]; |
|
895 } |
|
896 |
|
897 if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer[methodName] === 'function') { |
|
898 if (t.mediaElement.promises.length) { |
|
899 Promise.all(t.mediaElement.promises).then(function () { |
|
900 triggerAction(methodName, args); |
|
901 }).catch(function (e) { |
|
902 t.mediaElement.generateError(e, mediaFiles); |
|
903 }); |
|
904 } else { |
|
905 triggerAction(methodName, args); |
|
906 } |
|
907 } |
|
908 return null; |
|
909 }; |
|
910 }; |
|
911 |
|
912 addProperty(t.mediaElement, 'src', getSrc, setSrc); |
|
913 t.mediaElement.getSrc = getSrc; |
|
914 t.mediaElement.setSrc = setSrc; |
|
915 |
|
916 for (var _i3 = 0, total = props.length; _i3 < total; _i3++) { |
|
917 assignGettersSetters(props[_i3]); |
|
918 } |
|
919 |
|
920 for (var _i4 = 0, _total = methods.length; _i4 < _total; _i4++) { |
|
921 assignMethods(methods[_i4]); |
|
922 } |
|
923 |
|
924 t.mediaElement.addEventListener = function (eventName, callback) { |
|
925 t.mediaElement.events[eventName] = t.mediaElement.events[eventName] || []; |
|
926 |
|
927 t.mediaElement.events[eventName].push(callback); |
|
928 }; |
|
929 t.mediaElement.removeEventListener = function (eventName, callback) { |
|
930 if (!eventName) { |
|
931 t.mediaElement.events = {}; |
|
932 return true; |
|
933 } |
|
934 |
|
935 var callbacks = t.mediaElement.events[eventName]; |
|
936 |
|
937 if (!callbacks) { |
|
938 return true; |
|
939 } |
|
940 |
|
941 if (!callback) { |
|
942 t.mediaElement.events[eventName] = []; |
|
943 return true; |
|
944 } |
|
945 |
|
946 for (var _i5 = 0; _i5 < callbacks.length; _i5++) { |
|
947 if (callbacks[_i5] === callback) { |
|
948 t.mediaElement.events[eventName].splice(_i5, 1); |
|
949 return true; |
|
950 } |
|
951 } |
|
952 return false; |
|
953 }; |
|
954 |
|
955 t.mediaElement.dispatchEvent = function (event) { |
|
956 var callbacks = t.mediaElement.events[event.type]; |
|
957 if (callbacks) { |
|
958 for (var _i6 = 0; _i6 < callbacks.length; _i6++) { |
|
959 callbacks[_i6].apply(null, [event]); |
|
960 } |
|
961 } |
|
962 }; |
|
963 |
|
964 if (mediaFiles.length) { |
|
965 t.mediaElement.src = mediaFiles; |
|
966 } |
|
967 |
|
968 if (t.mediaElement.promises.length) { |
|
969 Promise.all(t.mediaElement.promises).then(function () { |
|
970 if (t.mediaElement.options.success) { |
|
971 t.mediaElement.options.success(t.mediaElement, t.mediaElement.originalNode); |
|
972 } |
|
973 }).catch(function () { |
|
974 if (error && t.mediaElement.options.error) { |
|
975 t.mediaElement.options.error(t.mediaElement, t.mediaElement.originalNode); |
|
976 } |
|
977 }); |
|
978 } else { |
|
979 if (t.mediaElement.options.success) { |
|
980 t.mediaElement.options.success(t.mediaElement, t.mediaElement.originalNode); |
|
981 } |
|
982 |
|
983 if (error && t.mediaElement.options.error) { |
|
984 t.mediaElement.options.error(t.mediaElement, t.mediaElement.originalNode); |
|
985 } |
|
986 } |
|
987 |
|
988 return t.mediaElement; |
|
989 }; |
|
990 |
|
991 _window2.default.MediaElement = MediaElement; |
|
992 _mejs2.default.MediaElement = MediaElement; |
|
993 |
|
994 exports.default = MediaElement; |
|
995 |
|
996 },{"16":16,"18":18,"19":19,"2":2,"3":3,"7":7,"8":8}],7:[function(_dereq_,module,exports){ |
|
997 'use strict'; |
|
998 |
|
999 Object.defineProperty(exports, "__esModule", { |
|
1000 value: true |
|
1001 }); |
|
1002 |
|
1003 var _window = _dereq_(3); |
|
1004 |
|
1005 var _window2 = _interopRequireDefault(_window); |
|
1006 |
|
1007 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
1008 |
|
1009 var mejs = {}; |
|
1010 |
|
1011 mejs.version = '4.2.6'; |
|
1012 |
|
1013 mejs.html5media = { |
|
1014 properties: ['volume', 'src', 'currentTime', 'muted', 'duration', 'paused', 'ended', 'buffered', 'error', 'networkState', 'readyState', 'seeking', 'seekable', 'currentSrc', 'preload', 'bufferedBytes', 'bufferedTime', 'initialTime', 'startOffsetTime', 'defaultPlaybackRate', 'playbackRate', 'played', 'autoplay', 'loop', 'controls'], |
|
1015 readOnlyProperties: ['duration', 'paused', 'ended', 'buffered', 'error', 'networkState', 'readyState', 'seeking', 'seekable'], |
|
1016 |
|
1017 methods: ['load', 'play', 'pause', 'canPlayType'], |
|
1018 |
|
1019 events: ['loadstart', 'durationchange', 'loadedmetadata', 'loadeddata', 'progress', 'canplay', 'canplaythrough', 'suspend', 'abort', 'error', 'emptied', 'stalled', 'play', 'playing', 'pause', 'waiting', 'seeking', 'seeked', 'timeupdate', 'ended', 'ratechange', 'volumechange'], |
|
1020 |
|
1021 mediaTypes: ['audio/mp3', 'audio/ogg', 'audio/oga', 'audio/wav', 'audio/x-wav', 'audio/wave', 'audio/x-pn-wav', 'audio/mpeg', 'audio/mp4', 'video/mp4', 'video/webm', 'video/ogg', 'video/ogv'] |
|
1022 }; |
|
1023 |
|
1024 _window2.default.mejs = mejs; |
|
1025 |
|
1026 exports.default = mejs; |
|
1027 |
|
1028 },{"3":3}],8:[function(_dereq_,module,exports){ |
|
1029 'use strict'; |
|
1030 |
|
1031 Object.defineProperty(exports, "__esModule", { |
|
1032 value: true |
|
1033 }); |
|
1034 exports.renderer = undefined; |
|
1035 |
|
1036 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; |
|
1037 |
|
1038 var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
|
1039 |
|
1040 var _mejs = _dereq_(7); |
|
1041 |
|
1042 var _mejs2 = _interopRequireDefault(_mejs); |
|
1043 |
|
1044 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
1045 |
|
1046 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
|
1047 |
|
1048 var Renderer = function () { |
|
1049 function Renderer() { |
|
1050 _classCallCheck(this, Renderer); |
|
1051 |
|
1052 this.renderers = {}; |
|
1053 this.order = []; |
|
1054 } |
|
1055 |
|
1056 _createClass(Renderer, [{ |
|
1057 key: 'add', |
|
1058 value: function add(renderer) { |
|
1059 if (renderer.name === undefined) { |
|
1060 throw new TypeError('renderer must contain at least `name` property'); |
|
1061 } |
|
1062 |
|
1063 this.renderers[renderer.name] = renderer; |
|
1064 this.order.push(renderer.name); |
|
1065 } |
|
1066 }, { |
|
1067 key: 'select', |
|
1068 value: function select(mediaFiles) { |
|
1069 var renderers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; |
|
1070 |
|
1071 var renderersLength = renderers.length; |
|
1072 |
|
1073 renderers = renderers.length ? renderers : this.order; |
|
1074 |
|
1075 if (!renderersLength) { |
|
1076 var rendererIndicator = [/^(html5|native)/i, /^flash/i, /iframe$/i], |
|
1077 rendererRanking = function rendererRanking(renderer) { |
|
1078 for (var i = 0, total = rendererIndicator.length; i < total; i++) { |
|
1079 if (rendererIndicator[i].test(renderer)) { |
|
1080 return i; |
|
1081 } |
|
1082 } |
|
1083 return rendererIndicator.length; |
|
1084 }; |
|
1085 |
|
1086 renderers.sort(function (a, b) { |
|
1087 return rendererRanking(a) - rendererRanking(b); |
|
1088 }); |
|
1089 } |
|
1090 |
|
1091 for (var i = 0, total = renderers.length; i < total; i++) { |
|
1092 var key = renderers[i], |
|
1093 _renderer = this.renderers[key]; |
|
1094 |
|
1095 if (_renderer !== null && _renderer !== undefined) { |
|
1096 for (var j = 0, jl = mediaFiles.length; j < jl; j++) { |
|
1097 if (typeof _renderer.canPlayType === 'function' && typeof mediaFiles[j].type === 'string' && _renderer.canPlayType(mediaFiles[j].type)) { |
|
1098 return { |
|
1099 rendererName: _renderer.name, |
|
1100 src: mediaFiles[j].src |
|
1101 }; |
|
1102 } |
|
1103 } |
|
1104 } |
|
1105 } |
|
1106 |
|
1107 return null; |
|
1108 } |
|
1109 }, { |
|
1110 key: 'order', |
|
1111 set: function set(order) { |
|
1112 if (!Array.isArray(order)) { |
|
1113 throw new TypeError('order must be an array of strings.'); |
|
1114 } |
|
1115 |
|
1116 this._order = order; |
|
1117 }, |
|
1118 get: function get() { |
|
1119 return this._order; |
|
1120 } |
|
1121 }, { |
|
1122 key: 'renderers', |
|
1123 set: function set(renderers) { |
|
1124 if (renderers !== null && (typeof renderers === 'undefined' ? 'undefined' : _typeof(renderers)) !== 'object') { |
|
1125 throw new TypeError('renderers must be an array of objects.'); |
|
1126 } |
|
1127 |
|
1128 this._renderers = renderers; |
|
1129 }, |
|
1130 get: function get() { |
|
1131 return this._renderers; |
|
1132 } |
|
1133 }]); |
|
1134 |
|
1135 return Renderer; |
|
1136 }(); |
|
1137 |
|
1138 var renderer = exports.renderer = new Renderer(); |
|
1139 |
|
1140 _mejs2.default.Renderers = renderer; |
|
1141 |
|
1142 },{"7":7}],9:[function(_dereq_,module,exports){ |
|
1143 'use strict'; |
|
1144 |
|
1145 Object.defineProperty(exports, "__esModule", { |
|
1146 value: true |
|
1147 }); |
|
1148 var EN = exports.EN = { |
|
1149 'mejs.plural-form': 1, |
|
1150 |
|
1151 'mejs.download-file': 'Download File', |
|
1152 |
|
1153 'mejs.install-flash': 'You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/', |
|
1154 |
|
1155 'mejs.fullscreen': 'Fullscreen', |
|
1156 |
|
1157 'mejs.play': 'Play', |
|
1158 'mejs.pause': 'Pause', |
|
1159 |
|
1160 'mejs.time-slider': 'Time Slider', |
|
1161 'mejs.time-help-text': 'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.', |
|
1162 'mejs.live-broadcast': 'Live Broadcast', |
|
1163 |
|
1164 'mejs.volume-help-text': 'Use Up/Down Arrow keys to increase or decrease volume.', |
|
1165 'mejs.unmute': 'Unmute', |
|
1166 'mejs.mute': 'Mute', |
|
1167 'mejs.volume-slider': 'Volume Slider', |
|
1168 |
|
1169 'mejs.video-player': 'Video Player', |
|
1170 'mejs.audio-player': 'Audio Player', |
|
1171 |
|
1172 'mejs.captions-subtitles': 'Captions/Subtitles', |
|
1173 'mejs.captions-chapters': 'Chapters', |
|
1174 'mejs.none': 'None', |
|
1175 'mejs.afrikaans': 'Afrikaans', |
|
1176 'mejs.albanian': 'Albanian', |
|
1177 'mejs.arabic': 'Arabic', |
|
1178 'mejs.belarusian': 'Belarusian', |
|
1179 'mejs.bulgarian': 'Bulgarian', |
|
1180 'mejs.catalan': 'Catalan', |
|
1181 'mejs.chinese': 'Chinese', |
|
1182 'mejs.chinese-simplified': 'Chinese (Simplified)', |
|
1183 'mejs.chinese-traditional': 'Chinese (Traditional)', |
|
1184 'mejs.croatian': 'Croatian', |
|
1185 'mejs.czech': 'Czech', |
|
1186 'mejs.danish': 'Danish', |
|
1187 'mejs.dutch': 'Dutch', |
|
1188 'mejs.english': 'English', |
|
1189 'mejs.estonian': 'Estonian', |
|
1190 'mejs.filipino': 'Filipino', |
|
1191 'mejs.finnish': 'Finnish', |
|
1192 'mejs.french': 'French', |
|
1193 'mejs.galician': 'Galician', |
|
1194 'mejs.german': 'German', |
|
1195 'mejs.greek': 'Greek', |
|
1196 'mejs.haitian-creole': 'Haitian Creole', |
|
1197 'mejs.hebrew': 'Hebrew', |
|
1198 'mejs.hindi': 'Hindi', |
|
1199 'mejs.hungarian': 'Hungarian', |
|
1200 'mejs.icelandic': 'Icelandic', |
|
1201 'mejs.indonesian': 'Indonesian', |
|
1202 'mejs.irish': 'Irish', |
|
1203 'mejs.italian': 'Italian', |
|
1204 'mejs.japanese': 'Japanese', |
|
1205 'mejs.korean': 'Korean', |
|
1206 'mejs.latvian': 'Latvian', |
|
1207 'mejs.lithuanian': 'Lithuanian', |
|
1208 'mejs.macedonian': 'Macedonian', |
|
1209 'mejs.malay': 'Malay', |
|
1210 'mejs.maltese': 'Maltese', |
|
1211 'mejs.norwegian': 'Norwegian', |
|
1212 'mejs.persian': 'Persian', |
|
1213 'mejs.polish': 'Polish', |
|
1214 'mejs.portuguese': 'Portuguese', |
|
1215 'mejs.romanian': 'Romanian', |
|
1216 'mejs.russian': 'Russian', |
|
1217 'mejs.serbian': 'Serbian', |
|
1218 'mejs.slovak': 'Slovak', |
|
1219 'mejs.slovenian': 'Slovenian', |
|
1220 'mejs.spanish': 'Spanish', |
|
1221 'mejs.swahili': 'Swahili', |
|
1222 'mejs.swedish': 'Swedish', |
|
1223 'mejs.tagalog': 'Tagalog', |
|
1224 'mejs.thai': 'Thai', |
|
1225 'mejs.turkish': 'Turkish', |
|
1226 'mejs.ukrainian': 'Ukrainian', |
|
1227 'mejs.vietnamese': 'Vietnamese', |
|
1228 'mejs.welsh': 'Welsh', |
|
1229 'mejs.yiddish': 'Yiddish' |
|
1230 }; |
|
1231 |
|
1232 },{}],10:[function(_dereq_,module,exports){ |
|
1233 'use strict'; |
|
1234 |
|
1235 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; |
|
1236 |
|
1237 var _window = _dereq_(3); |
|
1238 |
|
1239 var _window2 = _interopRequireDefault(_window); |
|
1240 |
|
1241 var _mejs = _dereq_(7); |
|
1242 |
|
1243 var _mejs2 = _interopRequireDefault(_mejs); |
|
1244 |
|
1245 var _renderer = _dereq_(8); |
|
1246 |
|
1247 var _general = _dereq_(18); |
|
1248 |
|
1249 var _media = _dereq_(19); |
|
1250 |
|
1251 var _constants = _dereq_(16); |
|
1252 |
|
1253 var _dom = _dereq_(17); |
|
1254 |
|
1255 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
1256 |
|
1257 var NativeDash = { |
|
1258 |
|
1259 promise: null, |
|
1260 |
|
1261 load: function load(settings) { |
|
1262 if (typeof dashjs !== 'undefined') { |
|
1263 NativeDash.promise = new Promise(function (resolve) { |
|
1264 resolve(); |
|
1265 }).then(function () { |
|
1266 NativeDash._createPlayer(settings); |
|
1267 }); |
|
1268 } else { |
|
1269 settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.dashjs.org/latest/dash.all.min.js'; |
|
1270 |
|
1271 NativeDash.promise = NativeDash.promise || (0, _dom.loadScript)(settings.options.path); |
|
1272 NativeDash.promise.then(function () { |
|
1273 NativeDash._createPlayer(settings); |
|
1274 }); |
|
1275 } |
|
1276 |
|
1277 return NativeDash.promise; |
|
1278 }, |
|
1279 |
|
1280 _createPlayer: function _createPlayer(settings) { |
|
1281 var player = dashjs.MediaPlayer().create(); |
|
1282 _window2.default['__ready__' + settings.id](player); |
|
1283 return player; |
|
1284 } |
|
1285 }; |
|
1286 |
|
1287 var DashNativeRenderer = { |
|
1288 name: 'native_dash', |
|
1289 options: { |
|
1290 prefix: 'native_dash', |
|
1291 dash: { |
|
1292 path: 'https://cdn.dashjs.org/latest/dash.all.min.js', |
|
1293 debug: false, |
|
1294 drm: {}, |
|
1295 |
|
1296 robustnessLevel: '' |
|
1297 } |
|
1298 }, |
|
1299 |
|
1300 canPlayType: function canPlayType(type) { |
|
1301 return _constants.HAS_MSE && ['application/dash+xml'].indexOf(type.toLowerCase()) > -1; |
|
1302 }, |
|
1303 |
|
1304 create: function create(mediaElement, options, mediaFiles) { |
|
1305 |
|
1306 var originalNode = mediaElement.originalNode, |
|
1307 id = mediaElement.id + '_' + options.prefix, |
|
1308 autoplay = originalNode.autoplay, |
|
1309 children = originalNode.children; |
|
1310 |
|
1311 var node = null, |
|
1312 dashPlayer = null; |
|
1313 |
|
1314 originalNode.removeAttribute('type'); |
|
1315 for (var i = 0, total = children.length; i < total; i++) { |
|
1316 children[i].removeAttribute('type'); |
|
1317 } |
|
1318 |
|
1319 node = originalNode.cloneNode(true); |
|
1320 options = Object.assign(options, mediaElement.options); |
|
1321 |
|
1322 var props = _mejs2.default.html5media.properties, |
|
1323 events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']), |
|
1324 attachNativeEvents = function attachNativeEvents(e) { |
|
1325 if (e.type !== 'error') { |
|
1326 var _event = (0, _general.createEvent)(e.type, mediaElement); |
|
1327 mediaElement.dispatchEvent(_event); |
|
1328 } |
|
1329 }, |
|
1330 assignGettersSetters = function assignGettersSetters(propName) { |
|
1331 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); |
|
1332 |
|
1333 node['get' + capName] = function () { |
|
1334 return dashPlayer !== null ? node[propName] : null; |
|
1335 }; |
|
1336 |
|
1337 node['set' + capName] = function (value) { |
|
1338 if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) { |
|
1339 if (propName === 'src') { |
|
1340 var source = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value; |
|
1341 node[propName] = source; |
|
1342 if (dashPlayer !== null) { |
|
1343 dashPlayer.reset(); |
|
1344 for (var _i = 0, _total = events.length; _i < _total; _i++) { |
|
1345 node.removeEventListener(events[_i], attachNativeEvents); |
|
1346 } |
|
1347 dashPlayer = NativeDash._createPlayer({ |
|
1348 options: options.dash, |
|
1349 id: id |
|
1350 }); |
|
1351 |
|
1352 if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && _typeof(value.drm) === 'object') { |
|
1353 dashPlayer.setProtectionData(value.drm); |
|
1354 if ((0, _general.isString)(options.dash.robustnessLevel) && options.dash.robustnessLevel) { |
|
1355 dashPlayer.getProtectionController().setRobustnessLevel(options.dash.robustnessLevel); |
|
1356 } |
|
1357 } |
|
1358 dashPlayer.attachSource(source); |
|
1359 if (autoplay) { |
|
1360 dashPlayer.play(); |
|
1361 } |
|
1362 } |
|
1363 } else { |
|
1364 node[propName] = value; |
|
1365 } |
|
1366 } |
|
1367 }; |
|
1368 }; |
|
1369 |
|
1370 for (var _i2 = 0, _total2 = props.length; _i2 < _total2; _i2++) { |
|
1371 assignGettersSetters(props[_i2]); |
|
1372 } |
|
1373 |
|
1374 _window2.default['__ready__' + id] = function (_dashPlayer) { |
|
1375 mediaElement.dashPlayer = dashPlayer = _dashPlayer; |
|
1376 |
|
1377 var dashEvents = dashjs.MediaPlayer.events, |
|
1378 assignEvents = function assignEvents(eventName) { |
|
1379 if (eventName === 'loadedmetadata') { |
|
1380 dashPlayer.getDebug().setLogToBrowserConsole(options.dash.debug); |
|
1381 dashPlayer.initialize(); |
|
1382 dashPlayer.setScheduleWhilePaused(false); |
|
1383 dashPlayer.setFastSwitchEnabled(true); |
|
1384 dashPlayer.attachView(node); |
|
1385 dashPlayer.setAutoPlay(false); |
|
1386 |
|
1387 if (_typeof(options.dash.drm) === 'object' && !_mejs2.default.Utils.isObjectEmpty(options.dash.drm)) { |
|
1388 dashPlayer.setProtectionData(options.dash.drm); |
|
1389 if ((0, _general.isString)(options.dash.robustnessLevel) && options.dash.robustnessLevel) { |
|
1390 dashPlayer.getProtectionController().setRobustnessLevel(options.dash.robustnessLevel); |
|
1391 } |
|
1392 } |
|
1393 dashPlayer.attachSource(node.getSrc()); |
|
1394 } |
|
1395 |
|
1396 node.addEventListener(eventName, attachNativeEvents); |
|
1397 }; |
|
1398 |
|
1399 for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) { |
|
1400 assignEvents(events[_i3]); |
|
1401 } |
|
1402 |
|
1403 var assignMdashEvents = function assignMdashEvents(name, data) { |
|
1404 if (name.toLowerCase() === 'error') { |
|
1405 mediaElement.generateError(data.message, node.src); |
|
1406 console.error(data); |
|
1407 } else { |
|
1408 var _event2 = (0, _general.createEvent)(name, mediaElement); |
|
1409 _event2.data = data; |
|
1410 mediaElement.dispatchEvent(_event2); |
|
1411 } |
|
1412 }; |
|
1413 |
|
1414 for (var eventType in dashEvents) { |
|
1415 if (dashEvents.hasOwnProperty(eventType)) { |
|
1416 dashPlayer.on(dashEvents[eventType], function (e) { |
|
1417 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { |
|
1418 args[_key - 1] = arguments[_key]; |
|
1419 } |
|
1420 |
|
1421 return assignMdashEvents(e.type, args); |
|
1422 }); |
|
1423 } |
|
1424 } |
|
1425 }; |
|
1426 |
|
1427 if (mediaFiles && mediaFiles.length > 0) { |
|
1428 for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) { |
|
1429 if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) { |
|
1430 node.setAttribute('src', mediaFiles[_i4].src); |
|
1431 if (typeof mediaFiles[_i4].drm !== 'undefined') { |
|
1432 options.dash.drm = mediaFiles[_i4].drm; |
|
1433 } |
|
1434 break; |
|
1435 } |
|
1436 } |
|
1437 } |
|
1438 |
|
1439 node.setAttribute('id', id); |
|
1440 |
|
1441 originalNode.parentNode.insertBefore(node, originalNode); |
|
1442 originalNode.autoplay = false; |
|
1443 originalNode.style.display = 'none'; |
|
1444 |
|
1445 node.setSize = function (width, height) { |
|
1446 node.style.width = width + 'px'; |
|
1447 node.style.height = height + 'px'; |
|
1448 return node; |
|
1449 }; |
|
1450 |
|
1451 node.hide = function () { |
|
1452 node.pause(); |
|
1453 node.style.display = 'none'; |
|
1454 return node; |
|
1455 }; |
|
1456 |
|
1457 node.show = function () { |
|
1458 node.style.display = ''; |
|
1459 return node; |
|
1460 }; |
|
1461 |
|
1462 node.destroy = function () { |
|
1463 if (dashPlayer !== null) { |
|
1464 dashPlayer.reset(); |
|
1465 } |
|
1466 }; |
|
1467 |
|
1468 var event = (0, _general.createEvent)('rendererready', node); |
|
1469 mediaElement.dispatchEvent(event); |
|
1470 |
|
1471 mediaElement.promises.push(NativeDash.load({ |
|
1472 options: options.dash, |
|
1473 id: id |
|
1474 })); |
|
1475 |
|
1476 return node; |
|
1477 } |
|
1478 }; |
|
1479 |
|
1480 _media.typeChecks.push(function (url) { |
|
1481 return ~url.toLowerCase().indexOf('.mpd') ? 'application/dash+xml' : null; |
|
1482 }); |
|
1483 |
|
1484 _renderer.renderer.add(DashNativeRenderer); |
|
1485 |
|
1486 },{"16":16,"17":17,"18":18,"19":19,"3":3,"7":7,"8":8}],11:[function(_dereq_,module,exports){ |
|
1487 'use strict'; |
|
1488 |
|
1489 Object.defineProperty(exports, "__esModule", { |
|
1490 value: true |
|
1491 }); |
|
1492 exports.PluginDetector = undefined; |
|
1493 |
|
1494 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; |
|
1495 |
|
1496 var _window = _dereq_(3); |
|
1497 |
|
1498 var _window2 = _interopRequireDefault(_window); |
|
1499 |
|
1500 var _document = _dereq_(2); |
|
1501 |
|
1502 var _document2 = _interopRequireDefault(_document); |
|
1503 |
|
1504 var _mejs = _dereq_(7); |
|
1505 |
|
1506 var _mejs2 = _interopRequireDefault(_mejs); |
|
1507 |
|
1508 var _i18n = _dereq_(5); |
|
1509 |
|
1510 var _i18n2 = _interopRequireDefault(_i18n); |
|
1511 |
|
1512 var _renderer = _dereq_(8); |
|
1513 |
|
1514 var _general = _dereq_(18); |
|
1515 |
|
1516 var _constants = _dereq_(16); |
|
1517 |
|
1518 var _media = _dereq_(19); |
|
1519 |
|
1520 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
1521 |
|
1522 var PluginDetector = exports.PluginDetector = { |
|
1523 plugins: [], |
|
1524 |
|
1525 hasPluginVersion: function hasPluginVersion(plugin, v) { |
|
1526 var pv = PluginDetector.plugins[plugin]; |
|
1527 v[1] = v[1] || 0; |
|
1528 v[2] = v[2] || 0; |
|
1529 return pv[0] > v[0] || pv[0] === v[0] && pv[1] > v[1] || pv[0] === v[0] && pv[1] === v[1] && pv[2] >= v[2]; |
|
1530 }, |
|
1531 |
|
1532 addPlugin: function addPlugin(p, pluginName, mimeType, activeX, axDetect) { |
|
1533 PluginDetector.plugins[p] = PluginDetector.detectPlugin(pluginName, mimeType, activeX, axDetect); |
|
1534 }, |
|
1535 |
|
1536 detectPlugin: function detectPlugin(pluginName, mimeType, activeX, axDetect) { |
|
1537 |
|
1538 var version = [0, 0, 0], |
|
1539 description = void 0, |
|
1540 ax = void 0; |
|
1541 |
|
1542 if (_constants.NAV.plugins !== null && _constants.NAV.plugins !== undefined && _typeof(_constants.NAV.plugins[pluginName]) === 'object') { |
|
1543 description = _constants.NAV.plugins[pluginName].description; |
|
1544 if (description && !(typeof _constants.NAV.mimeTypes !== 'undefined' && _constants.NAV.mimeTypes[mimeType] && !_constants.NAV.mimeTypes[mimeType].enabledPlugin)) { |
|
1545 version = description.replace(pluginName, '').replace(/^\s+/, '').replace(/\sr/gi, '.').split('.'); |
|
1546 for (var i = 0, total = version.length; i < total; i++) { |
|
1547 version[i] = parseInt(version[i].match(/\d+/), 10); |
|
1548 } |
|
1549 } |
|
1550 } else if (_window2.default.ActiveXObject !== undefined) { |
|
1551 try { |
|
1552 ax = new ActiveXObject(activeX); |
|
1553 if (ax) { |
|
1554 version = axDetect(ax); |
|
1555 } |
|
1556 } catch (e) { |
|
1557 |
|
1558 } |
|
1559 } |
|
1560 return version; |
|
1561 } |
|
1562 }; |
|
1563 |
|
1564 PluginDetector.addPlugin('flash', 'Shockwave Flash', 'application/x-shockwave-flash', 'ShockwaveFlash.ShockwaveFlash', function (ax) { |
|
1565 var version = [], |
|
1566 d = ax.GetVariable("$version"); |
|
1567 |
|
1568 if (d) { |
|
1569 d = d.split(" ")[1].split(","); |
|
1570 version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; |
|
1571 } |
|
1572 return version; |
|
1573 }); |
|
1574 |
|
1575 var FlashMediaElementRenderer = { |
|
1576 create: function create(mediaElement, options, mediaFiles) { |
|
1577 |
|
1578 var flash = {}; |
|
1579 var isActive = false; |
|
1580 |
|
1581 flash.options = options; |
|
1582 flash.id = mediaElement.id + '_' + flash.options.prefix; |
|
1583 flash.mediaElement = mediaElement; |
|
1584 flash.flashState = {}; |
|
1585 flash.flashApi = null; |
|
1586 flash.flashApiStack = []; |
|
1587 |
|
1588 var props = _mejs2.default.html5media.properties, |
|
1589 assignGettersSetters = function assignGettersSetters(propName) { |
|
1590 flash.flashState[propName] = null; |
|
1591 |
|
1592 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); |
|
1593 |
|
1594 flash['get' + capName] = function () { |
|
1595 if (flash.flashApi !== null) { |
|
1596 if (typeof flash.flashApi['get_' + propName] === 'function') { |
|
1597 var value = flash.flashApi['get_' + propName](); |
|
1598 |
|
1599 if (propName === 'buffered') { |
|
1600 return { |
|
1601 start: function start() { |
|
1602 return 0; |
|
1603 }, |
|
1604 end: function end() { |
|
1605 return value; |
|
1606 }, |
|
1607 length: 1 |
|
1608 }; |
|
1609 } |
|
1610 return value; |
|
1611 } else { |
|
1612 return null; |
|
1613 } |
|
1614 } else { |
|
1615 return null; |
|
1616 } |
|
1617 }; |
|
1618 |
|
1619 flash['set' + capName] = function (value) { |
|
1620 if (propName === 'src') { |
|
1621 value = (0, _media.absolutizeUrl)(value); |
|
1622 } |
|
1623 |
|
1624 if (flash.flashApi !== null && flash.flashApi['set_' + propName] !== undefined) { |
|
1625 try { |
|
1626 flash.flashApi['set_' + propName](value); |
|
1627 } catch (e) { |
|
1628 |
|
1629 } |
|
1630 } else { |
|
1631 flash.flashApiStack.push({ |
|
1632 type: 'set', |
|
1633 propName: propName, |
|
1634 value: value |
|
1635 }); |
|
1636 } |
|
1637 }; |
|
1638 }; |
|
1639 |
|
1640 for (var i = 0, total = props.length; i < total; i++) { |
|
1641 assignGettersSetters(props[i]); |
|
1642 } |
|
1643 |
|
1644 var methods = _mejs2.default.html5media.methods, |
|
1645 assignMethods = function assignMethods(methodName) { |
|
1646 flash[methodName] = function () { |
|
1647 if (isActive) { |
|
1648 if (flash.flashApi !== null) { |
|
1649 if (flash.flashApi['fire_' + methodName]) { |
|
1650 try { |
|
1651 flash.flashApi['fire_' + methodName](); |
|
1652 } catch (e) { |
|
1653 |
|
1654 } |
|
1655 } else { |
|
1656 |
|
1657 } |
|
1658 } else { |
|
1659 flash.flashApiStack.push({ |
|
1660 type: 'call', |
|
1661 methodName: methodName |
|
1662 }); |
|
1663 } |
|
1664 } |
|
1665 }; |
|
1666 }; |
|
1667 methods.push('stop'); |
|
1668 for (var _i = 0, _total = methods.length; _i < _total; _i++) { |
|
1669 assignMethods(methods[_i]); |
|
1670 } |
|
1671 |
|
1672 var initEvents = ['rendererready']; |
|
1673 |
|
1674 for (var _i2 = 0, _total2 = initEvents.length; _i2 < _total2; _i2++) { |
|
1675 var event = (0, _general.createEvent)(initEvents[_i2], flash); |
|
1676 mediaElement.dispatchEvent(event); |
|
1677 } |
|
1678 |
|
1679 _window2.default['__ready__' + flash.id] = function () { |
|
1680 |
|
1681 flash.flashReady = true; |
|
1682 flash.flashApi = _document2.default.getElementById('__' + flash.id); |
|
1683 |
|
1684 if (flash.flashApiStack.length) { |
|
1685 for (var _i3 = 0, _total3 = flash.flashApiStack.length; _i3 < _total3; _i3++) { |
|
1686 var stackItem = flash.flashApiStack[_i3]; |
|
1687 |
|
1688 if (stackItem.type === 'set') { |
|
1689 var propName = stackItem.propName, |
|
1690 capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); |
|
1691 |
|
1692 flash['set' + capName](stackItem.value); |
|
1693 } else if (stackItem.type === 'call') { |
|
1694 flash[stackItem.methodName](); |
|
1695 } |
|
1696 } |
|
1697 } |
|
1698 }; |
|
1699 |
|
1700 _window2.default['__event__' + flash.id] = function (eventName, message) { |
|
1701 var event = (0, _general.createEvent)(eventName, flash); |
|
1702 if (message) { |
|
1703 try { |
|
1704 event.data = JSON.parse(message); |
|
1705 event.details.data = JSON.parse(message); |
|
1706 } catch (e) { |
|
1707 event.message = message; |
|
1708 } |
|
1709 } |
|
1710 |
|
1711 flash.mediaElement.dispatchEvent(event); |
|
1712 }; |
|
1713 |
|
1714 flash.flashWrapper = _document2.default.createElement('div'); |
|
1715 |
|
1716 if (['always', 'sameDomain'].indexOf(flash.options.shimScriptAccess) === -1) { |
|
1717 flash.options.shimScriptAccess = 'sameDomain'; |
|
1718 } |
|
1719 |
|
1720 var autoplay = mediaElement.originalNode.autoplay, |
|
1721 flashVars = ['uid=' + flash.id, 'autoplay=' + autoplay, 'allowScriptAccess=' + flash.options.shimScriptAccess, 'preload=' + (mediaElement.originalNode.getAttribute('preload') || '')], |
|
1722 isVideo = mediaElement.originalNode !== null && mediaElement.originalNode.tagName.toLowerCase() === 'video', |
|
1723 flashHeight = isVideo ? mediaElement.originalNode.height : 1, |
|
1724 flashWidth = isVideo ? mediaElement.originalNode.width : 1; |
|
1725 |
|
1726 if (mediaElement.originalNode.getAttribute('src')) { |
|
1727 flashVars.push('src=' + mediaElement.originalNode.getAttribute('src')); |
|
1728 } |
|
1729 |
|
1730 if (flash.options.enablePseudoStreaming === true) { |
|
1731 flashVars.push('pseudostreamstart=' + flash.options.pseudoStreamingStartQueryParam); |
|
1732 flashVars.push('pseudostreamtype=' + flash.options.pseudoStreamingType); |
|
1733 } |
|
1734 |
|
1735 if (flash.options.streamDelimiter) { |
|
1736 flashVars.push('streamdelimiter=' + encodeURIComponent(flash.options.streamDelimiter)); |
|
1737 } |
|
1738 |
|
1739 if (flash.options.proxyType) { |
|
1740 flashVars.push('proxytype=' + flash.options.proxyType); |
|
1741 } |
|
1742 |
|
1743 mediaElement.appendChild(flash.flashWrapper); |
|
1744 mediaElement.originalNode.style.display = 'none'; |
|
1745 |
|
1746 var settings = []; |
|
1747 |
|
1748 if (_constants.IS_IE || _constants.IS_EDGE) { |
|
1749 var specialIEContainer = _document2.default.createElement('div'); |
|
1750 flash.flashWrapper.appendChild(specialIEContainer); |
|
1751 |
|
1752 if (_constants.IS_EDGE) { |
|
1753 settings = ['type="application/x-shockwave-flash"', 'data="' + flash.options.pluginPath + flash.options.filename + '"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '\'"']; |
|
1754 } else { |
|
1755 settings = ['classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"', 'codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '"']; |
|
1756 } |
|
1757 |
|
1758 if (!isVideo) { |
|
1759 settings.push('style="clip: rect(0 0 0 0); position: absolute;"'); |
|
1760 } |
|
1761 |
|
1762 specialIEContainer.outerHTML = '<object ' + settings.join(' ') + '>' + ('<param name="movie" value="' + flash.options.pluginPath + flash.options.filename + '?x=' + new Date() + '" />') + ('<param name="flashvars" value="' + flashVars.join('&') + '" />') + '<param name="quality" value="high" />' + '<param name="bgcolor" value="#000000" />' + '<param name="wmode" value="transparent" />' + ('<param name="allowScriptAccess" value="' + flash.options.shimScriptAccess + '" />') + '<param name="allowFullScreen" value="true" />' + ('<div>' + _i18n2.default.t('mejs.install-flash') + '</div>') + '</object>'; |
|
1763 } else { |
|
1764 |
|
1765 settings = ['id="__' + flash.id + '"', 'name="__' + flash.id + '"', 'play="true"', 'loop="false"', 'quality="high"', 'bgcolor="#000000"', 'wmode="transparent"', 'allowScriptAccess="' + flash.options.shimScriptAccess + '"', 'allowFullScreen="true"', 'type="application/x-shockwave-flash"', 'pluginspage="//www.macromedia.com/go/getflashplayer"', 'src="' + flash.options.pluginPath + flash.options.filename + '"', 'flashvars="' + flashVars.join('&') + '"']; |
|
1766 |
|
1767 if (isVideo) { |
|
1768 settings.push('width="' + flashWidth + '"'); |
|
1769 settings.push('height="' + flashHeight + '"'); |
|
1770 } else { |
|
1771 settings.push('style="position: fixed; left: -9999em; top: -9999em;"'); |
|
1772 } |
|
1773 |
|
1774 flash.flashWrapper.innerHTML = '<embed ' + settings.join(' ') + '>'; |
|
1775 } |
|
1776 |
|
1777 flash.flashNode = flash.flashWrapper.lastChild; |
|
1778 |
|
1779 flash.hide = function () { |
|
1780 isActive = false; |
|
1781 if (isVideo) { |
|
1782 flash.flashNode.style.display = 'none'; |
|
1783 } |
|
1784 }; |
|
1785 flash.show = function () { |
|
1786 isActive = true; |
|
1787 if (isVideo) { |
|
1788 flash.flashNode.style.display = ''; |
|
1789 } |
|
1790 }; |
|
1791 flash.setSize = function (width, height) { |
|
1792 flash.flashNode.style.width = width + 'px'; |
|
1793 flash.flashNode.style.height = height + 'px'; |
|
1794 |
|
1795 if (flash.flashApi !== null && typeof flash.flashApi.fire_setSize === 'function') { |
|
1796 flash.flashApi.fire_setSize(width, height); |
|
1797 } |
|
1798 }; |
|
1799 |
|
1800 flash.destroy = function () { |
|
1801 flash.flashNode.remove(); |
|
1802 }; |
|
1803 |
|
1804 if (mediaFiles && mediaFiles.length > 0) { |
|
1805 for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) { |
|
1806 if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) { |
|
1807 flash.setSrc(mediaFiles[_i4].src); |
|
1808 break; |
|
1809 } |
|
1810 } |
|
1811 } |
|
1812 |
|
1813 return flash; |
|
1814 } |
|
1815 }; |
|
1816 |
|
1817 var hasFlash = PluginDetector.hasPluginVersion('flash', [10, 0, 0]); |
|
1818 |
|
1819 if (hasFlash) { |
|
1820 _media.typeChecks.push(function (url) { |
|
1821 url = url.toLowerCase(); |
|
1822 |
|
1823 if (url.startsWith('rtmp')) { |
|
1824 if (~url.indexOf('.mp3')) { |
|
1825 return 'audio/rtmp'; |
|
1826 } else { |
|
1827 return 'video/rtmp'; |
|
1828 } |
|
1829 } else if (/\.og(a|g)/i.test(url)) { |
|
1830 return 'audio/ogg'; |
|
1831 } else if (~url.indexOf('.m3u8')) { |
|
1832 return 'application/x-mpegURL'; |
|
1833 } else if (~url.indexOf('.mpd')) { |
|
1834 return 'application/dash+xml'; |
|
1835 } else if (~url.indexOf('.flv')) { |
|
1836 return 'video/flv'; |
|
1837 } else { |
|
1838 return null; |
|
1839 } |
|
1840 }); |
|
1841 |
|
1842 var FlashMediaElementVideoRenderer = { |
|
1843 name: 'flash_video', |
|
1844 options: { |
|
1845 prefix: 'flash_video', |
|
1846 filename: 'mediaelement-flash-video.swf', |
|
1847 enablePseudoStreaming: false, |
|
1848 |
|
1849 pseudoStreamingStartQueryParam: 'start', |
|
1850 |
|
1851 pseudoStreamingType: 'byte', |
|
1852 |
|
1853 proxyType: '', |
|
1854 |
|
1855 streamDelimiter: '' |
|
1856 }, |
|
1857 |
|
1858 canPlayType: function canPlayType(type) { |
|
1859 return ~['video/mp4', 'video/rtmp', 'audio/rtmp', 'rtmp/mp4', 'audio/mp4', 'video/flv', 'video/x-flv'].indexOf(type.toLowerCase()); |
|
1860 }, |
|
1861 |
|
1862 create: FlashMediaElementRenderer.create |
|
1863 |
|
1864 }; |
|
1865 _renderer.renderer.add(FlashMediaElementVideoRenderer); |
|
1866 |
|
1867 var FlashMediaElementHlsVideoRenderer = { |
|
1868 name: 'flash_hls', |
|
1869 options: { |
|
1870 prefix: 'flash_hls', |
|
1871 filename: 'mediaelement-flash-video-hls.swf' |
|
1872 }, |
|
1873 |
|
1874 canPlayType: function canPlayType(type) { |
|
1875 return ~['application/x-mpegurl', 'application/vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()); |
|
1876 }, |
|
1877 |
|
1878 create: FlashMediaElementRenderer.create |
|
1879 }; |
|
1880 _renderer.renderer.add(FlashMediaElementHlsVideoRenderer); |
|
1881 |
|
1882 var FlashMediaElementMdashVideoRenderer = { |
|
1883 name: 'flash_dash', |
|
1884 options: { |
|
1885 prefix: 'flash_dash', |
|
1886 filename: 'mediaelement-flash-video-mdash.swf' |
|
1887 }, |
|
1888 |
|
1889 canPlayType: function canPlayType(type) { |
|
1890 return ~['application/dash+xml'].indexOf(type.toLowerCase()); |
|
1891 }, |
|
1892 |
|
1893 create: FlashMediaElementRenderer.create |
|
1894 }; |
|
1895 _renderer.renderer.add(FlashMediaElementMdashVideoRenderer); |
|
1896 |
|
1897 var FlashMediaElementAudioRenderer = { |
|
1898 name: 'flash_audio', |
|
1899 options: { |
|
1900 prefix: 'flash_audio', |
|
1901 filename: 'mediaelement-flash-audio.swf' |
|
1902 }, |
|
1903 |
|
1904 canPlayType: function canPlayType(type) { |
|
1905 return ~['audio/mp3'].indexOf(type.toLowerCase()); |
|
1906 }, |
|
1907 |
|
1908 create: FlashMediaElementRenderer.create |
|
1909 }; |
|
1910 _renderer.renderer.add(FlashMediaElementAudioRenderer); |
|
1911 |
|
1912 var FlashMediaElementAudioOggRenderer = { |
|
1913 name: 'flash_audio_ogg', |
|
1914 options: { |
|
1915 prefix: 'flash_audio_ogg', |
|
1916 filename: 'mediaelement-flash-audio-ogg.swf' |
|
1917 }, |
|
1918 |
|
1919 canPlayType: function canPlayType(type) { |
|
1920 return ~['audio/ogg', 'audio/oga', 'audio/ogv'].indexOf(type.toLowerCase()); |
|
1921 }, |
|
1922 |
|
1923 create: FlashMediaElementRenderer.create |
|
1924 }; |
|
1925 _renderer.renderer.add(FlashMediaElementAudioOggRenderer); |
|
1926 } |
|
1927 |
|
1928 },{"16":16,"18":18,"19":19,"2":2,"3":3,"5":5,"7":7,"8":8}],12:[function(_dereq_,module,exports){ |
|
1929 'use strict'; |
|
1930 |
|
1931 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; |
|
1932 |
|
1933 var _window = _dereq_(3); |
|
1934 |
|
1935 var _window2 = _interopRequireDefault(_window); |
|
1936 |
|
1937 var _mejs = _dereq_(7); |
|
1938 |
|
1939 var _mejs2 = _interopRequireDefault(_mejs); |
|
1940 |
|
1941 var _renderer = _dereq_(8); |
|
1942 |
|
1943 var _general = _dereq_(18); |
|
1944 |
|
1945 var _constants = _dereq_(16); |
|
1946 |
|
1947 var _media = _dereq_(19); |
|
1948 |
|
1949 var _dom = _dereq_(17); |
|
1950 |
|
1951 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
1952 |
|
1953 var NativeFlv = { |
|
1954 |
|
1955 promise: null, |
|
1956 |
|
1957 load: function load(settings) { |
|
1958 if (typeof flvjs !== 'undefined') { |
|
1959 NativeFlv.promise = new Promise(function (resolve) { |
|
1960 resolve(); |
|
1961 }).then(function () { |
|
1962 NativeFlv._createPlayer(settings); |
|
1963 }); |
|
1964 } else { |
|
1965 settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.3.3/flv.min.js'; |
|
1966 |
|
1967 NativeFlv.promise = NativeFlv.promise || (0, _dom.loadScript)(settings.options.path); |
|
1968 NativeFlv.promise.then(function () { |
|
1969 NativeFlv._createPlayer(settings); |
|
1970 }); |
|
1971 } |
|
1972 |
|
1973 return NativeFlv.promise; |
|
1974 }, |
|
1975 |
|
1976 _createPlayer: function _createPlayer(settings) { |
|
1977 flvjs.LoggingControl.enableDebug = settings.options.debug; |
|
1978 flvjs.LoggingControl.enableVerbose = settings.options.debug; |
|
1979 var player = flvjs.createPlayer(settings.options, settings.configs); |
|
1980 _window2.default['__ready__' + settings.id](player); |
|
1981 return player; |
|
1982 } |
|
1983 }; |
|
1984 |
|
1985 var FlvNativeRenderer = { |
|
1986 name: 'native_flv', |
|
1987 options: { |
|
1988 prefix: 'native_flv', |
|
1989 flv: { |
|
1990 path: 'https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.3.3/flv.min.js', |
|
1991 |
|
1992 cors: true, |
|
1993 debug: false |
|
1994 } |
|
1995 }, |
|
1996 |
|
1997 canPlayType: function canPlayType(type) { |
|
1998 return _constants.HAS_MSE && ['video/x-flv', 'video/flv'].indexOf(type.toLowerCase()) > -1; |
|
1999 }, |
|
2000 |
|
2001 create: function create(mediaElement, options, mediaFiles) { |
|
2002 |
|
2003 var originalNode = mediaElement.originalNode, |
|
2004 id = mediaElement.id + '_' + options.prefix; |
|
2005 |
|
2006 var node = null, |
|
2007 flvPlayer = null; |
|
2008 |
|
2009 node = originalNode.cloneNode(true); |
|
2010 options = Object.assign(options, mediaElement.options); |
|
2011 |
|
2012 var props = _mejs2.default.html5media.properties, |
|
2013 events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']), |
|
2014 attachNativeEvents = function attachNativeEvents(e) { |
|
2015 if (e.type !== 'error') { |
|
2016 var _event = (0, _general.createEvent)(e.type, mediaElement); |
|
2017 mediaElement.dispatchEvent(_event); |
|
2018 } |
|
2019 }, |
|
2020 assignGettersSetters = function assignGettersSetters(propName) { |
|
2021 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); |
|
2022 |
|
2023 node['get' + capName] = function () { |
|
2024 return flvPlayer !== null ? node[propName] : null; |
|
2025 }; |
|
2026 |
|
2027 node['set' + capName] = function (value) { |
|
2028 if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) { |
|
2029 if (propName === 'src') { |
|
2030 node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value; |
|
2031 if (flvPlayer !== null) { |
|
2032 var _flvOptions = {}; |
|
2033 _flvOptions.type = 'flv'; |
|
2034 _flvOptions.url = value; |
|
2035 _flvOptions.cors = options.flv.cors; |
|
2036 _flvOptions.debug = options.flv.debug; |
|
2037 _flvOptions.path = options.flv.path; |
|
2038 var _flvConfigs = options.flv.configs; |
|
2039 |
|
2040 flvPlayer.destroy(); |
|
2041 for (var i = 0, total = events.length; i < total; i++) { |
|
2042 node.removeEventListener(events[i], attachNativeEvents); |
|
2043 } |
|
2044 flvPlayer = NativeFlv._createPlayer({ |
|
2045 options: _flvOptions, |
|
2046 configs: _flvConfigs, |
|
2047 id: id |
|
2048 }); |
|
2049 flvPlayer.attachMediaElement(node); |
|
2050 flvPlayer.load(); |
|
2051 } |
|
2052 } else { |
|
2053 node[propName] = value; |
|
2054 } |
|
2055 } |
|
2056 }; |
|
2057 }; |
|
2058 |
|
2059 for (var i = 0, total = props.length; i < total; i++) { |
|
2060 assignGettersSetters(props[i]); |
|
2061 } |
|
2062 |
|
2063 _window2.default['__ready__' + id] = function (_flvPlayer) { |
|
2064 mediaElement.flvPlayer = flvPlayer = _flvPlayer; |
|
2065 |
|
2066 var flvEvents = flvjs.Events, |
|
2067 assignEvents = function assignEvents(eventName) { |
|
2068 if (eventName === 'loadedmetadata') { |
|
2069 flvPlayer.unload(); |
|
2070 flvPlayer.detachMediaElement(); |
|
2071 flvPlayer.attachMediaElement(node); |
|
2072 flvPlayer.load(); |
|
2073 } |
|
2074 |
|
2075 node.addEventListener(eventName, attachNativeEvents); |
|
2076 }; |
|
2077 |
|
2078 for (var _i = 0, _total = events.length; _i < _total; _i++) { |
|
2079 assignEvents(events[_i]); |
|
2080 } |
|
2081 |
|
2082 var assignFlvEvents = function assignFlvEvents(name, data) { |
|
2083 if (name === 'error') { |
|
2084 var message = data[0] + ': ' + data[1] + ' ' + data[2].msg; |
|
2085 mediaElement.generateError(message, node.src); |
|
2086 } else { |
|
2087 var _event2 = (0, _general.createEvent)(name, mediaElement); |
|
2088 _event2.data = data; |
|
2089 mediaElement.dispatchEvent(_event2); |
|
2090 } |
|
2091 }; |
|
2092 |
|
2093 var _loop = function _loop(eventType) { |
|
2094 if (flvEvents.hasOwnProperty(eventType)) { |
|
2095 flvPlayer.on(flvEvents[eventType], function () { |
|
2096 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { |
|
2097 args[_key] = arguments[_key]; |
|
2098 } |
|
2099 |
|
2100 return assignFlvEvents(flvEvents[eventType], args); |
|
2101 }); |
|
2102 } |
|
2103 }; |
|
2104 |
|
2105 for (var eventType in flvEvents) { |
|
2106 _loop(eventType); |
|
2107 } |
|
2108 }; |
|
2109 |
|
2110 if (mediaFiles && mediaFiles.length > 0) { |
|
2111 for (var _i2 = 0, _total2 = mediaFiles.length; _i2 < _total2; _i2++) { |
|
2112 if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i2].type)) { |
|
2113 node.setAttribute('src', mediaFiles[_i2].src); |
|
2114 break; |
|
2115 } |
|
2116 } |
|
2117 } |
|
2118 |
|
2119 node.setAttribute('id', id); |
|
2120 |
|
2121 originalNode.parentNode.insertBefore(node, originalNode); |
|
2122 originalNode.autoplay = false; |
|
2123 originalNode.style.display = 'none'; |
|
2124 |
|
2125 var flvOptions = {}; |
|
2126 flvOptions.type = 'flv'; |
|
2127 flvOptions.url = node.src; |
|
2128 flvOptions.cors = options.flv.cors; |
|
2129 flvOptions.debug = options.flv.debug; |
|
2130 flvOptions.path = options.flv.path; |
|
2131 var flvConfigs = options.flv.configs; |
|
2132 |
|
2133 node.setSize = function (width, height) { |
|
2134 node.style.width = width + 'px'; |
|
2135 node.style.height = height + 'px'; |
|
2136 return node; |
|
2137 }; |
|
2138 |
|
2139 node.hide = function () { |
|
2140 if (flvPlayer !== null) { |
|
2141 flvPlayer.pause(); |
|
2142 } |
|
2143 node.style.display = 'none'; |
|
2144 return node; |
|
2145 }; |
|
2146 |
|
2147 node.show = function () { |
|
2148 node.style.display = ''; |
|
2149 return node; |
|
2150 }; |
|
2151 |
|
2152 node.destroy = function () { |
|
2153 if (flvPlayer !== null) { |
|
2154 flvPlayer.destroy(); |
|
2155 } |
|
2156 }; |
|
2157 |
|
2158 var event = (0, _general.createEvent)('rendererready', node); |
|
2159 mediaElement.dispatchEvent(event); |
|
2160 |
|
2161 mediaElement.promises.push(NativeFlv.load({ |
|
2162 options: flvOptions, |
|
2163 configs: flvConfigs, |
|
2164 id: id |
|
2165 })); |
|
2166 |
|
2167 return node; |
|
2168 } |
|
2169 }; |
|
2170 |
|
2171 _media.typeChecks.push(function (url) { |
|
2172 return ~url.toLowerCase().indexOf('.flv') ? 'video/flv' : null; |
|
2173 }); |
|
2174 |
|
2175 _renderer.renderer.add(FlvNativeRenderer); |
|
2176 |
|
2177 },{"16":16,"17":17,"18":18,"19":19,"3":3,"7":7,"8":8}],13:[function(_dereq_,module,exports){ |
|
2178 'use strict'; |
|
2179 |
|
2180 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; |
|
2181 |
|
2182 var _window = _dereq_(3); |
|
2183 |
|
2184 var _window2 = _interopRequireDefault(_window); |
|
2185 |
|
2186 var _mejs = _dereq_(7); |
|
2187 |
|
2188 var _mejs2 = _interopRequireDefault(_mejs); |
|
2189 |
|
2190 var _renderer = _dereq_(8); |
|
2191 |
|
2192 var _general = _dereq_(18); |
|
2193 |
|
2194 var _constants = _dereq_(16); |
|
2195 |
|
2196 var _media = _dereq_(19); |
|
2197 |
|
2198 var _dom = _dereq_(17); |
|
2199 |
|
2200 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
2201 |
|
2202 var NativeHls = { |
|
2203 |
|
2204 promise: null, |
|
2205 |
|
2206 load: function load(settings) { |
|
2207 if (typeof Hls !== 'undefined') { |
|
2208 NativeHls.promise = new Promise(function (resolve) { |
|
2209 resolve(); |
|
2210 }).then(function () { |
|
2211 NativeHls._createPlayer(settings); |
|
2212 }); |
|
2213 } else { |
|
2214 settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.8.4/hls.min.js'; |
|
2215 |
|
2216 NativeHls.promise = NativeHls.promise || (0, _dom.loadScript)(settings.options.path); |
|
2217 NativeHls.promise.then(function () { |
|
2218 NativeHls._createPlayer(settings); |
|
2219 }); |
|
2220 } |
|
2221 |
|
2222 return NativeHls.promise; |
|
2223 }, |
|
2224 |
|
2225 _createPlayer: function _createPlayer(settings) { |
|
2226 var player = new Hls(settings.options); |
|
2227 _window2.default['__ready__' + settings.id](player); |
|
2228 return player; |
|
2229 } |
|
2230 }; |
|
2231 |
|
2232 var HlsNativeRenderer = { |
|
2233 name: 'native_hls', |
|
2234 options: { |
|
2235 prefix: 'native_hls', |
|
2236 hls: { |
|
2237 path: 'https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.8.4/hls.min.js', |
|
2238 |
|
2239 autoStartLoad: false, |
|
2240 debug: false |
|
2241 } |
|
2242 }, |
|
2243 |
|
2244 canPlayType: function canPlayType(type) { |
|
2245 return _constants.HAS_MSE && ['application/x-mpegurl', 'application/vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()) > -1; |
|
2246 }, |
|
2247 |
|
2248 create: function create(mediaElement, options, mediaFiles) { |
|
2249 |
|
2250 var originalNode = mediaElement.originalNode, |
|
2251 id = mediaElement.id + '_' + options.prefix, |
|
2252 preload = originalNode.getAttribute('preload'), |
|
2253 autoplay = originalNode.autoplay; |
|
2254 |
|
2255 var hlsPlayer = null, |
|
2256 node = null, |
|
2257 index = 0, |
|
2258 total = mediaFiles.length; |
|
2259 |
|
2260 node = originalNode.cloneNode(true); |
|
2261 options = Object.assign(options, mediaElement.options); |
|
2262 options.hls.autoStartLoad = preload && preload !== 'none' || autoplay; |
|
2263 |
|
2264 var props = _mejs2.default.html5media.properties, |
|
2265 events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']), |
|
2266 attachNativeEvents = function attachNativeEvents(e) { |
|
2267 if (e.type !== 'error') { |
|
2268 var _event = (0, _general.createEvent)(e.type, mediaElement); |
|
2269 mediaElement.dispatchEvent(_event); |
|
2270 } |
|
2271 }, |
|
2272 assignGettersSetters = function assignGettersSetters(propName) { |
|
2273 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); |
|
2274 |
|
2275 node['get' + capName] = function () { |
|
2276 return hlsPlayer !== null ? node[propName] : null; |
|
2277 }; |
|
2278 |
|
2279 node['set' + capName] = function (value) { |
|
2280 if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) { |
|
2281 if (propName === 'src') { |
|
2282 node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value; |
|
2283 if (hlsPlayer !== null) { |
|
2284 hlsPlayer.destroy(); |
|
2285 for (var i = 0, _total = events.length; i < _total; i++) { |
|
2286 node.removeEventListener(events[i], attachNativeEvents); |
|
2287 } |
|
2288 hlsPlayer = NativeHls._createPlayer({ |
|
2289 options: options.hls, |
|
2290 id: id |
|
2291 }); |
|
2292 hlsPlayer.loadSource(value); |
|
2293 hlsPlayer.attachMedia(node); |
|
2294 } |
|
2295 } else { |
|
2296 node[propName] = value; |
|
2297 } |
|
2298 } |
|
2299 }; |
|
2300 }; |
|
2301 |
|
2302 for (var i = 0, _total2 = props.length; i < _total2; i++) { |
|
2303 assignGettersSetters(props[i]); |
|
2304 } |
|
2305 |
|
2306 _window2.default['__ready__' + id] = function (_hlsPlayer) { |
|
2307 mediaElement.hlsPlayer = hlsPlayer = _hlsPlayer; |
|
2308 var hlsEvents = Hls.Events, |
|
2309 assignEvents = function assignEvents(eventName) { |
|
2310 if (eventName === 'loadedmetadata') { |
|
2311 var url = mediaElement.originalNode.src; |
|
2312 hlsPlayer.detachMedia(); |
|
2313 hlsPlayer.loadSource(url); |
|
2314 hlsPlayer.attachMedia(node); |
|
2315 } |
|
2316 |
|
2317 node.addEventListener(eventName, attachNativeEvents); |
|
2318 }; |
|
2319 |
|
2320 for (var _i = 0, _total3 = events.length; _i < _total3; _i++) { |
|
2321 assignEvents(events[_i]); |
|
2322 } |
|
2323 |
|
2324 var recoverDecodingErrorDate = void 0, |
|
2325 recoverSwapAudioCodecDate = void 0; |
|
2326 var assignHlsEvents = function assignHlsEvents(name, data) { |
|
2327 if (name === 'hlsError') { |
|
2328 console.warn(data); |
|
2329 data = data[1]; |
|
2330 |
|
2331 if (data.fatal) { |
|
2332 switch (data.type) { |
|
2333 case 'mediaError': |
|
2334 var now = new Date().getTime(); |
|
2335 if (!recoverDecodingErrorDate || now - recoverDecodingErrorDate > 3000) { |
|
2336 recoverDecodingErrorDate = new Date().getTime(); |
|
2337 hlsPlayer.recoverMediaError(); |
|
2338 } else if (!recoverSwapAudioCodecDate || now - recoverSwapAudioCodecDate > 3000) { |
|
2339 recoverSwapAudioCodecDate = new Date().getTime(); |
|
2340 console.warn('Attempting to swap Audio Codec and recover from media error'); |
|
2341 hlsPlayer.swapAudioCodec(); |
|
2342 hlsPlayer.recoverMediaError(); |
|
2343 } else { |
|
2344 var message = 'Cannot recover, last media error recovery failed'; |
|
2345 mediaElement.generateError(message, node.src); |
|
2346 console.error(message); |
|
2347 } |
|
2348 break; |
|
2349 case 'networkError': |
|
2350 if (data.details === 'manifestLoadError') { |
|
2351 if (index < total && mediaFiles[index + 1] !== undefined) { |
|
2352 node.setSrc(mediaFiles[index++].src); |
|
2353 node.load(); |
|
2354 node.play(); |
|
2355 } else { |
|
2356 var _message = 'Network error'; |
|
2357 mediaElement.generateError(_message, mediaFiles); |
|
2358 console.error(_message); |
|
2359 } |
|
2360 } else { |
|
2361 var _message2 = 'Network error'; |
|
2362 mediaElement.generateError(_message2, mediaFiles); |
|
2363 console.error(_message2); |
|
2364 } |
|
2365 break; |
|
2366 default: |
|
2367 hlsPlayer.destroy(); |
|
2368 break; |
|
2369 } |
|
2370 } |
|
2371 } else { |
|
2372 var _event2 = (0, _general.createEvent)(name, mediaElement); |
|
2373 _event2.data = data; |
|
2374 mediaElement.dispatchEvent(_event2); |
|
2375 } |
|
2376 }; |
|
2377 |
|
2378 var _loop = function _loop(eventType) { |
|
2379 if (hlsEvents.hasOwnProperty(eventType)) { |
|
2380 hlsPlayer.on(hlsEvents[eventType], function () { |
|
2381 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { |
|
2382 args[_key] = arguments[_key]; |
|
2383 } |
|
2384 |
|
2385 return assignHlsEvents(hlsEvents[eventType], args); |
|
2386 }); |
|
2387 } |
|
2388 }; |
|
2389 |
|
2390 for (var eventType in hlsEvents) { |
|
2391 _loop(eventType); |
|
2392 } |
|
2393 }; |
|
2394 |
|
2395 if (total > 0) { |
|
2396 for (; index < total; index++) { |
|
2397 if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[index].type)) { |
|
2398 node.setAttribute('src', mediaFiles[index].src); |
|
2399 break; |
|
2400 } |
|
2401 } |
|
2402 } |
|
2403 |
|
2404 if (preload !== 'auto' && !autoplay) { |
|
2405 node.addEventListener('play', function () { |
|
2406 if (hlsPlayer !== null) { |
|
2407 hlsPlayer.startLoad(); |
|
2408 } |
|
2409 }); |
|
2410 |
|
2411 node.addEventListener('pause', function () { |
|
2412 if (hlsPlayer !== null) { |
|
2413 hlsPlayer.stopLoad(); |
|
2414 } |
|
2415 }); |
|
2416 } |
|
2417 |
|
2418 node.setAttribute('id', id); |
|
2419 |
|
2420 originalNode.parentNode.insertBefore(node, originalNode); |
|
2421 originalNode.autoplay = false; |
|
2422 originalNode.style.display = 'none'; |
|
2423 |
|
2424 node.setSize = function (width, height) { |
|
2425 node.style.width = width + 'px'; |
|
2426 node.style.height = height + 'px'; |
|
2427 return node; |
|
2428 }; |
|
2429 |
|
2430 node.hide = function () { |
|
2431 node.pause(); |
|
2432 node.style.display = 'none'; |
|
2433 return node; |
|
2434 }; |
|
2435 |
|
2436 node.show = function () { |
|
2437 node.style.display = ''; |
|
2438 return node; |
|
2439 }; |
|
2440 |
|
2441 node.destroy = function () { |
|
2442 if (hlsPlayer !== null) { |
|
2443 hlsPlayer.stopLoad(); |
|
2444 hlsPlayer.destroy(); |
|
2445 } |
|
2446 }; |
|
2447 |
|
2448 var event = (0, _general.createEvent)('rendererready', node); |
|
2449 mediaElement.dispatchEvent(event); |
|
2450 |
|
2451 mediaElement.promises.push(NativeHls.load({ |
|
2452 options: options.hls, |
|
2453 id: id |
|
2454 })); |
|
2455 |
|
2456 return node; |
|
2457 } |
|
2458 }; |
|
2459 |
|
2460 _media.typeChecks.push(function (url) { |
|
2461 return ~url.toLowerCase().indexOf('.m3u8') ? 'application/x-mpegURL' : null; |
|
2462 }); |
|
2463 |
|
2464 _renderer.renderer.add(HlsNativeRenderer); |
|
2465 |
|
2466 },{"16":16,"17":17,"18":18,"19":19,"3":3,"7":7,"8":8}],14:[function(_dereq_,module,exports){ |
|
2467 'use strict'; |
|
2468 |
|
2469 var _window = _dereq_(3); |
|
2470 |
|
2471 var _window2 = _interopRequireDefault(_window); |
|
2472 |
|
2473 var _document = _dereq_(2); |
|
2474 |
|
2475 var _document2 = _interopRequireDefault(_document); |
|
2476 |
|
2477 var _mejs = _dereq_(7); |
|
2478 |
|
2479 var _mejs2 = _interopRequireDefault(_mejs); |
|
2480 |
|
2481 var _renderer = _dereq_(8); |
|
2482 |
|
2483 var _general = _dereq_(18); |
|
2484 |
|
2485 var _constants = _dereq_(16); |
|
2486 |
|
2487 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
2488 |
|
2489 var HtmlMediaElement = { |
|
2490 name: 'html5', |
|
2491 options: { |
|
2492 prefix: 'html5' |
|
2493 }, |
|
2494 |
|
2495 canPlayType: function canPlayType(type) { |
|
2496 |
|
2497 var mediaElement = _document2.default.createElement('video'); |
|
2498 |
|
2499 if (_constants.IS_ANDROID && /\/mp(3|4)$/i.test(type) || ~['application/x-mpegurl', 'vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()) && _constants.SUPPORTS_NATIVE_HLS) { |
|
2500 return 'yes'; |
|
2501 } else if (mediaElement.canPlayType) { |
|
2502 return mediaElement.canPlayType(type.toLowerCase()).replace(/no/, ''); |
|
2503 } else { |
|
2504 return ''; |
|
2505 } |
|
2506 }, |
|
2507 |
|
2508 create: function create(mediaElement, options, mediaFiles) { |
|
2509 |
|
2510 var id = mediaElement.id + '_' + options.prefix; |
|
2511 var isActive = false; |
|
2512 |
|
2513 var node = null; |
|
2514 |
|
2515 if (mediaElement.originalNode === undefined || mediaElement.originalNode === null) { |
|
2516 node = _document2.default.createElement('audio'); |
|
2517 mediaElement.appendChild(node); |
|
2518 } else { |
|
2519 node = mediaElement.originalNode; |
|
2520 } |
|
2521 |
|
2522 node.setAttribute('id', id); |
|
2523 |
|
2524 var props = _mejs2.default.html5media.properties, |
|
2525 assignGettersSetters = function assignGettersSetters(propName) { |
|
2526 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); |
|
2527 |
|
2528 node['get' + capName] = function () { |
|
2529 return node[propName]; |
|
2530 }; |
|
2531 |
|
2532 node['set' + capName] = function (value) { |
|
2533 if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) { |
|
2534 node[propName] = value; |
|
2535 } |
|
2536 }; |
|
2537 }; |
|
2538 |
|
2539 for (var i = 0, _total = props.length; i < _total; i++) { |
|
2540 assignGettersSetters(props[i]); |
|
2541 } |
|
2542 |
|
2543 var events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']), |
|
2544 assignEvents = function assignEvents(eventName) { |
|
2545 node.addEventListener(eventName, function (e) { |
|
2546 if (isActive) { |
|
2547 var _event = (0, _general.createEvent)(e.type, e.target); |
|
2548 mediaElement.dispatchEvent(_event); |
|
2549 } |
|
2550 }); |
|
2551 }; |
|
2552 |
|
2553 for (var _i = 0, _total2 = events.length; _i < _total2; _i++) { |
|
2554 assignEvents(events[_i]); |
|
2555 } |
|
2556 |
|
2557 node.setSize = function (width, height) { |
|
2558 node.style.width = width + 'px'; |
|
2559 node.style.height = height + 'px'; |
|
2560 return node; |
|
2561 }; |
|
2562 |
|
2563 node.hide = function () { |
|
2564 isActive = false; |
|
2565 node.style.display = 'none'; |
|
2566 |
|
2567 return node; |
|
2568 }; |
|
2569 |
|
2570 node.show = function () { |
|
2571 isActive = true; |
|
2572 node.style.display = ''; |
|
2573 |
|
2574 return node; |
|
2575 }; |
|
2576 |
|
2577 var index = 0, |
|
2578 total = mediaFiles.length; |
|
2579 if (total > 0) { |
|
2580 for (; index < total; index++) { |
|
2581 if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[index].type)) { |
|
2582 node.setAttribute('src', mediaFiles[index].src); |
|
2583 break; |
|
2584 } |
|
2585 } |
|
2586 } |
|
2587 |
|
2588 node.addEventListener('error', function (e) { |
|
2589 if (e.target.error.code === 4 && isActive) { |
|
2590 if (index < total && mediaFiles[index + 1] !== undefined) { |
|
2591 node.src = mediaFiles[index++].src; |
|
2592 node.load(); |
|
2593 node.play(); |
|
2594 } else { |
|
2595 mediaElement.generateError('Media error: Format(s) not supported or source(s) not found', mediaFiles); |
|
2596 } |
|
2597 } |
|
2598 }); |
|
2599 |
|
2600 var event = (0, _general.createEvent)('rendererready', node); |
|
2601 mediaElement.dispatchEvent(event); |
|
2602 |
|
2603 return node; |
|
2604 } |
|
2605 }; |
|
2606 |
|
2607 _window2.default.HtmlMediaElement = _mejs2.default.HtmlMediaElement = HtmlMediaElement; |
|
2608 |
|
2609 _renderer.renderer.add(HtmlMediaElement); |
|
2610 |
|
2611 },{"16":16,"18":18,"2":2,"3":3,"7":7,"8":8}],15:[function(_dereq_,module,exports){ |
|
2612 'use strict'; |
|
2613 |
|
2614 var _window = _dereq_(3); |
|
2615 |
|
2616 var _window2 = _interopRequireDefault(_window); |
|
2617 |
|
2618 var _document = _dereq_(2); |
|
2619 |
|
2620 var _document2 = _interopRequireDefault(_document); |
|
2621 |
|
2622 var _mejs = _dereq_(7); |
|
2623 |
|
2624 var _mejs2 = _interopRequireDefault(_mejs); |
|
2625 |
|
2626 var _renderer = _dereq_(8); |
|
2627 |
|
2628 var _general = _dereq_(18); |
|
2629 |
|
2630 var _media = _dereq_(19); |
|
2631 |
|
2632 var _dom = _dereq_(17); |
|
2633 |
|
2634 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
2635 |
|
2636 var YouTubeApi = { |
|
2637 isIframeStarted: false, |
|
2638 |
|
2639 isIframeLoaded: false, |
|
2640 |
|
2641 iframeQueue: [], |
|
2642 |
|
2643 enqueueIframe: function enqueueIframe(settings) { |
|
2644 YouTubeApi.isLoaded = typeof YT !== 'undefined' && YT.loaded; |
|
2645 |
|
2646 if (YouTubeApi.isLoaded) { |
|
2647 YouTubeApi.createIframe(settings); |
|
2648 } else { |
|
2649 YouTubeApi.loadIframeApi(); |
|
2650 YouTubeApi.iframeQueue.push(settings); |
|
2651 } |
|
2652 }, |
|
2653 |
|
2654 loadIframeApi: function loadIframeApi() { |
|
2655 if (!YouTubeApi.isIframeStarted) { |
|
2656 (0, _dom.loadScript)('https://www.youtube.com/player_api'); |
|
2657 YouTubeApi.isIframeStarted = true; |
|
2658 } |
|
2659 }, |
|
2660 |
|
2661 iFrameReady: function iFrameReady() { |
|
2662 |
|
2663 YouTubeApi.isLoaded = true; |
|
2664 YouTubeApi.isIframeLoaded = true; |
|
2665 |
|
2666 while (YouTubeApi.iframeQueue.length > 0) { |
|
2667 var settings = YouTubeApi.iframeQueue.pop(); |
|
2668 YouTubeApi.createIframe(settings); |
|
2669 } |
|
2670 }, |
|
2671 |
|
2672 createIframe: function createIframe(settings) { |
|
2673 return new YT.Player(settings.containerId, settings); |
|
2674 }, |
|
2675 |
|
2676 getYouTubeId: function getYouTubeId(url) { |
|
2677 |
|
2678 var youTubeId = ''; |
|
2679 |
|
2680 if (url.indexOf('?') > 0) { |
|
2681 youTubeId = YouTubeApi.getYouTubeIdFromParam(url); |
|
2682 |
|
2683 if (youTubeId === '') { |
|
2684 youTubeId = YouTubeApi.getYouTubeIdFromUrl(url); |
|
2685 } |
|
2686 } else { |
|
2687 youTubeId = YouTubeApi.getYouTubeIdFromUrl(url); |
|
2688 } |
|
2689 |
|
2690 var id = youTubeId.substring(youTubeId.lastIndexOf('/') + 1); |
|
2691 youTubeId = id.split('?'); |
|
2692 return youTubeId[0]; |
|
2693 }, |
|
2694 |
|
2695 getYouTubeIdFromParam: function getYouTubeIdFromParam(url) { |
|
2696 |
|
2697 if (url === undefined || url === null || !url.trim().length) { |
|
2698 return null; |
|
2699 } |
|
2700 |
|
2701 var parts = url.split('?'), |
|
2702 parameters = parts[1].split('&'); |
|
2703 |
|
2704 var youTubeId = ''; |
|
2705 |
|
2706 for (var i = 0, total = parameters.length; i < total; i++) { |
|
2707 var paramParts = parameters[i].split('='); |
|
2708 if (paramParts[0] === 'v') { |
|
2709 youTubeId = paramParts[1]; |
|
2710 break; |
|
2711 } |
|
2712 } |
|
2713 |
|
2714 return youTubeId; |
|
2715 }, |
|
2716 |
|
2717 getYouTubeIdFromUrl: function getYouTubeIdFromUrl(url) { |
|
2718 |
|
2719 if (url === undefined || url === null || !url.trim().length) { |
|
2720 return null; |
|
2721 } |
|
2722 |
|
2723 var parts = url.split('?'); |
|
2724 url = parts[0]; |
|
2725 return url.substring(url.lastIndexOf('/') + 1); |
|
2726 }, |
|
2727 |
|
2728 getYouTubeNoCookieUrl: function getYouTubeNoCookieUrl(url) { |
|
2729 if (url === undefined || url === null || !url.trim().length || url.indexOf('//www.youtube') === -1) { |
|
2730 return url; |
|
2731 } |
|
2732 |
|
2733 var parts = url.split('/'); |
|
2734 parts[2] = parts[2].replace('.com', '-nocookie.com'); |
|
2735 return parts.join('/'); |
|
2736 } |
|
2737 }; |
|
2738 |
|
2739 var YouTubeIframeRenderer = { |
|
2740 name: 'youtube_iframe', |
|
2741 |
|
2742 options: { |
|
2743 prefix: 'youtube_iframe', |
|
2744 |
|
2745 youtube: { |
|
2746 autoplay: 0, |
|
2747 controls: 0, |
|
2748 disablekb: 1, |
|
2749 end: 0, |
|
2750 loop: 0, |
|
2751 modestbranding: 0, |
|
2752 playsinline: 0, |
|
2753 rel: 0, |
|
2754 showinfo: 0, |
|
2755 start: 0, |
|
2756 iv_load_policy: 3, |
|
2757 |
|
2758 nocookie: false, |
|
2759 |
|
2760 imageQuality: null |
|
2761 } |
|
2762 }, |
|
2763 |
|
2764 canPlayType: function canPlayType(type) { |
|
2765 return ~['video/youtube', 'video/x-youtube'].indexOf(type.toLowerCase()); |
|
2766 }, |
|
2767 |
|
2768 create: function create(mediaElement, options, mediaFiles) { |
|
2769 |
|
2770 var youtube = {}, |
|
2771 apiStack = [], |
|
2772 readyState = 4; |
|
2773 |
|
2774 var youTubeApi = null, |
|
2775 paused = true, |
|
2776 ended = false, |
|
2777 youTubeIframe = null, |
|
2778 volume = 1; |
|
2779 |
|
2780 youtube.options = options; |
|
2781 youtube.id = mediaElement.id + '_' + options.prefix; |
|
2782 youtube.mediaElement = mediaElement; |
|
2783 |
|
2784 var props = _mejs2.default.html5media.properties, |
|
2785 assignGettersSetters = function assignGettersSetters(propName) { |
|
2786 |
|
2787 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); |
|
2788 |
|
2789 youtube['get' + capName] = function () { |
|
2790 if (youTubeApi !== null) { |
|
2791 var value = null; |
|
2792 |
|
2793 switch (propName) { |
|
2794 case 'currentTime': |
|
2795 return youTubeApi.getCurrentTime(); |
|
2796 case 'duration': |
|
2797 return youTubeApi.getDuration(); |
|
2798 case 'volume': |
|
2799 volume = youTubeApi.getVolume() / 100; |
|
2800 return volume; |
|
2801 case 'paused': |
|
2802 return paused; |
|
2803 case 'ended': |
|
2804 return ended; |
|
2805 case 'muted': |
|
2806 return youTubeApi.isMuted(); |
|
2807 case 'buffered': |
|
2808 var percentLoaded = youTubeApi.getVideoLoadedFraction(), |
|
2809 duration = youTubeApi.getDuration(); |
|
2810 return { |
|
2811 start: function start() { |
|
2812 return 0; |
|
2813 }, |
|
2814 end: function end() { |
|
2815 return percentLoaded * duration; |
|
2816 }, |
|
2817 length: 1 |
|
2818 }; |
|
2819 case 'src': |
|
2820 return youTubeApi.getVideoUrl(); |
|
2821 case 'readyState': |
|
2822 return readyState; |
|
2823 } |
|
2824 |
|
2825 return value; |
|
2826 } else { |
|
2827 return null; |
|
2828 } |
|
2829 }; |
|
2830 |
|
2831 youtube['set' + capName] = function (value) { |
|
2832 if (youTubeApi !== null) { |
|
2833 switch (propName) { |
|
2834 case 'src': |
|
2835 var url = typeof value === 'string' ? value : value[0].src, |
|
2836 _videoId = YouTubeApi.getYouTubeId(url); |
|
2837 |
|
2838 if (mediaElement.originalNode.autoplay) { |
|
2839 youTubeApi.loadVideoById(_videoId); |
|
2840 } else { |
|
2841 youTubeApi.cueVideoById(_videoId); |
|
2842 } |
|
2843 break; |
|
2844 case 'currentTime': |
|
2845 youTubeApi.seekTo(value); |
|
2846 break; |
|
2847 case 'muted': |
|
2848 if (value) { |
|
2849 youTubeApi.mute(); |
|
2850 } else { |
|
2851 youTubeApi.unMute(); |
|
2852 } |
|
2853 setTimeout(function () { |
|
2854 var event = (0, _general.createEvent)('volumechange', youtube); |
|
2855 mediaElement.dispatchEvent(event); |
|
2856 }, 50); |
|
2857 break; |
|
2858 case 'volume': |
|
2859 volume = value; |
|
2860 youTubeApi.setVolume(value * 100); |
|
2861 setTimeout(function () { |
|
2862 var event = (0, _general.createEvent)('volumechange', youtube); |
|
2863 mediaElement.dispatchEvent(event); |
|
2864 }, 50); |
|
2865 break; |
|
2866 case 'readyState': |
|
2867 var event = (0, _general.createEvent)('canplay', youtube); |
|
2868 mediaElement.dispatchEvent(event); |
|
2869 break; |
|
2870 default: |
|
2871 |
|
2872 break; |
|
2873 } |
|
2874 } else { |
|
2875 apiStack.push({ type: 'set', propName: propName, value: value }); |
|
2876 } |
|
2877 }; |
|
2878 }; |
|
2879 |
|
2880 for (var i = 0, total = props.length; i < total; i++) { |
|
2881 assignGettersSetters(props[i]); |
|
2882 } |
|
2883 |
|
2884 var methods = _mejs2.default.html5media.methods, |
|
2885 assignMethods = function assignMethods(methodName) { |
|
2886 youtube[methodName] = function () { |
|
2887 if (youTubeApi !== null) { |
|
2888 switch (methodName) { |
|
2889 case 'play': |
|
2890 paused = false; |
|
2891 return youTubeApi.playVideo(); |
|
2892 case 'pause': |
|
2893 paused = true; |
|
2894 return youTubeApi.pauseVideo(); |
|
2895 case 'load': |
|
2896 return null; |
|
2897 } |
|
2898 } else { |
|
2899 apiStack.push({ type: 'call', methodName: methodName }); |
|
2900 } |
|
2901 }; |
|
2902 }; |
|
2903 |
|
2904 for (var _i = 0, _total = methods.length; _i < _total; _i++) { |
|
2905 assignMethods(methods[_i]); |
|
2906 } |
|
2907 |
|
2908 var youtubeContainer = _document2.default.createElement('div'); |
|
2909 youtubeContainer.id = youtube.id; |
|
2910 |
|
2911 if (youtube.options.youtube.nocookie) { |
|
2912 mediaElement.originalNode.src = YouTubeApi.getYouTubeNoCookieUrl(mediaFiles[0].src); |
|
2913 } |
|
2914 |
|
2915 mediaElement.originalNode.parentNode.insertBefore(youtubeContainer, mediaElement.originalNode); |
|
2916 mediaElement.originalNode.style.display = 'none'; |
|
2917 |
|
2918 var isAudio = mediaElement.originalNode.tagName.toLowerCase() === 'audio', |
|
2919 height = isAudio ? '1' : mediaElement.originalNode.height, |
|
2920 width = isAudio ? '1' : mediaElement.originalNode.width, |
|
2921 videoId = YouTubeApi.getYouTubeId(mediaFiles[0].src), |
|
2922 youtubeSettings = { |
|
2923 id: youtube.id, |
|
2924 containerId: youtubeContainer.id, |
|
2925 videoId: videoId, |
|
2926 height: height, |
|
2927 width: width, |
|
2928 playerVars: Object.assign({ |
|
2929 controls: 0, |
|
2930 rel: 0, |
|
2931 disablekb: 1, |
|
2932 showinfo: 0, |
|
2933 modestbranding: 0, |
|
2934 html5: 1, |
|
2935 iv_load_policy: 3 |
|
2936 }, youtube.options.youtube), |
|
2937 origin: _window2.default.location.host, |
|
2938 events: { |
|
2939 onReady: function onReady(e) { |
|
2940 mediaElement.youTubeApi = youTubeApi = e.target; |
|
2941 mediaElement.youTubeState = { |
|
2942 paused: true, |
|
2943 ended: false |
|
2944 }; |
|
2945 |
|
2946 if (apiStack.length) { |
|
2947 for (var _i2 = 0, _total2 = apiStack.length; _i2 < _total2; _i2++) { |
|
2948 |
|
2949 var stackItem = apiStack[_i2]; |
|
2950 |
|
2951 if (stackItem.type === 'set') { |
|
2952 var propName = stackItem.propName, |
|
2953 capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); |
|
2954 |
|
2955 youtube['set' + capName](stackItem.value); |
|
2956 } else if (stackItem.type === 'call') { |
|
2957 youtube[stackItem.methodName](); |
|
2958 } |
|
2959 } |
|
2960 } |
|
2961 |
|
2962 youTubeIframe = youTubeApi.getIframe(); |
|
2963 |
|
2964 if (mediaElement.originalNode.muted) { |
|
2965 youTubeApi.mute(); |
|
2966 } |
|
2967 |
|
2968 var events = ['mouseover', 'mouseout'], |
|
2969 assignEvents = function assignEvents(e) { |
|
2970 var newEvent = (0, _general.createEvent)(e.type, youtube); |
|
2971 mediaElement.dispatchEvent(newEvent); |
|
2972 }; |
|
2973 |
|
2974 for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) { |
|
2975 youTubeIframe.addEventListener(events[_i3], assignEvents, false); |
|
2976 } |
|
2977 |
|
2978 var initEvents = ['rendererready', 'loadedmetadata', 'loadeddata', 'canplay']; |
|
2979 |
|
2980 for (var _i4 = 0, _total4 = initEvents.length; _i4 < _total4; _i4++) { |
|
2981 var event = (0, _general.createEvent)(initEvents[_i4], youtube); |
|
2982 mediaElement.dispatchEvent(event); |
|
2983 } |
|
2984 }, |
|
2985 onStateChange: function onStateChange(e) { |
|
2986 var events = []; |
|
2987 |
|
2988 switch (e.data) { |
|
2989 case -1: |
|
2990 events = ['loadedmetadata']; |
|
2991 paused = true; |
|
2992 ended = false; |
|
2993 break; |
|
2994 case 0: |
|
2995 events = ['ended']; |
|
2996 paused = false; |
|
2997 ended = !youtube.options.youtube.loop; |
|
2998 if (!youtube.options.youtube.loop) { |
|
2999 youtube.stopInterval(); |
|
3000 } |
|
3001 break; |
|
3002 case 1: |
|
3003 events = ['play', 'playing']; |
|
3004 paused = false; |
|
3005 ended = false; |
|
3006 youtube.startInterval(); |
|
3007 break; |
|
3008 case 2: |
|
3009 events = ['pause']; |
|
3010 paused = true; |
|
3011 ended = false; |
|
3012 youtube.stopInterval(); |
|
3013 break; |
|
3014 case 3: |
|
3015 events = ['progress']; |
|
3016 ended = false; |
|
3017 break; |
|
3018 case 5: |
|
3019 events = ['loadeddata', 'loadedmetadata', 'canplay']; |
|
3020 paused = true; |
|
3021 ended = false; |
|
3022 break; |
|
3023 } |
|
3024 |
|
3025 for (var _i5 = 0, _total5 = events.length; _i5 < _total5; _i5++) { |
|
3026 var event = (0, _general.createEvent)(events[_i5], youtube); |
|
3027 mediaElement.dispatchEvent(event); |
|
3028 } |
|
3029 }, |
|
3030 onError: function onError(e) { |
|
3031 var event = (0, _general.createEvent)('error', youtube); |
|
3032 event.data = e.data; |
|
3033 mediaElement.dispatchEvent(event); |
|
3034 } |
|
3035 } |
|
3036 }; |
|
3037 |
|
3038 if (isAudio || mediaElement.originalNode.hasAttribute('playsinline')) { |
|
3039 youtubeSettings.playerVars.playsinline = 1; |
|
3040 } |
|
3041 |
|
3042 if (mediaElement.originalNode.controls) { |
|
3043 youtubeSettings.playerVars.controls = 1; |
|
3044 } |
|
3045 if (mediaElement.originalNode.autoplay) { |
|
3046 youtubeSettings.playerVars.autoplay = 1; |
|
3047 } |
|
3048 if (mediaElement.originalNode.loop) { |
|
3049 youtubeSettings.playerVars.loop = 1; |
|
3050 } |
|
3051 |
|
3052 YouTubeApi.enqueueIframe(youtubeSettings); |
|
3053 |
|
3054 youtube.onEvent = function (eventName, player, _youTubeState) { |
|
3055 if (_youTubeState !== null && _youTubeState !== undefined) { |
|
3056 mediaElement.youTubeState = _youTubeState; |
|
3057 } |
|
3058 }; |
|
3059 |
|
3060 youtube.setSize = function (width, height) { |
|
3061 if (youTubeApi !== null) { |
|
3062 youTubeApi.setSize(width, height); |
|
3063 } |
|
3064 }; |
|
3065 youtube.hide = function () { |
|
3066 youtube.stopInterval(); |
|
3067 youtube.pause(); |
|
3068 if (youTubeIframe) { |
|
3069 youTubeIframe.style.display = 'none'; |
|
3070 } |
|
3071 }; |
|
3072 youtube.show = function () { |
|
3073 if (youTubeIframe) { |
|
3074 youTubeIframe.style.display = ''; |
|
3075 } |
|
3076 }; |
|
3077 youtube.destroy = function () { |
|
3078 youTubeApi.destroy(); |
|
3079 }; |
|
3080 youtube.interval = null; |
|
3081 |
|
3082 youtube.startInterval = function () { |
|
3083 youtube.interval = setInterval(function () { |
|
3084 var event = (0, _general.createEvent)('timeupdate', youtube); |
|
3085 mediaElement.dispatchEvent(event); |
|
3086 }, 250); |
|
3087 }; |
|
3088 youtube.stopInterval = function () { |
|
3089 if (youtube.interval) { |
|
3090 clearInterval(youtube.interval); |
|
3091 } |
|
3092 }; |
|
3093 youtube.getPosterUrl = function () { |
|
3094 var quality = options.youtube.imageQuality, |
|
3095 resolutions = ['default', 'hqdefault', 'mqdefault', 'sddefault', 'maxresdefault'], |
|
3096 id = YouTubeApi.getYouTubeId(mediaElement.originalNode.src); |
|
3097 return quality && resolutions.indexOf(quality) > -1 && id ? 'https://img.youtube.com/vi/' + id + '/' + quality + '.jpg' : ''; |
|
3098 }; |
|
3099 |
|
3100 return youtube; |
|
3101 } |
|
3102 }; |
|
3103 |
|
3104 _window2.default.onYouTubePlayerAPIReady = function () { |
|
3105 YouTubeApi.iFrameReady(); |
|
3106 }; |
|
3107 |
|
3108 _media.typeChecks.push(function (url) { |
|
3109 return (/\/\/(www\.youtube|youtu\.?be)/i.test(url) ? 'video/x-youtube' : null |
|
3110 ); |
|
3111 }); |
|
3112 |
|
3113 _renderer.renderer.add(YouTubeIframeRenderer); |
|
3114 |
|
3115 },{"17":17,"18":18,"19":19,"2":2,"3":3,"7":7,"8":8}],16:[function(_dereq_,module,exports){ |
|
3116 'use strict'; |
|
3117 |
|
3118 Object.defineProperty(exports, "__esModule", { |
|
3119 value: true |
|
3120 }); |
|
3121 exports.cancelFullScreen = exports.requestFullScreen = exports.isFullScreen = exports.FULLSCREEN_EVENT_NAME = exports.HAS_NATIVE_FULLSCREEN_ENABLED = exports.HAS_TRUE_NATIVE_FULLSCREEN = exports.HAS_IOS_FULLSCREEN = exports.HAS_MS_NATIVE_FULLSCREEN = exports.HAS_MOZ_NATIVE_FULLSCREEN = exports.HAS_WEBKIT_NATIVE_FULLSCREEN = exports.HAS_NATIVE_FULLSCREEN = exports.SUPPORTS_NATIVE_HLS = exports.SUPPORT_PASSIVE_EVENT = exports.SUPPORT_POINTER_EVENTS = exports.HAS_MSE = exports.IS_STOCK_ANDROID = exports.IS_SAFARI = exports.IS_FIREFOX = exports.IS_CHROME = exports.IS_EDGE = exports.IS_IE = exports.IS_ANDROID = exports.IS_IOS = exports.IS_IPOD = exports.IS_IPHONE = exports.IS_IPAD = exports.UA = exports.NAV = undefined; |
|
3122 |
|
3123 var _window = _dereq_(3); |
|
3124 |
|
3125 var _window2 = _interopRequireDefault(_window); |
|
3126 |
|
3127 var _document = _dereq_(2); |
|
3128 |
|
3129 var _document2 = _interopRequireDefault(_document); |
|
3130 |
|
3131 var _mejs = _dereq_(7); |
|
3132 |
|
3133 var _mejs2 = _interopRequireDefault(_mejs); |
|
3134 |
|
3135 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
3136 |
|
3137 var NAV = exports.NAV = _window2.default.navigator; |
|
3138 var UA = exports.UA = NAV.userAgent.toLowerCase(); |
|
3139 var IS_IPAD = exports.IS_IPAD = /ipad/i.test(UA) && !_window2.default.MSStream; |
|
3140 var IS_IPHONE = exports.IS_IPHONE = /iphone/i.test(UA) && !_window2.default.MSStream; |
|
3141 var IS_IPOD = exports.IS_IPOD = /ipod/i.test(UA) && !_window2.default.MSStream; |
|
3142 var IS_IOS = exports.IS_IOS = /ipad|iphone|ipod/i.test(UA) && !_window2.default.MSStream; |
|
3143 var IS_ANDROID = exports.IS_ANDROID = /android/i.test(UA); |
|
3144 var IS_IE = exports.IS_IE = /(trident|microsoft)/i.test(NAV.appName); |
|
3145 var IS_EDGE = exports.IS_EDGE = 'msLaunchUri' in NAV && !('documentMode' in _document2.default); |
|
3146 var IS_CHROME = exports.IS_CHROME = /chrome/i.test(UA); |
|
3147 var IS_FIREFOX = exports.IS_FIREFOX = /firefox/i.test(UA); |
|
3148 var IS_SAFARI = exports.IS_SAFARI = /safari/i.test(UA) && !IS_CHROME; |
|
3149 var IS_STOCK_ANDROID = exports.IS_STOCK_ANDROID = /^mozilla\/\d+\.\d+\s\(linux;\su;/i.test(UA); |
|
3150 var HAS_MSE = exports.HAS_MSE = 'MediaSource' in _window2.default; |
|
3151 var SUPPORT_POINTER_EVENTS = exports.SUPPORT_POINTER_EVENTS = function () { |
|
3152 var element = _document2.default.createElement('x'), |
|
3153 documentElement = _document2.default.documentElement, |
|
3154 getComputedStyle = _window2.default.getComputedStyle; |
|
3155 |
|
3156 if (!('pointerEvents' in element.style)) { |
|
3157 return false; |
|
3158 } |
|
3159 |
|
3160 element.style.pointerEvents = 'auto'; |
|
3161 element.style.pointerEvents = 'x'; |
|
3162 documentElement.appendChild(element); |
|
3163 var supports = getComputedStyle && getComputedStyle(element, '').pointerEvents === 'auto'; |
|
3164 element.remove(); |
|
3165 return !!supports; |
|
3166 }(); |
|
3167 |
|
3168 var SUPPORT_PASSIVE_EVENT = exports.SUPPORT_PASSIVE_EVENT = function () { |
|
3169 var supportsPassive = false; |
|
3170 try { |
|
3171 var opts = Object.defineProperty({}, 'passive', { |
|
3172 get: function get() { |
|
3173 supportsPassive = true; |
|
3174 } |
|
3175 }); |
|
3176 _window2.default.addEventListener('test', null, opts); |
|
3177 } catch (e) {} |
|
3178 |
|
3179 return supportsPassive; |
|
3180 }(); |
|
3181 |
|
3182 var html5Elements = ['source', 'track', 'audio', 'video']; |
|
3183 var video = void 0; |
|
3184 |
|
3185 for (var i = 0, total = html5Elements.length; i < total; i++) { |
|
3186 video = _document2.default.createElement(html5Elements[i]); |
|
3187 } |
|
3188 |
|
3189 var SUPPORTS_NATIVE_HLS = exports.SUPPORTS_NATIVE_HLS = IS_SAFARI || IS_ANDROID && (IS_CHROME || IS_STOCK_ANDROID) || IS_IE && /edge/i.test(UA); |
|
3190 |
|
3191 var hasiOSFullScreen = video.webkitEnterFullscreen !== undefined; |
|
3192 |
|
3193 var hasNativeFullscreen = video.requestFullscreen !== undefined; |
|
3194 |
|
3195 if (hasiOSFullScreen && /mac os x 10_5/i.test(UA)) { |
|
3196 hasNativeFullscreen = false; |
|
3197 hasiOSFullScreen = false; |
|
3198 } |
|
3199 |
|
3200 var hasWebkitNativeFullScreen = video.webkitRequestFullScreen !== undefined; |
|
3201 var hasMozNativeFullScreen = video.mozRequestFullScreen !== undefined; |
|
3202 var hasMsNativeFullScreen = video.msRequestFullscreen !== undefined; |
|
3203 var hasTrueNativeFullScreen = hasWebkitNativeFullScreen || hasMozNativeFullScreen || hasMsNativeFullScreen; |
|
3204 var nativeFullScreenEnabled = hasTrueNativeFullScreen; |
|
3205 var fullScreenEventName = ''; |
|
3206 var isFullScreen = void 0, |
|
3207 requestFullScreen = void 0, |
|
3208 cancelFullScreen = void 0; |
|
3209 |
|
3210 if (hasMozNativeFullScreen) { |
|
3211 nativeFullScreenEnabled = _document2.default.mozFullScreenEnabled; |
|
3212 } else if (hasMsNativeFullScreen) { |
|
3213 nativeFullScreenEnabled = _document2.default.msFullscreenEnabled; |
|
3214 } |
|
3215 |
|
3216 if (IS_CHROME) { |
|
3217 hasiOSFullScreen = false; |
|
3218 } |
|
3219 |
|
3220 if (hasTrueNativeFullScreen) { |
|
3221 if (hasWebkitNativeFullScreen) { |
|
3222 fullScreenEventName = 'webkitfullscreenchange'; |
|
3223 } else if (hasMozNativeFullScreen) { |
|
3224 fullScreenEventName = 'mozfullscreenchange'; |
|
3225 } else if (hasMsNativeFullScreen) { |
|
3226 fullScreenEventName = 'MSFullscreenChange'; |
|
3227 } |
|
3228 |
|
3229 exports.isFullScreen = isFullScreen = function isFullScreen() { |
|
3230 if (hasMozNativeFullScreen) { |
|
3231 return _document2.default.mozFullScreen; |
|
3232 } else if (hasWebkitNativeFullScreen) { |
|
3233 return _document2.default.webkitIsFullScreen; |
|
3234 } else if (hasMsNativeFullScreen) { |
|
3235 return _document2.default.msFullscreenElement !== null; |
|
3236 } |
|
3237 }; |
|
3238 |
|
3239 exports.requestFullScreen = requestFullScreen = function requestFullScreen(el) { |
|
3240 if (hasWebkitNativeFullScreen) { |
|
3241 el.webkitRequestFullScreen(); |
|
3242 } else if (hasMozNativeFullScreen) { |
|
3243 el.mozRequestFullScreen(); |
|
3244 } else if (hasMsNativeFullScreen) { |
|
3245 el.msRequestFullscreen(); |
|
3246 } |
|
3247 }; |
|
3248 |
|
3249 exports.cancelFullScreen = cancelFullScreen = function cancelFullScreen() { |
|
3250 if (hasWebkitNativeFullScreen) { |
|
3251 _document2.default.webkitCancelFullScreen(); |
|
3252 } else if (hasMozNativeFullScreen) { |
|
3253 _document2.default.mozCancelFullScreen(); |
|
3254 } else if (hasMsNativeFullScreen) { |
|
3255 _document2.default.msExitFullscreen(); |
|
3256 } |
|
3257 }; |
|
3258 } |
|
3259 |
|
3260 var HAS_NATIVE_FULLSCREEN = exports.HAS_NATIVE_FULLSCREEN = hasNativeFullscreen; |
|
3261 var HAS_WEBKIT_NATIVE_FULLSCREEN = exports.HAS_WEBKIT_NATIVE_FULLSCREEN = hasWebkitNativeFullScreen; |
|
3262 var HAS_MOZ_NATIVE_FULLSCREEN = exports.HAS_MOZ_NATIVE_FULLSCREEN = hasMozNativeFullScreen; |
|
3263 var HAS_MS_NATIVE_FULLSCREEN = exports.HAS_MS_NATIVE_FULLSCREEN = hasMsNativeFullScreen; |
|
3264 var HAS_IOS_FULLSCREEN = exports.HAS_IOS_FULLSCREEN = hasiOSFullScreen; |
|
3265 var HAS_TRUE_NATIVE_FULLSCREEN = exports.HAS_TRUE_NATIVE_FULLSCREEN = hasTrueNativeFullScreen; |
|
3266 var HAS_NATIVE_FULLSCREEN_ENABLED = exports.HAS_NATIVE_FULLSCREEN_ENABLED = nativeFullScreenEnabled; |
|
3267 var FULLSCREEN_EVENT_NAME = exports.FULLSCREEN_EVENT_NAME = fullScreenEventName; |
|
3268 exports.isFullScreen = isFullScreen; |
|
3269 exports.requestFullScreen = requestFullScreen; |
|
3270 exports.cancelFullScreen = cancelFullScreen; |
|
3271 |
|
3272 |
|
3273 _mejs2.default.Features = _mejs2.default.Features || {}; |
|
3274 _mejs2.default.Features.isiPad = IS_IPAD; |
|
3275 _mejs2.default.Features.isiPod = IS_IPOD; |
|
3276 _mejs2.default.Features.isiPhone = IS_IPHONE; |
|
3277 _mejs2.default.Features.isiOS = _mejs2.default.Features.isiPhone || _mejs2.default.Features.isiPad; |
|
3278 _mejs2.default.Features.isAndroid = IS_ANDROID; |
|
3279 _mejs2.default.Features.isIE = IS_IE; |
|
3280 _mejs2.default.Features.isEdge = IS_EDGE; |
|
3281 _mejs2.default.Features.isChrome = IS_CHROME; |
|
3282 _mejs2.default.Features.isFirefox = IS_FIREFOX; |
|
3283 _mejs2.default.Features.isSafari = IS_SAFARI; |
|
3284 _mejs2.default.Features.isStockAndroid = IS_STOCK_ANDROID; |
|
3285 _mejs2.default.Features.hasMSE = HAS_MSE; |
|
3286 _mejs2.default.Features.supportsNativeHLS = SUPPORTS_NATIVE_HLS; |
|
3287 _mejs2.default.Features.supportsPointerEvents = SUPPORT_POINTER_EVENTS; |
|
3288 _mejs2.default.Features.supportsPassiveEvent = SUPPORT_PASSIVE_EVENT; |
|
3289 _mejs2.default.Features.hasiOSFullScreen = HAS_IOS_FULLSCREEN; |
|
3290 _mejs2.default.Features.hasNativeFullscreen = HAS_NATIVE_FULLSCREEN; |
|
3291 _mejs2.default.Features.hasWebkitNativeFullScreen = HAS_WEBKIT_NATIVE_FULLSCREEN; |
|
3292 _mejs2.default.Features.hasMozNativeFullScreen = HAS_MOZ_NATIVE_FULLSCREEN; |
|
3293 _mejs2.default.Features.hasMsNativeFullScreen = HAS_MS_NATIVE_FULLSCREEN; |
|
3294 _mejs2.default.Features.hasTrueNativeFullScreen = HAS_TRUE_NATIVE_FULLSCREEN; |
|
3295 _mejs2.default.Features.nativeFullScreenEnabled = HAS_NATIVE_FULLSCREEN_ENABLED; |
|
3296 _mejs2.default.Features.fullScreenEventName = FULLSCREEN_EVENT_NAME; |
|
3297 _mejs2.default.Features.isFullScreen = isFullScreen; |
|
3298 _mejs2.default.Features.requestFullScreen = requestFullScreen; |
|
3299 _mejs2.default.Features.cancelFullScreen = cancelFullScreen; |
|
3300 |
|
3301 },{"2":2,"3":3,"7":7}],17:[function(_dereq_,module,exports){ |
|
3302 'use strict'; |
|
3303 |
|
3304 Object.defineProperty(exports, "__esModule", { |
|
3305 value: true |
|
3306 }); |
|
3307 exports.removeClass = exports.addClass = exports.hasClass = undefined; |
|
3308 exports.loadScript = loadScript; |
|
3309 exports.offset = offset; |
|
3310 exports.toggleClass = toggleClass; |
|
3311 exports.fadeOut = fadeOut; |
|
3312 exports.fadeIn = fadeIn; |
|
3313 exports.siblings = siblings; |
|
3314 exports.visible = visible; |
|
3315 exports.ajax = ajax; |
|
3316 |
|
3317 var _window = _dereq_(3); |
|
3318 |
|
3319 var _window2 = _interopRequireDefault(_window); |
|
3320 |
|
3321 var _document = _dereq_(2); |
|
3322 |
|
3323 var _document2 = _interopRequireDefault(_document); |
|
3324 |
|
3325 var _mejs = _dereq_(7); |
|
3326 |
|
3327 var _mejs2 = _interopRequireDefault(_mejs); |
|
3328 |
|
3329 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
3330 |
|
3331 function loadScript(url) { |
|
3332 return new Promise(function (resolve, reject) { |
|
3333 var script = _document2.default.createElement('script'); |
|
3334 script.src = url; |
|
3335 script.async = true; |
|
3336 script.onload = function () { |
|
3337 script.remove(); |
|
3338 resolve(); |
|
3339 }; |
|
3340 script.onerror = function () { |
|
3341 script.remove(); |
|
3342 reject(); |
|
3343 }; |
|
3344 _document2.default.head.appendChild(script); |
|
3345 }); |
|
3346 } |
|
3347 |
|
3348 function offset(el) { |
|
3349 var rect = el.getBoundingClientRect(), |
|
3350 scrollLeft = _window2.default.pageXOffset || _document2.default.documentElement.scrollLeft, |
|
3351 scrollTop = _window2.default.pageYOffset || _document2.default.documentElement.scrollTop; |
|
3352 return { top: rect.top + scrollTop, left: rect.left + scrollLeft }; |
|
3353 } |
|
3354 |
|
3355 var hasClassMethod = void 0, |
|
3356 addClassMethod = void 0, |
|
3357 removeClassMethod = void 0; |
|
3358 |
|
3359 if ('classList' in _document2.default.documentElement) { |
|
3360 hasClassMethod = function hasClassMethod(el, className) { |
|
3361 return el.classList !== undefined && el.classList.contains(className); |
|
3362 }; |
|
3363 addClassMethod = function addClassMethod(el, className) { |
|
3364 return el.classList.add(className); |
|
3365 }; |
|
3366 removeClassMethod = function removeClassMethod(el, className) { |
|
3367 return el.classList.remove(className); |
|
3368 }; |
|
3369 } else { |
|
3370 hasClassMethod = function hasClassMethod(el, className) { |
|
3371 return new RegExp('\\b' + className + '\\b').test(el.className); |
|
3372 }; |
|
3373 addClassMethod = function addClassMethod(el, className) { |
|
3374 if (!hasClass(el, className)) { |
|
3375 el.className += ' ' + className; |
|
3376 } |
|
3377 }; |
|
3378 removeClassMethod = function removeClassMethod(el, className) { |
|
3379 el.className = el.className.replace(new RegExp('\\b' + className + '\\b', 'g'), ''); |
|
3380 }; |
|
3381 } |
|
3382 |
|
3383 var hasClass = exports.hasClass = hasClassMethod; |
|
3384 var addClass = exports.addClass = addClassMethod; |
|
3385 var removeClass = exports.removeClass = removeClassMethod; |
|
3386 |
|
3387 function toggleClass(el, className) { |
|
3388 hasClass(el, className) ? removeClass(el, className) : addClass(el, className); |
|
3389 } |
|
3390 |
|
3391 function fadeOut(el) { |
|
3392 var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400; |
|
3393 var callback = arguments[2]; |
|
3394 |
|
3395 if (!el.style.opacity) { |
|
3396 el.style.opacity = 1; |
|
3397 } |
|
3398 |
|
3399 var start = null; |
|
3400 _window2.default.requestAnimationFrame(function animate(timestamp) { |
|
3401 start = start || timestamp; |
|
3402 var progress = timestamp - start; |
|
3403 var opacity = parseFloat(1 - progress / duration, 2); |
|
3404 el.style.opacity = opacity < 0 ? 0 : opacity; |
|
3405 if (progress > duration) { |
|
3406 if (callback && typeof callback === 'function') { |
|
3407 callback(); |
|
3408 } |
|
3409 } else { |
|
3410 _window2.default.requestAnimationFrame(animate); |
|
3411 } |
|
3412 }); |
|
3413 } |
|
3414 |
|
3415 function fadeIn(el) { |
|
3416 var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400; |
|
3417 var callback = arguments[2]; |
|
3418 |
|
3419 if (!el.style.opacity) { |
|
3420 el.style.opacity = 0; |
|
3421 } |
|
3422 |
|
3423 var start = null; |
|
3424 _window2.default.requestAnimationFrame(function animate(timestamp) { |
|
3425 start = start || timestamp; |
|
3426 var progress = timestamp - start; |
|
3427 var opacity = parseFloat(progress / duration, 2); |
|
3428 el.style.opacity = opacity > 1 ? 1 : opacity; |
|
3429 if (progress > duration) { |
|
3430 if (callback && typeof callback === 'function') { |
|
3431 callback(); |
|
3432 } |
|
3433 } else { |
|
3434 _window2.default.requestAnimationFrame(animate); |
|
3435 } |
|
3436 }); |
|
3437 } |
|
3438 |
|
3439 function siblings(el, filter) { |
|
3440 var siblings = []; |
|
3441 el = el.parentNode.firstChild; |
|
3442 do { |
|
3443 if (!filter || filter(el)) { |
|
3444 siblings.push(el); |
|
3445 } |
|
3446 } while (el = el.nextSibling); |
|
3447 return siblings; |
|
3448 } |
|
3449 |
|
3450 function visible(elem) { |
|
3451 if (elem.getClientRects !== undefined && elem.getClientRects === 'function') { |
|
3452 return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); |
|
3453 } |
|
3454 return !!(elem.offsetWidth || elem.offsetHeight); |
|
3455 } |
|
3456 |
|
3457 function ajax(url, dataType, success, error) { |
|
3458 var xhr = _window2.default.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); |
|
3459 |
|
3460 var type = 'application/x-www-form-urlencoded; charset=UTF-8', |
|
3461 completed = false, |
|
3462 accept = '*/'.concat('*'); |
|
3463 |
|
3464 switch (dataType) { |
|
3465 case 'text': |
|
3466 type = 'text/plain'; |
|
3467 break; |
|
3468 case 'json': |
|
3469 type = 'application/json, text/javascript'; |
|
3470 break; |
|
3471 case 'html': |
|
3472 type = 'text/html'; |
|
3473 break; |
|
3474 case 'xml': |
|
3475 type = 'application/xml, text/xml'; |
|
3476 break; |
|
3477 } |
|
3478 |
|
3479 if (type !== 'application/x-www-form-urlencoded') { |
|
3480 accept = type + ', */*; q=0.01'; |
|
3481 } |
|
3482 |
|
3483 if (xhr) { |
|
3484 xhr.open('GET', url, true); |
|
3485 xhr.setRequestHeader('Accept', accept); |
|
3486 xhr.onreadystatechange = function () { |
|
3487 if (completed) { |
|
3488 return; |
|
3489 } |
|
3490 |
|
3491 if (xhr.readyState === 4) { |
|
3492 if (xhr.status === 200) { |
|
3493 completed = true; |
|
3494 var data = void 0; |
|
3495 switch (dataType) { |
|
3496 case 'json': |
|
3497 data = JSON.parse(xhr.responseText); |
|
3498 break; |
|
3499 case 'xml': |
|
3500 data = xhr.responseXML; |
|
3501 break; |
|
3502 default: |
|
3503 data = xhr.responseText; |
|
3504 break; |
|
3505 } |
|
3506 success(data); |
|
3507 } else if (typeof error === 'function') { |
|
3508 error(xhr.status); |
|
3509 } |
|
3510 } |
|
3511 }; |
|
3512 |
|
3513 xhr.send(); |
|
3514 } |
|
3515 } |
|
3516 |
|
3517 _mejs2.default.Utils = _mejs2.default.Utils || {}; |
|
3518 _mejs2.default.Utils.offset = offset; |
|
3519 _mejs2.default.Utils.hasClass = hasClass; |
|
3520 _mejs2.default.Utils.addClass = addClass; |
|
3521 _mejs2.default.Utils.removeClass = removeClass; |
|
3522 _mejs2.default.Utils.toggleClass = toggleClass; |
|
3523 _mejs2.default.Utils.fadeIn = fadeIn; |
|
3524 _mejs2.default.Utils.fadeOut = fadeOut; |
|
3525 _mejs2.default.Utils.siblings = siblings; |
|
3526 _mejs2.default.Utils.visible = visible; |
|
3527 _mejs2.default.Utils.ajax = ajax; |
|
3528 _mejs2.default.Utils.loadScript = loadScript; |
|
3529 |
|
3530 },{"2":2,"3":3,"7":7}],18:[function(_dereq_,module,exports){ |
|
3531 'use strict'; |
|
3532 |
|
3533 Object.defineProperty(exports, "__esModule", { |
|
3534 value: true |
|
3535 }); |
|
3536 exports.escapeHTML = escapeHTML; |
|
3537 exports.debounce = debounce; |
|
3538 exports.isObjectEmpty = isObjectEmpty; |
|
3539 exports.splitEvents = splitEvents; |
|
3540 exports.createEvent = createEvent; |
|
3541 exports.isNodeAfter = isNodeAfter; |
|
3542 exports.isString = isString; |
|
3543 |
|
3544 var _mejs = _dereq_(7); |
|
3545 |
|
3546 var _mejs2 = _interopRequireDefault(_mejs); |
|
3547 |
|
3548 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
3549 |
|
3550 function escapeHTML(input) { |
|
3551 |
|
3552 if (typeof input !== 'string') { |
|
3553 throw new Error('Argument passed must be a string'); |
|
3554 } |
|
3555 |
|
3556 var map = { |
|
3557 '&': '&', |
|
3558 '<': '<', |
|
3559 '>': '>', |
|
3560 '"': '"' |
|
3561 }; |
|
3562 |
|
3563 return input.replace(/[&<>"]/g, function (c) { |
|
3564 return map[c]; |
|
3565 }); |
|
3566 } |
|
3567 |
|
3568 function debounce(func, wait) { |
|
3569 var _this = this, |
|
3570 _arguments = arguments; |
|
3571 |
|
3572 var immediate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; |
|
3573 |
|
3574 |
|
3575 if (typeof func !== 'function') { |
|
3576 throw new Error('First argument must be a function'); |
|
3577 } |
|
3578 |
|
3579 if (typeof wait !== 'number') { |
|
3580 throw new Error('Second argument must be a numeric value'); |
|
3581 } |
|
3582 |
|
3583 var timeout = void 0; |
|
3584 return function () { |
|
3585 var context = _this, |
|
3586 args = _arguments; |
|
3587 var later = function later() { |
|
3588 timeout = null; |
|
3589 if (!immediate) { |
|
3590 func.apply(context, args); |
|
3591 } |
|
3592 }; |
|
3593 var callNow = immediate && !timeout; |
|
3594 clearTimeout(timeout); |
|
3595 timeout = setTimeout(later, wait); |
|
3596 |
|
3597 if (callNow) { |
|
3598 func.apply(context, args); |
|
3599 } |
|
3600 }; |
|
3601 } |
|
3602 |
|
3603 function isObjectEmpty(instance) { |
|
3604 return Object.getOwnPropertyNames(instance).length <= 0; |
|
3605 } |
|
3606 |
|
3607 function splitEvents(events, id) { |
|
3608 var rwindow = /^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/; |
|
3609 |
|
3610 var ret = { d: [], w: [] }; |
|
3611 (events || '').split(' ').forEach(function (v) { |
|
3612 var eventName = '' + v + (id ? '.' + id : ''); |
|
3613 |
|
3614 if (eventName.startsWith('.')) { |
|
3615 ret.d.push(eventName); |
|
3616 ret.w.push(eventName); |
|
3617 } else { |
|
3618 ret[rwindow.test(v) ? 'w' : 'd'].push(eventName); |
|
3619 } |
|
3620 }); |
|
3621 |
|
3622 ret.d = ret.d.join(' '); |
|
3623 ret.w = ret.w.join(' '); |
|
3624 return ret; |
|
3625 } |
|
3626 |
|
3627 function createEvent(eventName, target) { |
|
3628 |
|
3629 if (typeof eventName !== 'string') { |
|
3630 throw new Error('Event name must be a string'); |
|
3631 } |
|
3632 |
|
3633 var eventFrags = eventName.match(/([a-z]+\.([a-z]+))/i), |
|
3634 detail = { |
|
3635 target: target |
|
3636 }; |
|
3637 |
|
3638 if (eventFrags !== null) { |
|
3639 eventName = eventFrags[1]; |
|
3640 detail.namespace = eventFrags[2]; |
|
3641 } |
|
3642 |
|
3643 return new window.CustomEvent(eventName, { |
|
3644 detail: detail |
|
3645 }); |
|
3646 } |
|
3647 |
|
3648 function isNodeAfter(sourceNode, targetNode) { |
|
3649 |
|
3650 return !!(sourceNode && targetNode && sourceNode.compareDocumentPosition(targetNode) & 2); |
|
3651 } |
|
3652 |
|
3653 function isString(value) { |
|
3654 return typeof value === 'string'; |
|
3655 } |
|
3656 |
|
3657 _mejs2.default.Utils = _mejs2.default.Utils || {}; |
|
3658 _mejs2.default.Utils.escapeHTML = escapeHTML; |
|
3659 _mejs2.default.Utils.debounce = debounce; |
|
3660 _mejs2.default.Utils.isObjectEmpty = isObjectEmpty; |
|
3661 _mejs2.default.Utils.splitEvents = splitEvents; |
|
3662 _mejs2.default.Utils.createEvent = createEvent; |
|
3663 _mejs2.default.Utils.isNodeAfter = isNodeAfter; |
|
3664 _mejs2.default.Utils.isString = isString; |
|
3665 |
|
3666 },{"7":7}],19:[function(_dereq_,module,exports){ |
|
3667 'use strict'; |
|
3668 |
|
3669 Object.defineProperty(exports, "__esModule", { |
|
3670 value: true |
|
3671 }); |
|
3672 exports.typeChecks = undefined; |
|
3673 exports.absolutizeUrl = absolutizeUrl; |
|
3674 exports.formatType = formatType; |
|
3675 exports.getMimeFromType = getMimeFromType; |
|
3676 exports.getTypeFromFile = getTypeFromFile; |
|
3677 exports.getExtension = getExtension; |
|
3678 exports.normalizeExtension = normalizeExtension; |
|
3679 |
|
3680 var _mejs = _dereq_(7); |
|
3681 |
|
3682 var _mejs2 = _interopRequireDefault(_mejs); |
|
3683 |
|
3684 var _general = _dereq_(18); |
|
3685 |
|
3686 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
3687 |
|
3688 var typeChecks = exports.typeChecks = []; |
|
3689 |
|
3690 function absolutizeUrl(url) { |
|
3691 |
|
3692 if (typeof url !== 'string') { |
|
3693 throw new Error('`url` argument must be a string'); |
|
3694 } |
|
3695 |
|
3696 var el = document.createElement('div'); |
|
3697 el.innerHTML = '<a href="' + (0, _general.escapeHTML)(url) + '">x</a>'; |
|
3698 return el.firstChild.href; |
|
3699 } |
|
3700 |
|
3701 function formatType(url) { |
|
3702 var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; |
|
3703 |
|
3704 return url && !type ? getTypeFromFile(url) : type; |
|
3705 } |
|
3706 |
|
3707 function getMimeFromType(type) { |
|
3708 |
|
3709 if (typeof type !== 'string') { |
|
3710 throw new Error('`type` argument must be a string'); |
|
3711 } |
|
3712 |
|
3713 return type && type.indexOf(';') > -1 ? type.substr(0, type.indexOf(';')) : type; |
|
3714 } |
|
3715 |
|
3716 function getTypeFromFile(url) { |
|
3717 |
|
3718 if (typeof url !== 'string') { |
|
3719 throw new Error('`url` argument must be a string'); |
|
3720 } |
|
3721 |
|
3722 for (var i = 0, total = typeChecks.length; i < total; i++) { |
|
3723 var type = typeChecks[i](url); |
|
3724 |
|
3725 if (type) { |
|
3726 return type; |
|
3727 } |
|
3728 } |
|
3729 |
|
3730 var ext = getExtension(url), |
|
3731 normalizedExt = normalizeExtension(ext); |
|
3732 |
|
3733 var mime = 'video/mp4'; |
|
3734 |
|
3735 if (normalizedExt) { |
|
3736 if (~['mp4', 'm4v', 'ogg', 'ogv', 'webm', 'flv', 'mpeg', 'mov'].indexOf(normalizedExt)) { |
|
3737 mime = 'video/' + normalizedExt; |
|
3738 } else if (~['mp3', 'oga', 'wav', 'mid', 'midi'].indexOf(normalizedExt)) { |
|
3739 mime = 'audio/' + normalizedExt; |
|
3740 } |
|
3741 } |
|
3742 |
|
3743 return mime; |
|
3744 } |
|
3745 |
|
3746 function getExtension(url) { |
|
3747 |
|
3748 if (typeof url !== 'string') { |
|
3749 throw new Error('`url` argument must be a string'); |
|
3750 } |
|
3751 |
|
3752 var baseUrl = url.split('?')[0], |
|
3753 baseName = baseUrl.split('\\').pop().split('/').pop(); |
|
3754 return ~baseName.indexOf('.') ? baseName.substring(baseName.lastIndexOf('.') + 1) : ''; |
|
3755 } |
|
3756 |
|
3757 function normalizeExtension(extension) { |
|
3758 |
|
3759 if (typeof extension !== 'string') { |
|
3760 throw new Error('`extension` argument must be a string'); |
|
3761 } |
|
3762 |
|
3763 switch (extension) { |
|
3764 case 'mp4': |
|
3765 case 'm4v': |
|
3766 return 'mp4'; |
|
3767 case 'webm': |
|
3768 case 'webma': |
|
3769 case 'webmv': |
|
3770 return 'webm'; |
|
3771 case 'ogg': |
|
3772 case 'oga': |
|
3773 case 'ogv': |
|
3774 return 'ogg'; |
|
3775 default: |
|
3776 return extension; |
|
3777 } |
|
3778 } |
|
3779 |
|
3780 _mejs2.default.Utils = _mejs2.default.Utils || {}; |
|
3781 _mejs2.default.Utils.typeChecks = typeChecks; |
|
3782 _mejs2.default.Utils.absolutizeUrl = absolutizeUrl; |
|
3783 _mejs2.default.Utils.formatType = formatType; |
|
3784 _mejs2.default.Utils.getMimeFromType = getMimeFromType; |
|
3785 _mejs2.default.Utils.getTypeFromFile = getTypeFromFile; |
|
3786 _mejs2.default.Utils.getExtension = getExtension; |
|
3787 _mejs2.default.Utils.normalizeExtension = normalizeExtension; |
|
3788 |
|
3789 },{"18":18,"7":7}],20:[function(_dereq_,module,exports){ |
|
3790 'use strict'; |
|
3791 |
|
3792 var _document = _dereq_(2); |
|
3793 |
|
3794 var _document2 = _interopRequireDefault(_document); |
|
3795 |
|
3796 var _promisePolyfill = _dereq_(4); |
|
3797 |
|
3798 var _promisePolyfill2 = _interopRequireDefault(_promisePolyfill); |
|
3799 |
|
3800 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
3801 |
|
3802 (function (arr) { |
|
3803 arr.forEach(function (item) { |
|
3804 if (item.hasOwnProperty('remove')) { |
|
3805 return; |
|
3806 } |
|
3807 Object.defineProperty(item, 'remove', { |
|
3808 configurable: true, |
|
3809 enumerable: true, |
|
3810 writable: true, |
|
3811 value: function remove() { |
|
3812 this.parentNode.removeChild(this); |
|
3813 } |
|
3814 }); |
|
3815 }); |
|
3816 })([Element.prototype, CharacterData.prototype, DocumentType.prototype]); |
|
3817 |
|
3818 (function () { |
|
3819 |
|
3820 if (typeof window.CustomEvent === 'function') { |
|
3821 return false; |
|
3822 } |
|
3823 |
|
3824 function CustomEvent(event, params) { |
|
3825 params = params || { bubbles: false, cancelable: false, detail: undefined }; |
|
3826 var evt = _document2.default.createEvent('CustomEvent'); |
|
3827 evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); |
|
3828 return evt; |
|
3829 } |
|
3830 |
|
3831 CustomEvent.prototype = window.Event.prototype; |
|
3832 window.CustomEvent = CustomEvent; |
|
3833 })(); |
|
3834 |
|
3835 if (typeof Object.assign !== 'function') { |
|
3836 Object.assign = function (target) { |
|
3837 |
|
3838 if (target === null || target === undefined) { |
|
3839 throw new TypeError('Cannot convert undefined or null to object'); |
|
3840 } |
|
3841 |
|
3842 var to = Object(target); |
|
3843 |
|
3844 for (var index = 1, total = arguments.length; index < total; index++) { |
|
3845 var nextSource = arguments[index]; |
|
3846 |
|
3847 if (nextSource !== null) { |
|
3848 for (var nextKey in nextSource) { |
|
3849 if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { |
|
3850 to[nextKey] = nextSource[nextKey]; |
|
3851 } |
|
3852 } |
|
3853 } |
|
3854 } |
|
3855 return to; |
|
3856 }; |
|
3857 } |
|
3858 |
|
3859 if (!String.prototype.startsWith) { |
|
3860 String.prototype.startsWith = function (searchString, position) { |
|
3861 position = position || 0; |
|
3862 return this.substr(position, searchString.length) === searchString; |
|
3863 }; |
|
3864 } |
|
3865 |
|
3866 if (!Element.prototype.matches) { |
|
3867 Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) { |
|
3868 var matches = (this.document || this.ownerDocument).querySelectorAll(s), |
|
3869 i = matches.length - 1; |
|
3870 while (--i >= 0 && matches.item(i) !== this) {} |
|
3871 return i > -1; |
|
3872 }; |
|
3873 } |
|
3874 |
|
3875 if (window.Element && !Element.prototype.closest) { |
|
3876 Element.prototype.closest = function (s) { |
|
3877 var matches = (this.document || this.ownerDocument).querySelectorAll(s), |
|
3878 i = void 0, |
|
3879 el = this; |
|
3880 do { |
|
3881 i = matches.length; |
|
3882 while (--i >= 0 && matches.item(i) !== el) {} |
|
3883 } while (i < 0 && (el = el.parentElement)); |
|
3884 return el; |
|
3885 }; |
|
3886 } |
|
3887 |
|
3888 (function () { |
|
3889 var lastTime = 0; |
|
3890 var vendors = ['ms', 'moz', 'webkit', 'o']; |
|
3891 for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { |
|
3892 window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']; |
|
3893 window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']; |
|
3894 } |
|
3895 |
|
3896 if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback) { |
|
3897 var currTime = new Date().getTime(); |
|
3898 var timeToCall = Math.max(0, 16 - (currTime - lastTime)); |
|
3899 var id = window.setTimeout(function () { |
|
3900 callback(currTime + timeToCall); |
|
3901 }, timeToCall); |
|
3902 lastTime = currTime + timeToCall; |
|
3903 return id; |
|
3904 }; |
|
3905 |
|
3906 if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) { |
|
3907 clearTimeout(id); |
|
3908 }; |
|
3909 })(); |
|
3910 |
|
3911 if (/firefox/i.test(navigator.userAgent)) { |
|
3912 var getComputedStyle = window.getComputedStyle; |
|
3913 window.getComputedStyle = function (el, pseudoEl) { |
|
3914 var t = getComputedStyle(el, pseudoEl); |
|
3915 return t === null ? { getPropertyValue: function getPropertyValue() {} } : t; |
|
3916 }; |
|
3917 } |
|
3918 |
|
3919 if (!window.Promise) { |
|
3920 window.Promise = _promisePolyfill2.default; |
|
3921 } |
|
3922 |
|
3923 (function (constructor) { |
|
3924 if (constructor && constructor.prototype && constructor.prototype.children === null) { |
|
3925 Object.defineProperty(constructor.prototype, 'children', { |
|
3926 get: function get() { |
|
3927 var i = 0, |
|
3928 node = void 0, |
|
3929 nodes = this.childNodes, |
|
3930 children = []; |
|
3931 while (node = nodes[i++]) { |
|
3932 if (node.nodeType === 1) { |
|
3933 children.push(node); |
|
3934 } |
|
3935 } |
|
3936 return children; |
|
3937 } |
|
3938 }); |
|
3939 } |
|
3940 })(window.Node || window.Element); |
|
3941 |
|
3942 },{"2":2,"4":4}]},{},[20,6,5,9,14,11,10,12,13,15]); |