Update mediaelement js lib to v4.2.8

pull/2458/head
jmontoyaa 8 years ago
parent 6011aed609
commit f11e2ffc66
  1. 8
      app/Resources/public/assets/mediaelement/.bower.json
  2. 8
      app/Resources/public/assets/mediaelement/README.md
  3. 1455
      app/Resources/public/assets/mediaelement/build/mediaelement-and-player.js
  4. 2
      app/Resources/public/assets/mediaelement/build/mediaelement-and-player.min.js
  5. BIN
      app/Resources/public/assets/mediaelement/build/mediaelement-flash-audio-ogg.swf
  6. BIN
      app/Resources/public/assets/mediaelement/build/mediaelement-flash-audio.swf
  7. BIN
      app/Resources/public/assets/mediaelement/build/mediaelement-flash-video-hls.swf
  8. BIN
      app/Resources/public/assets/mediaelement/build/mediaelement-flash-video-mdash.swf
  9. BIN
      app/Resources/public/assets/mediaelement/build/mediaelement-flash-video.swf
  10. 322
      app/Resources/public/assets/mediaelement/build/mediaelement.js
  11. 2
      app/Resources/public/assets/mediaelement/build/mediaelement.min.js
  12. 7
      app/Resources/public/assets/mediaelement/build/mediaelementplayer-legacy.css
  13. 2
      app/Resources/public/assets/mediaelement/build/mediaelementplayer-legacy.min.css
  14. 7
      app/Resources/public/assets/mediaelement/build/mediaelementplayer.css
  15. 2
      app/Resources/public/assets/mediaelement/build/mediaelementplayer.min.css
  16. 62
      app/Resources/public/assets/mediaelement/build/renderers/dailymotion.js
  17. 2
      app/Resources/public/assets/mediaelement/build/renderers/dailymotion.min.js
  18. 352
      app/Resources/public/assets/mediaelement/build/renderers/facebook.js
  19. 2
      app/Resources/public/assets/mediaelement/build/renderers/facebook.min.js
  20. 9
      app/Resources/public/assets/mediaelement/build/renderers/soundcloud.js
  21. 2
      app/Resources/public/assets/mediaelement/build/renderers/soundcloud.min.js
  22. 18
      app/Resources/public/assets/mediaelement/build/renderers/twitch.js
  23. 2
      app/Resources/public/assets/mediaelement/build/renderers/twitch.min.js
  24. 42
      app/Resources/public/assets/mediaelement/build/renderers/vimeo.js
  25. 2
      app/Resources/public/assets/mediaelement/build/renderers/vimeo.min.js
  26. 68
      app/Resources/public/assets/mediaelement/changelog.md

@ -23,12 +23,12 @@
"./build/mediaelement-and-player.js",
"./build/mediaelementplayer.css"
],
"version": "4.2.5",
"_release": "4.2.5",
"version": "4.2.8",
"_release": "4.2.8",
"_resolution": {
"type": "version",
"tag": "4.2.5",
"commit": "71a4642fa25a8db2fb1f81f4171e2cd4fd64244c"
"tag": "4.2.8",
"commit": "0896fce181f4f1450bdc1c70598e66fe0bfa872b"
},
"_source": "https://github.com/johndyer/mediaelement.git",
"_target": "4.*",

@ -14,6 +14,7 @@ One file. Any browser. Same UI.
[![Coverage Status](https://img.shields.io/coveralls/mediaelement/mediaelement.svg)](https://coveralls.io/github/mediaelement/mediaelement)
[![MIT License](https://img.shields.io/npm/l/mediaelement.svg)](https://mediaelement.mit-license.org/)
[![CDNJS](https://img.shields.io/cdnjs/v/mediaelement.svg)](https://cdnjs.com/libraries/mediaelement)
[![jsDelivr Hits](https://data.jsdelivr.com/v1/package/npm/mediaelement/badge?style=rounded)](https://www.jsdelivr.com/package/npm/mediaelement)
# Table of Contents
@ -39,6 +40,13 @@ In general, `MediaElement.js` supports **IE11+, MS Edge, Chrome, Firefox, Safari
**It is strongly recommended to read the entire documentation and check the `demo` folder to get the most out of this package**. Visit [here](docs) to start.
## * IMPORTANT NOTE for Safari users (Jun 8, 2017)
Since Sierra version, `autoplay` policies have changed. You may experience an error if you try to execute `play` programatically or via `autoplay` attribute with MediaElement, unless `muted` attribute is specified.
For more information, read https://webkit.org/blog/7734/auto-play-policy-changes-for-macos/
## * IMPORTANT CHANGES on `4.2.0` version
As part of the continuous improvements the player, we have decided to drop completely support for IE9 and IE10, since market share of those browsers together is 0.4%, according to http://caniuse.com/usage-table.

File diff suppressed because one or more lines are too long

@ -315,8 +315,8 @@ i18n.language = function () {
throw new TypeError('Language code must be a string value');
}
if (!/^[a-z]{2}(\-[a-z]{2})?$/i.test(args[0])) {
throw new TypeError('Language code must have format `xx` or `xx-xx`');
if (!/^[a-z]{2,3}((\-|_)[a-z]{2})?$/i.test(args[0])) {
throw new TypeError('Language code must have format 2-3 letters and. optionally, hyphen, underscore followed by 2 more letters');
}
i18n.lang = args[0];
@ -864,9 +864,23 @@ var MediaElement = function MediaElement(idOrNode, options, sources) {
triggerAction = function triggerAction(methodName, args) {
try {
if (methodName === 'play' && t.mediaElement.rendererName === 'native_dash') {
setTimeout(function () {
t.mediaElement.renderer[methodName](args);
}, 100);
var response = t.mediaElement.renderer[methodName](args);
if (response && typeof response.then === 'function') {
response.catch(function () {
if (t.mediaElement.paused) {
setTimeout(function () {
var tmpResponse = t.mediaElement.renderer.play();
if (tmpResponse !== undefined) {
tmpResponse.catch(function () {
if (!t.mediaElement.renderer.paused) {
t.mediaElement.renderer.pause();
}
});
}
}, 150);
}
});
}
} else {
t.mediaElement.renderer[methodName](args);
}
@ -947,6 +961,15 @@ var MediaElement = function MediaElement(idOrNode, options, sources) {
}
};
t.mediaElement.destroy = function () {
var mediaElement = t.mediaElement.originalNode.cloneNode(true);
var wrapper = t.mediaElement.parentElement;
mediaElement.removeAttribute('id');
mediaElement.remove();
t.mediaElement.remove();
wrapper.append(mediaElement);
};
if (mediaFiles.length) {
t.mediaElement.src = mediaFiles;
}
@ -975,6 +998,7 @@ var MediaElement = function MediaElement(idOrNode, options, sources) {
};
_window2.default.MediaElement = MediaElement;
_mejs2.default.MediaElement = MediaElement;
exports.default = MediaElement;
@ -993,7 +1017,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
var mejs = {};
mejs.version = '4.2.5';
mejs.version = '4.2.8';
mejs.html5media = {
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'],
@ -1305,12 +1329,12 @@ var DashNativeRenderer = {
options = Object.assign(options, mediaElement.options);
var props = _mejs2.default.html5media.properties,
events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']),
events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
return e !== 'error';
}),
attachNativeEvents = function attachNativeEvents(e) {
if (e.type !== 'error') {
var _event = (0, _general.createEvent)(e.type, mediaElement);
mediaElement.dispatchEvent(_event);
}
var event = (0, _general.createEvent)(e.type, mediaElement);
mediaElement.dispatchEvent(event);
},
assignGettersSetters = function assignGettersSetters(propName) {
var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
@ -1385,25 +1409,21 @@ var DashNativeRenderer = {
assignEvents(events[_i3]);
}
var assignMdashEvents = function assignMdashEvents(name, data) {
if (name.toLowerCase() === 'error') {
mediaElement.generateError(data.message, node.src);
console.error(data);
var assignMdashEvents = function assignMdashEvents(e) {
if (e.type.toLowerCase() === 'error') {
mediaElement.generateError(e.message, node.src);
console.error(e);
} else {
var _event2 = (0, _general.createEvent)(name, mediaElement);
_event2.data = data;
mediaElement.dispatchEvent(_event2);
var _event = (0, _general.createEvent)(e.type, mediaElement);
_event.data = e;
mediaElement.dispatchEvent(_event);
}
};
for (var eventType in dashEvents) {
if (dashEvents.hasOwnProperty(eventType)) {
dashPlayer.on(dashEvents[eventType], function (e) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
return assignMdashEvents(e.type, args);
return assignMdashEvents(e);
});
}
}
@ -1561,6 +1581,7 @@ var FlashMediaElementRenderer = {
create: function create(mediaElement, options, mediaFiles) {
var flash = {};
var isActive = false;
flash.options = options;
flash.id = mediaElement.id + '_' + flash.options.prefix;
@ -1628,21 +1649,23 @@ var FlashMediaElementRenderer = {
var methods = _mejs2.default.html5media.methods,
assignMethods = function assignMethods(methodName) {
flash[methodName] = function () {
if (flash.flashApi !== null) {
if (flash.flashApi['fire_' + methodName]) {
try {
flash.flashApi['fire_' + methodName]();
} catch (e) {
if (isActive) {
if (flash.flashApi !== null) {
if (flash.flashApi['fire_' + methodName]) {
try {
flash.flashApi['fire_' + methodName]();
} catch (e) {
}
} else {
}
} else {
flash.flashApiStack.push({
type: 'call',
methodName: methodName
});
}
} else {
flash.flashApiStack.push({
type: 'call',
methodName: methodName
});
}
};
};
@ -1714,16 +1737,28 @@ var FlashMediaElementRenderer = {
flashVars.push('pseudostreamtype=' + flash.options.pseudoStreamingType);
}
if (flash.options.streamDelimiter) {
flashVars.push('streamdelimiter=' + encodeURIComponent(flash.options.streamDelimiter));
}
if (flash.options.proxyType) {
flashVars.push('proxytype=' + flash.options.proxyType);
}
mediaElement.appendChild(flash.flashWrapper);
mediaElement.originalNode.style.display = 'none';
var settings = [];
if (_constants.IS_IE) {
if (_constants.IS_IE || _constants.IS_EDGE) {
var specialIEContainer = _document2.default.createElement('div');
flash.flashWrapper.appendChild(specialIEContainer);
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 + '"'];
if (_constants.IS_EDGE) {
settings = ['type="application/x-shockwave-flash"', 'data="' + flash.options.pluginPath + flash.options.filename + '"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '\'"'];
} else {
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 + '"'];
}
if (!isVideo) {
settings.push('style="clip: rect(0 0 0 0); position: absolute;"');
@ -1732,10 +1767,13 @@ var FlashMediaElementRenderer = {
specialIEContainer.outerHTML = '<object ' + settings.join(' ') + '>' + ('<param name="movie" value="' + flash.options.pluginPath + flash.options.filename + '?x=' + new Date() + '" />') + ('<param name="flashvars" value="' + flashVars.join('&amp;') + '" />') + '<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>';
} else {
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('&') + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '"'];
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('&') + '"'];
if (!isVideo) {
settings.push('style="clip: rect(0 0 0 0); position: absolute;"');
if (isVideo) {
settings.push('width="' + flashWidth + '"');
settings.push('height="' + flashHeight + '"');
} else {
settings.push('style="position: fixed; left: -9999em; top: -9999em;"');
}
flash.flashWrapper.innerHTML = '<embed ' + settings.join(' ') + '>';
@ -1744,11 +1782,13 @@ var FlashMediaElementRenderer = {
flash.flashNode = flash.flashWrapper.lastChild;
flash.hide = function () {
isActive = false;
if (isVideo) {
flash.flashNode.style.display = 'none';
}
};
flash.show = function () {
isActive = true;
if (isVideo) {
flash.flashNode.style.display = '';
}
@ -1813,7 +1853,11 @@ if (hasFlash) {
pseudoStreamingStartQueryParam: 'start',
pseudoStreamingType: 'byte'
pseudoStreamingType: 'byte',
proxyType: '',
streamDelimiter: ''
},
canPlayType: function canPlayType(type) {
@ -1923,7 +1967,7 @@ var NativeFlv = {
NativeFlv._createPlayer(settings);
});
} else {
settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.3.2/flv.min.js';
settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/flv.js@latest';
NativeFlv.promise = NativeFlv.promise || (0, _dom.loadScript)(settings.options.path);
NativeFlv.promise.then(function () {
@ -1937,7 +1981,7 @@ var NativeFlv = {
_createPlayer: function _createPlayer(settings) {
flvjs.LoggingControl.enableDebug = settings.options.debug;
flvjs.LoggingControl.enableVerbose = settings.options.debug;
var player = flvjs.createPlayer(settings.options);
var player = flvjs.createPlayer(settings.options, settings.configs);
_window2.default['__ready__' + settings.id](player);
return player;
}
@ -1948,7 +1992,7 @@ var FlvNativeRenderer = {
options: {
prefix: 'native_flv',
flv: {
path: 'https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.3.2/flv.min.js',
path: 'https://cdn.jsdelivr.net/npm/flv.js@latest',
cors: true,
debug: false
@ -1971,12 +2015,12 @@ var FlvNativeRenderer = {
options = Object.assign(options, mediaElement.options);
var props = _mejs2.default.html5media.properties,
events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']),
events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
return e !== 'error';
}),
attachNativeEvents = function attachNativeEvents(e) {
if (e.type !== 'error') {
var _event = (0, _general.createEvent)(e.type, mediaElement);
mediaElement.dispatchEvent(_event);
}
var event = (0, _general.createEvent)(e.type, mediaElement);
mediaElement.dispatchEvent(event);
},
assignGettersSetters = function assignGettersSetters(propName) {
var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
@ -1996,6 +2040,7 @@ var FlvNativeRenderer = {
_flvOptions.cors = options.flv.cors;
_flvOptions.debug = options.flv.debug;
_flvOptions.path = options.flv.path;
var _flvConfigs = options.flv.configs;
flvPlayer.destroy();
for (var i = 0, total = events.length; i < total; i++) {
@ -2003,6 +2048,7 @@ var FlvNativeRenderer = {
}
flvPlayer = NativeFlv._createPlayer({
options: _flvOptions,
configs: _flvConfigs,
id: id
});
flvPlayer.attachMediaElement(node);
@ -2043,9 +2089,9 @@ var FlvNativeRenderer = {
var message = data[0] + ': ' + data[1] + ' ' + data[2].msg;
mediaElement.generateError(message, node.src);
} else {
var _event2 = (0, _general.createEvent)(name, mediaElement);
_event2.data = data;
mediaElement.dispatchEvent(_event2);
var _event = (0, _general.createEvent)(name, mediaElement);
_event.data = data;
mediaElement.dispatchEvent(_event);
}
};
@ -2087,6 +2133,7 @@ var FlvNativeRenderer = {
flvOptions.cors = options.flv.cors;
flvOptions.debug = options.flv.debug;
flvOptions.path = options.flv.path;
var flvConfigs = options.flv.configs;
node.setSize = function (width, height) {
node.style.width = width + 'px';
@ -2118,6 +2165,7 @@ var FlvNativeRenderer = {
mediaElement.promises.push(NativeFlv.load({
options: flvOptions,
configs: flvConfigs,
id: id
}));
@ -2168,7 +2216,7 @@ var NativeHls = {
NativeHls._createPlayer(settings);
});
} else {
settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.7.11/hls.min.js';
settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/hls.js@latest';
NativeHls.promise = NativeHls.promise || (0, _dom.loadScript)(settings.options.path);
NativeHls.promise.then(function () {
@ -2191,7 +2239,7 @@ var HlsNativeRenderer = {
options: {
prefix: 'native_hls',
hls: {
path: 'https://cdnjs.cloudflare.com/ajax/libs/hls.js/0.7.11/hls.min.js',
path: 'https://cdn.jsdelivr.net/npm/hls.js@latest',
autoStartLoad: false,
debug: false
@ -2210,19 +2258,21 @@ var HlsNativeRenderer = {
autoplay = originalNode.autoplay;
var hlsPlayer = null,
node = null;
node = null,
index = 0,
total = mediaFiles.length;
node = originalNode.cloneNode(true);
options = Object.assign(options, mediaElement.options);
options.hls.autoStartLoad = preload && preload !== 'none' || autoplay;
var props = _mejs2.default.html5media.properties,
events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']),
events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
return e !== 'error';
}),
attachNativeEvents = function attachNativeEvents(e) {
if (e.type !== 'error') {
var _event = (0, _general.createEvent)(e.type, mediaElement);
mediaElement.dispatchEvent(_event);
}
var event = (0, _general.createEvent)(e.type, mediaElement);
mediaElement.dispatchEvent(event);
},
assignGettersSetters = function assignGettersSetters(propName) {
var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
@ -2237,7 +2287,7 @@ var HlsNativeRenderer = {
node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value;
if (hlsPlayer !== null) {
hlsPlayer.destroy();
for (var i = 0, total = events.length; i < total; i++) {
for (var i = 0, _total = events.length; i < _total; i++) {
node.removeEventListener(events[i], attachNativeEvents);
}
hlsPlayer = NativeHls._createPlayer({
@ -2254,7 +2304,7 @@ var HlsNativeRenderer = {
};
};
for (var i = 0, total = props.length; i < total; i++) {
for (var i = 0, _total2 = props.length; i < _total2; i++) {
assignGettersSetters(props[i]);
}
@ -2272,7 +2322,7 @@ var HlsNativeRenderer = {
node.addEventListener(eventName, attachNativeEvents);
};
for (var _i = 0, _total = events.length; _i < _total; _i++) {
for (var _i = 0, _total3 = events.length; _i < _total3; _i++) {
assignEvents(events[_i]);
}
@ -2280,7 +2330,8 @@ var HlsNativeRenderer = {
recoverSwapAudioCodecDate = void 0;
var assignHlsEvents = function assignHlsEvents(name, data) {
if (name === 'hlsError') {
console.warn(name, data);
console.warn(data);
data = data[1];
if (data.fatal) {
switch (data.type) {
@ -2295,15 +2346,27 @@ var HlsNativeRenderer = {
hlsPlayer.swapAudioCodec();
hlsPlayer.recoverMediaError();
} else {
var _message = 'Cannot recover, last media error recovery failed';
mediaElement.generateError(_message, node.src);
console.error(_message);
var message = 'Cannot recover, last media error recovery failed';
mediaElement.generateError(message, node.src);
console.error(message);
}
break;
case 'networkError':
var message = 'Network error';
mediaElement.generateError(message, node.src);
console.error(message);
if (data.details === 'manifestLoadError') {
if (index < total && mediaFiles[index + 1] !== undefined) {
node.setSrc(mediaFiles[index++].src);
node.load();
node.play();
} else {
var _message = 'Network error';
mediaElement.generateError(_message, mediaFiles);
console.error(_message);
}
} else {
var _message2 = 'Network error';
mediaElement.generateError(_message2, mediaFiles);
console.error(_message2);
}
break;
default:
hlsPlayer.destroy();
@ -2311,9 +2374,9 @@ var HlsNativeRenderer = {
}
}
} else {
var _event2 = (0, _general.createEvent)(name, mediaElement);
_event2.data = data;
mediaElement.dispatchEvent(_event2);
var _event = (0, _general.createEvent)(name, mediaElement);
_event.data = data;
mediaElement.dispatchEvent(_event);
}
};
@ -2334,10 +2397,10 @@ var HlsNativeRenderer = {
}
};
if (mediaFiles && mediaFiles.length > 0) {
for (var _i2 = 0, _total2 = mediaFiles.length; _i2 < _total2; _i2++) {
if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i2].type)) {
node.setAttribute('src', mediaFiles[_i2].src);
if (total > 0) {
for (; index < total; index++) {
if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[index].type)) {
node.setAttribute('src', mediaFiles[index].src);
break;
}
}
@ -2450,6 +2513,7 @@ var HtmlMediaElement = {
create: function create(mediaElement, options, mediaFiles) {
var id = mediaElement.id + '_' + options.prefix;
var isActive = false;
var node = null;
@ -2477,19 +2541,23 @@ var HtmlMediaElement = {
};
};
for (var i = 0, total = props.length; i < total; i++) {
for (var i = 0, _total = props.length; i < _total; i++) {
assignGettersSetters(props[i]);
}
var events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']),
var events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
return e !== 'error';
}),
assignEvents = function assignEvents(eventName) {
node.addEventListener(eventName, function (e) {
var event = (0, _general.createEvent)(e.type, mediaElement);
mediaElement.dispatchEvent(event);
if (isActive) {
var _event = (0, _general.createEvent)(e.type, e.target);
mediaElement.dispatchEvent(_event);
}
});
};
for (var _i = 0, _total = events.length; _i < _total; _i++) {
for (var _i = 0, _total2 = events.length; _i < _total2; _i++) {
assignEvents(events[_i]);
}
@ -2500,26 +2568,42 @@ var HtmlMediaElement = {
};
node.hide = function () {
isActive = false;
node.style.display = 'none';
return node;
};
node.show = function () {
isActive = true;
node.style.display = '';
return node;
};
if (mediaFiles && mediaFiles.length > 0) {
for (var _i2 = 0, _total2 = mediaFiles.length; _i2 < _total2; _i2++) {
if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i2].type)) {
node.setAttribute('src', mediaFiles[_i2].src);
var index = 0,
total = mediaFiles.length;
if (total > 0) {
for (; index < total; index++) {
if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[index].type)) {
node.setAttribute('src', mediaFiles[index].src);
break;
}
}
}
node.addEventListener('error', function (e) {
if (e.target.error.code === 4 && isActive) {
if (index < total && mediaFiles[index + 1] !== undefined) {
node.src = mediaFiles[index++].src;
node.load();
node.play();
} else {
mediaElement.generateError('Media error: Format(s) not supported or source(s) not found', mediaFiles);
}
}
});
var event = (0, _general.createEvent)('rendererready', node);
mediaElement.dispatchEvent(event);
@ -2828,6 +2912,29 @@ var YouTubeIframeRenderer = {
assignMethods(methods[_i]);
}
var errorHandler = function errorHandler(error) {
var message = '';
switch (error.data) {
case 2:
message = 'The request contains an invalid parameter value. Verify that video ID has 11 characters and that contains no invalid characters, such as exclamation points or asterisks.';
break;
case 5:
message = 'The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.';
break;
case 100:
message = 'The video requested was not found. Either video has been removed or has been marked as private.';
break;
case 101:
case 105:
message = 'The owner of the requested video does not allow it to be played in embedded players.';
break;
default:
message = 'Unknown error.';
break;
}
mediaElement.generateError('Code ' + error.data + ': ' + message, mediaFiles);
};
var youtubeContainer = _document2.default.createElement('div');
youtubeContainer.id = youtube.id;
@ -2855,9 +2962,6 @@ var YouTubeIframeRenderer = {
showinfo: 0,
modestbranding: 0,
html5: 1,
playsinline: 0,
start: 0,
end: 0,
iv_load_policy: 3
}, youtube.options.youtube),
origin: _window2.default.location.host,
@ -2887,7 +2991,7 @@ var YouTubeIframeRenderer = {
youTubeIframe = youTubeApi.getIframe();
if (mediaElement.originalNode.getAttribute('muted')) {
if (mediaElement.originalNode.muted) {
youTubeApi.mute();
}
@ -2954,25 +3058,29 @@ var YouTubeIframeRenderer = {
}
},
onError: function onError(e) {
var event = (0, _general.createEvent)('error', youtube);
event.data = e.data;
mediaElement.dispatchEvent(event);
return errorHandler(e);
}
}
};
if (isAudio) {
if (isAudio || mediaElement.originalNode.hasAttribute('playsinline')) {
youtubeSettings.playerVars.playsinline = 1;
}
if (mediaElement.originalNode.controls) {
youtubeSettings.playerVars.controls = 1;
}
if (mediaElement.originalNode.autoplay) {
youtubeSettings.playerVars.autoplay = 1;
}
if (mediaElement.originalNode.loop) {
youtubeSettings.playerVars.loop = 1;
}
if ((youtubeSettings.playerVars.loop && parseInt(youtubeSettings.playerVars.loop, 10) === 1 || mediaElement.originalNode.src.indexOf('loop=') > -1) && !youtubeSettings.playerVars.playlist && mediaElement.originalNode.src.indexOf('playlist=') === -1) {
youtubeSettings.playerVars.playlist = YouTubeApi.getYouTubeId(mediaElement.originalNode.src);
}
YouTubeApi.enqueueIframe(youtubeSettings);
youtube.onEvent = function (eventName, player, _youTubeState) {
@ -3042,7 +3150,7 @@ _renderer.renderer.add(YouTubeIframeRenderer);
Object.defineProperty(exports, "__esModule", {
value: true
});
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_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;
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;
var _window = _dereq_(3);
@ -3089,6 +3197,20 @@ var SUPPORT_POINTER_EVENTS = exports.SUPPORT_POINTER_EVENTS = function () {
return !!supports;
}();
var SUPPORT_PASSIVE_EVENT = exports.SUPPORT_PASSIVE_EVENT = function () {
var supportsPassive = false;
try {
var opts = Object.defineProperty({}, 'passive', {
get: function get() {
supportsPassive = true;
}
});
_window2.default.addEventListener('test', null, opts);
} catch (e) {}
return supportsPassive;
}();
var html5Elements = ['source', 'track', 'audio', 'video'];
var video = void 0;
@ -3195,6 +3317,7 @@ _mejs2.default.Features.isStockAndroid = IS_STOCK_ANDROID;
_mejs2.default.Features.hasMSE = HAS_MSE;
_mejs2.default.Features.supportsNativeHLS = SUPPORTS_NATIVE_HLS;
_mejs2.default.Features.supportsPointerEvents = SUPPORT_POINTER_EVENTS;
_mejs2.default.Features.supportsPassiveEvent = SUPPORT_PASSIVE_EVENT;
_mejs2.default.Features.hasiOSFullScreen = HAS_IOS_FULLSCREEN;
_mejs2.default.Features.hasNativeFullscreen = HAS_NATIVE_FULLSCREEN;
_mejs2.default.Features.hasWebkitNativeFullScreen = HAS_WEBKIT_NATIVE_FULLSCREEN;
@ -3357,7 +3480,10 @@ function siblings(el, filter) {
}
function visible(elem) {
return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);
if (elem.getClientRects !== undefined && elem.getClientRects === 'function') {
return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);
}
return !!(elem.offsetWidth || elem.offsetHeight);
}
function ajax(url, dataType, success, error) {
@ -3815,9 +3941,9 @@ if (window.Element && !Element.prototype.closest) {
})();
if (/firefox/i.test(navigator.userAgent)) {
window.mediaElementJsOldGetComputedStyle = window.getComputedStyle;
var getComputedStyle = window.getComputedStyle;
window.getComputedStyle = function (el, pseudoEl) {
var t = window.mediaElementJsOldGetComputedStyle(el, pseudoEl);
var t = getComputedStyle(el, pseudoEl);
return t === null ? { getPropertyValue: function getPropertyValue() {} } : t;
};
}

File diff suppressed because one or more lines are too long

@ -517,6 +517,7 @@ Reference: http://blog.rrwd.nl/2015/04/04/the-screen-reader-text-class-why-and-h
}
.mejs-volume-button > .mejs-volume-slider {
-webkit-backface-visibility: hidden;
background: rgba(50, 50, 50, 0.7);
border-radius: 0;
bottom: 100%;
@ -660,7 +661,7 @@ Reference: http://blog.rrwd.nl/2015/04/04/the-screen-reader-text-class-why-and-h
list-style-type: none !important;
margin: 0 0 6px;
overflow: hidden;
padding: 0 10px;
padding: 0;
}
.mejs-captions-selector-list-item:hover,
@ -684,7 +685,8 @@ Reference: http://blog.rrwd.nl/2015/04/04/the-screen-reader-text-class-why-and-h
float: left;
font-size: 10px;
line-height: 15px;
padding: 4px 0 0;
padding: 4px 10px 0;
width: 100%;
}
.mejs-captions-selected,
@ -748,6 +750,7 @@ Reference: http://blog.rrwd.nl/2015/04/04/the-screen-reader-text-class-why-and-h
}
.mejs-overlay-error > img {
left: 0;
max-width: 100%;
position: absolute;
top: 0;
z-index: -1;

File diff suppressed because one or more lines are too long

@ -517,6 +517,7 @@ Reference: http://blog.rrwd.nl/2015/04/04/the-screen-reader-text-class-why-and-h
}
.mejs__volume-button > .mejs__volume-slider {
-webkit-backface-visibility: hidden;
background: rgba(50, 50, 50, 0.7);
border-radius: 0;
bottom: 100%;
@ -660,7 +661,7 @@ Reference: http://blog.rrwd.nl/2015/04/04/the-screen-reader-text-class-why-and-h
list-style-type: none !important;
margin: 0 0 6px;
overflow: hidden;
padding: 0 10px;
padding: 0;
}
.mejs__captions-selector-list-item:hover,
@ -684,7 +685,8 @@ Reference: http://blog.rrwd.nl/2015/04/04/the-screen-reader-text-class-why-and-h
float: left;
font-size: 10px;
line-height: 15px;
padding: 4px 0 0;
padding: 4px 10px 0;
width: 100%;
}
.mejs__captions-selected,
@ -748,6 +750,7 @@ Reference: http://blog.rrwd.nl/2015/04/04/the-screen-reader-text-class-why-and-h
}
.mejs__overlay-error > img {
left: 0;
max-width: 100%;
position: absolute;
top: 0;
z-index: -1;

File diff suppressed because one or more lines are too long

@ -109,7 +109,8 @@ var DailyMotionIframeRenderer = {
var events = void 0,
dmPlayer = null,
dmIframe = null;
dmIframe = null,
muted = mediaElement.originalNode.muted;
dm.options = options;
dm.id = mediaElement.id + '_' + options.prefix;
@ -136,7 +137,8 @@ var DailyMotionIframeRenderer = {
case 'ended':
return dmPlayer.ended;
case 'muted':
return dmPlayer.muted;
muted = dmPlayer.muted;
return muted;
case 'buffered':
var percentLoaded = dmPlayer.bufferedTime,
duration = dmPlayer.duration;
@ -172,7 +174,11 @@ var DailyMotionIframeRenderer = {
dmPlayer.seek(value);
break;
case 'muted':
if (value === true) {
dmPlayer.setVolume(0);
}
dmPlayer.setMuted(value);
muted = value;
setTimeout(function () {
var event = mejs.Utils.createEvent('volumechange', dm);
mediaElement.dispatchEvent(event);
@ -180,6 +186,14 @@ var DailyMotionIframeRenderer = {
break;
case 'volume':
dmPlayer.setVolume(value);
if (value === 0 && !dmPlayer.muted) {
dmPlayer.setMuted(true);
muted = true;
} else if (value > 0 && dmPlayer.muted) {
dmPlayer.setMuted(false);
muted = false;
}
setTimeout(function () {
var event = mejs.Utils.createEvent('volumechange', dm);
mediaElement.dispatchEvent(event);
@ -258,8 +272,11 @@ var DailyMotionIframeRenderer = {
}
if (mediaElement.originalNode.muted) {
dmPlayer.setMuted(true);
dmPlayer.setVolume(0);
dmPlayer.setMuted(true);
} else {
dmPlayer.setVolume(dmPlayer.volume);
dmPlayer.setMuted(false);
}
events = mejs.html5media.events;
@ -267,7 +284,7 @@ var DailyMotionIframeRenderer = {
var assignNativeEvents = function assignNativeEvents(eventName) {
if (eventName !== 'ended') {
dmPlayer.addEventListener(eventName, function (e) {
var event = mejs.Utils.createEvent(e.type, dmPlayer);
var event = mejs.Utils.createEvent(e.type, dm);
mediaElement.dispatchEvent(event);
});
}
@ -278,42 +295,42 @@ var DailyMotionIframeRenderer = {
}
dmPlayer.addEventListener('ad_start', function () {
var event = mejs.Utils.createEvent('play', dmPlayer);
var event = mejs.Utils.createEvent('play', dm);
mediaElement.dispatchEvent(event);
event = mejs.Utils.createEvent('progress', dmPlayer);
event = mejs.Utils.createEvent('progress', dm);
mediaElement.dispatchEvent(event);
event = mejs.Utils.createEvent('timeupdate', dmPlayer);
event = mejs.Utils.createEvent('timeupdate', dm);
mediaElement.dispatchEvent(event);
});
dmPlayer.addEventListener('ad_timeupdate', function () {
var event = mejs.Utils.createEvent('timeupdate', dmPlayer);
var event = mejs.Utils.createEvent('timeupdate', dm);
mediaElement.dispatchEvent(event);
});
dmPlayer.addEventListener('ad_pause', function () {
var event = mejs.Utils.createEvent('pause', dmPlayer);
mediaElement.dispatchEvent(event);
});
dmPlayer.addEventListener('ad_end', function () {
var event = mejs.Utils.createEvent('ended', dmPlayer);
var event = mejs.Utils.createEvent('pause', dm);
mediaElement.dispatchEvent(event);
});
dmPlayer.addEventListener('start', function () {
if (mediaElement.originalNode.muted) {
dmPlayer.setMuted(true);
if (dmPlayer.muted) {
var event = mejs.Utils.createEvent('volumechange', dm);
mediaElement.dispatchEvent(event);
}
});
dmPlayer.addEventListener('video_start', function () {
var event = mejs.Utils.createEvent('play', dmPlayer);
var event = mejs.Utils.createEvent('play', dm);
mediaElement.dispatchEvent(event);
var playingEvent = mejs.Utils.createEvent('playing', dm);
mediaElement.dispatchEvent(playingEvent);
});
dmPlayer.addEventListener('ad_timeupdate', function () {
var event = mejs.Utils.createEvent('timeupdate', dmPlayer);
var event = mejs.Utils.createEvent('timeupdate', dm);
mediaElement.dispatchEvent(event);
});
dmPlayer.addEventListener('video_end', function () {
var event = mejs.Utils.createEvent('ended', dmPlayer);
var event = mejs.Utils.createEvent('ended', dm);
mediaElement.dispatchEvent(event);
if (mediaElement.originalNode.getAttribute('loop')) {
@ -339,11 +356,15 @@ var DailyMotionIframeRenderer = {
mediaElement.originalNode.style.display = 'none';
var videoId = DailyMotionApi.getDailyMotionId(mediaFiles[0].src),
dmSettings = Object.assign({
dmSettings = {
id: dm.id,
container: dmContainer,
videoId: videoId
}, dm.options.dailymotion);
};
dmSettings.params = Object.assign({}, dm.options.dailymotion);
dmSettings.params.controls = !!mediaElement.originalNode.controls;
if (mediaElement.originalNode.autoplay) {
dmSettings.params.autoplay = true;
@ -351,6 +372,7 @@ var DailyMotionIframeRenderer = {
if (mediaElement.originalNode.muted) {
dmSettings.params.mute = true;
}
dmSettings.params.api = '1';
DailyMotionApi.enqueueIframe(dmSettings);

File diff suppressed because one or more lines are too long

@ -11,6 +11,30 @@
*/(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){
'use strict';
var FacebookApi = {
promise: null,
load: function load(settings) {
if (typeof FB !== 'undefined') {
FacebookApi._createPlayer(settings);
} else {
FacebookApi.promise = FacebookApi.promise || mejs.Utils.loadScript('https://connect.facebook.net/' + settings.options.lang + '/sdk.js');
FacebookApi.promise.then(function () {
FB.init(settings.options);
setTimeout(function () {
FacebookApi._createPlayer(settings);
}, 50);
});
}
},
_createPlayer: function _createPlayer(settings) {
window['__ready__' + settings.id]();
}
};
var FacebookRenderer = {
name: 'facebook',
options: {
@ -18,7 +42,8 @@ var FacebookRenderer = {
facebook: {
appId: '',
xfbml: true,
version: 'v2.10'
version: 'v2.10',
lang: 'en_US'
}
},
@ -27,54 +52,50 @@ var FacebookRenderer = {
},
create: function create(mediaElement, options, mediaFiles) {
var apiStack = [],
fb = {},
readyState = 4;
var fbWrapper = {},
apiStack = [],
eventHandler = {},
readyState = 4,
autoplay = mediaElement.originalNode.autoplay;
var poster = '',
src = '',
var hasStartedPlaying = false,
paused = true,
ended = false,
hasStartedPlaying = false,
fbApi = null,
fbDiv = null;
fbPlayer = null,
src = '',
poster = '',
autoplay = mediaElement.originalNode.autoplay;
fb.options = options;
fb.id = mediaElement.id + '_' + options.prefix;
fb.mediaElement = mediaElement;
if (mejs.Features.isiPhone && mediaElement.originalNode.getAttribute('poster')) {
poster = mediaElement.originalNode.getAttribute('poster');
mediaElement.originalNode.removeAttribute('poster');
}
options = Object.assign(options, mediaElement.options);
fbWrapper.options = options;
fbWrapper.id = mediaElement.id + '_' + options.prefix;
fbWrapper.mediaElement = mediaElement;
var props = mejs.html5media.properties,
assignGettersSetters = function assignGettersSetters(propName) {
var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
fbWrapper['get' + capName] = function () {
fb['get' + capName] = function () {
if (fbApi !== null) {
if (fbPlayer !== null) {
var value = null;
switch (propName) {
case 'currentTime':
return fbApi.getCurrentPosition();
return fbPlayer.getCurrentPosition();
case 'duration':
return fbApi.getDuration();
return fbPlayer.getDuration();
case 'volume':
return fbApi.getVolume();
return fbPlayer.getVolume();
case 'paused':
return paused;
case 'ended':
return ended;
case 'muted':
return fbApi.isMuted();
return fbPlayer.isMuted();
case 'buffered':
return {
start: function start() {
@ -97,47 +118,60 @@ var FacebookRenderer = {
}
};
fbWrapper['set' + capName] = function (value) {
fb['set' + capName] = function (value) {
if (fbApi !== null) {
if (fbPlayer !== null) {
switch (propName) {
case 'src':
var url = typeof value === 'string' ? value : value[0].src;
src = url;
fbContainer.remove();
fbContainer = document.createElement('div');
fbContainer.id = fb.id;
fbContainer.className = 'fb-video';
fbContainer.setAttribute('data-href', url);
fbContainer.setAttribute('data-allowfullscreen', 'true');
fbContainer.setAttribute('data-controls', 'false');
mediaElement.originalNode.parentNode.insertBefore(fbContainer, mediaElement.originalNode);
mediaElement.originalNode.style.display = 'none';
fbDiv.remove();
createFacebookEmbed(url, options.facebook);
FacebookApi.load({
lang: fb.options.lang,
id: fb.id
});
FB.XFBML.parse();
if (autoplay) {
fbApi.play();
fbPlayer.play();
}
break;
case 'currentTime':
fbApi.seek(value);
fbPlayer.seek(value);
break;
case 'muted':
if (value) {
fbApi.mute();
fbPlayer.mute();
} else {
fbApi.unmute();
fbPlayer.unmute();
}
setTimeout(function () {
var event = mejs.Utils.createEvent('volumechange', fbWrapper);
var event = mejs.Utils.createEvent('volumechange', fb);
mediaElement.dispatchEvent(event);
}, 50);
break;
case 'volume':
fbApi.setVolume(value);
fbPlayer.setVolume(value);
setTimeout(function () {
var event = mejs.Utils.createEvent('volumechange', fbWrapper);
var event = mejs.Utils.createEvent('volumechange', fb);
mediaElement.dispatchEvent(event);
}, 50);
break;
case 'readyState':
var event = mejs.Utils.createEvent('canplay', fbWrapper);
var event = mejs.Utils.createEvent('canplay', fb);
mediaElement.dispatchEvent(event);
break;
default:
@ -156,13 +190,13 @@ var FacebookRenderer = {
var methods = mejs.html5media.methods,
assignMethods = function assignMethods(methodName) {
fbWrapper[methodName] = function () {
if (fbApi !== null) {
fb[methodName] = function () {
if (fbPlayer !== null) {
switch (methodName) {
case 'play':
return fbApi.play();
return fbPlayer.play();
case 'pause':
return fbApi.pause();
return fbPlayer.pause();
case 'load':
return null;
}
@ -176,165 +210,145 @@ var FacebookRenderer = {
assignMethods(methods[_i]);
}
function sendEvents(events) {
function assignEvents(events) {
for (var _i2 = 0, _total2 = events.length; _i2 < _total2; _i2++) {
var event = mejs.Utils.createEvent(events[_i2], fbWrapper);
var event = mejs.Utils.createEvent(events[_i2], fb);
mediaElement.dispatchEvent(event);
}
}
function createFacebookEmbed(url, config) {
src = url;
fbDiv = document.createElement('div');
fbDiv.id = fbWrapper.id;
fbDiv.className = "fb-video";
fbDiv.setAttribute("data-href", url);
fbDiv.setAttribute("data-allowfullscreen", "true");
fbDiv.setAttribute("data-controls", "false");
mediaElement.originalNode.parentNode.insertBefore(fbDiv, mediaElement.originalNode);
mediaElement.originalNode.style.display = 'none';
window.fbAsyncInit = function () {
FB.init(config);
FB.Event.subscribe('xfbml.ready', function (msg) {
if (msg.type === 'video') {
fbApi = msg.instance;
var fbIframe = fbDiv.getElementsByTagName('iframe')[0],
width = fbIframe.offsetWidth,
height = fbIframe.offsetHeight,
events = ['mouseover', 'mouseout'],
assignEvents = function assignEvents(e) {
var event = mejs.Utils.createEvent(e.type, fbWrapper);
mediaElement.dispatchEvent(event);
};
window['__ready__' + fb.id] = function () {
FB.Event.subscribe('xfbml.ready', function (msg) {
if (msg.type === 'video' && fb.id === msg.id) {
mediaElement.fbPlayer = fbPlayer = msg.instance;
var fbIframe = document.getElementById(fb.id),
width = fbIframe.offsetWidth,
height = fbIframe.offsetHeight,
events = ['mouseover', 'mouseout'],
assignIframeEvents = function assignIframeEvents(e) {
var event = mejs.Utils.createEvent(e.type, fb);
mediaElement.dispatchEvent(event);
};
fb.setSize(width, height);
if (!mediaElement.originalNode.muted) {
fbPlayer.unmute();
}
fbWrapper.setSize(width, height);
if (autoplay) {
fbPlayer.play();
}
if (autoplay) {
fbApi.play();
}
for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) {
fbIframe.addEventListener(events[_i3], assignIframeEvents);
}
for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) {
fbIframe.addEventListener(events[_i3], assignEvents, false);
}
fb.eventHandler = {};
var fbEvents = ['startedPlaying', 'paused', 'finishedPlaying', 'startedBuffering', 'finishedBuffering'];
for (var _i4 = 0, _total4 = fbEvents.length; _i4 < _total4; _i4++) {
var event = fbEvents[_i4],
handler = eventHandler[event];
if (handler !== undefined && handler !== null && !mejs.Utils.isObjectEmpty(handler) && typeof handler.removeListener === 'function') {
handler.removeListener(event);
}
var fbEvents = ['startedPlaying', 'paused', 'finishedPlaying', 'startedBuffering', 'finishedBuffering'];
for (var _i4 = 0, _total4 = fbEvents.length; _i4 < _total4; _i4++) {
var event = fbEvents[_i4],
handler = fb.eventHandler[event];
if (handler !== undefined && handler !== null && !mejs.Utils.isObjectEmpty(handler) && typeof handler.removeListener === 'function') {
handler.removeListener(event);
}
}
if (apiStack.length) {
for (var _i5 = 0, _total5 = apiStack.length; _i5 < _total5; _i5++) {
var stackItem = apiStack[_i5];
if (apiStack.length) {
for (var _i5 = 0, _total5 = apiStack.length; _i5 < _total5; _i5++) {
var stackItem = apiStack[_i5];
if (stackItem.type === 'set') {
var propName = stackItem.propName,
capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
if (stackItem.type === 'set') {
var propName = stackItem.propName,
capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
fbWrapper['set' + capName](stackItem.value);
} else if (stackItem.type === 'call') {
fbWrapper[stackItem.methodName]();
}
fb['set' + capName](stackItem.value);
} else if (stackItem.type === 'call') {
fb[stackItem.methodName]();
}
}
sendEvents(['rendererready', 'loadeddata', 'canplay', 'progress', 'loadedmetadata', 'timeupdate']);
var timer = void 0;
eventHandler.startedPlaying = fbApi.subscribe('startedPlaying', function () {
if (!hasStartedPlaying) {
hasStartedPlaying = true;
}
paused = false;
ended = false;
sendEvents(['play', 'playing', 'timeupdate']);
timer = setInterval(function () {
fbApi.getCurrentPosition();
sendEvents(['timeupdate']);
}, 250);
});
eventHandler.paused = fbApi.subscribe('paused', function () {
paused = true;
ended = false;
sendEvents(['pause']);
});
eventHandler.finishedPlaying = fbApi.subscribe('finishedPlaying', function () {
paused = true;
ended = true;
sendEvents(['ended']);
clearInterval(timer);
timer = null;
});
eventHandler.startedBuffering = fbApi.subscribe('startedBuffering', function () {
sendEvents(['progress', 'timeupdate']);
});
eventHandler.finishedBuffering = fbApi.subscribe('finishedBuffering', function () {
sendEvents(['progress', 'timeupdate']);
});
}
});
};
mejs.Utils.loadScript('https://connect.facebook.net/en_US/sdk.js');
}
assignEvents(['rendererready', 'loadeddata', 'canplay', 'progress', 'loadedmetadata', 'timeupdate']);
if (mediaFiles.length > 0) {
createFacebookEmbed(mediaFiles[0].src, fbWrapper.options.facebook);
}
var timer = void 0;
fbWrapper.hide = function () {
fbWrapper.stopInterval();
fbWrapper.pause();
if (fbDiv) {
fbDiv.style.display = 'none';
}
fb.eventHandler.startedPlaying = fbPlayer.subscribe('startedPlaying', function () {
if (!hasStartedPlaying) {
hasStartedPlaying = true;
}
paused = false;
ended = false;
assignEvents(['play', 'playing', 'timeupdate']);
timer = setInterval(function () {
fbPlayer.getCurrentPosition();
assignEvents(['timeupdate']);
}, 250);
});
fb.eventHandler.paused = fbPlayer.subscribe('paused', function () {
paused = true;
ended = false;
assignEvents(['pause']);
});
fb.eventHandler.finishedPlaying = fbPlayer.subscribe('finishedPlaying', function () {
paused = true;
ended = true;
assignEvents(['ended']);
clearInterval(timer);
timer = null;
});
fb.eventHandler.startedBuffering = fbPlayer.subscribe('startedBuffering', function () {
assignEvents(['progress', 'timeupdate']);
});
fb.eventHandler.finishedBuffering = fbPlayer.subscribe('finishedBuffering', function () {
assignEvents(['progress', 'timeupdate']);
});
}
});
};
fbWrapper.show = function () {
if (fbDiv) {
fbDiv.style.display = '';
src = mediaFiles[0].src;
var fbContainer = document.createElement('div');
fbContainer.id = fb.id;
fbContainer.className = 'fb-video';
fbContainer.setAttribute('data-href', src);
fbContainer.setAttribute('data-allowfullscreen', true);
fbContainer.setAttribute('data-controls', !!mediaElement.originalNode.controls);
mediaElement.originalNode.parentNode.insertBefore(fbContainer, mediaElement.originalNode);
mediaElement.originalNode.style.display = 'none';
FacebookApi.load({
options: fb.options.facebook,
id: fb.id
});
fb.hide = function () {
fb.pause();
if (fbPlayer) {
fbContainer.style.display = 'none';
}
};
fbWrapper.setSize = function (width) {
if (fbApi !== null && !isNaN(width)) {
fbDiv.style.width = width;
fb.setSize = function (width) {
if (fbPlayer !== null && !isNaN(width)) {
fbContainer.style.width = width;
}
};
fbWrapper.destroy = function () {
if (poster) {
mediaElement.originalNode.setAttribute('poster', poster);
fb.show = function () {
if (fbPlayer) {
fbContainer.style.display = '';
}
};
fbWrapper.interval = null;
fbWrapper.startInterval = function () {
fbWrapper.interval = setInterval(function () {
var event = mejs.Utils.createEvent('timeupdate', fbWrapper);
mediaElement.dispatchEvent(event);
}, 250);
};
fbWrapper.stopInterval = function () {
if (fbWrapper.interval) {
clearInterval(fbWrapper.interval);
fb.destroy = function () {
if (poster) {
mediaElement.originalNode.setAttribute('poster', poster);
}
};
return fbWrapper;
return fb;
}
};

File diff suppressed because one or more lines are too long

@ -47,7 +47,8 @@ var SoundCloudIframeRenderer = {
var sc = {},
apiStack = [],
readyState = 4,
autoplay = mediaElement.originalNode.autoplay;
autoplay = mediaElement.originalNode.autoplay,
isVideo = mediaElement.originalNode !== null && mediaElement.originalNode.tagName.toLowerCase() === 'video';
var duration = 0,
currentTime = 0,
@ -259,10 +260,10 @@ var SoundCloudIframeRenderer = {
scIframe = document.createElement('iframe');
scIframe.id = sc.id;
scIframe.width = 10;
scIframe.height = 10;
scIframe.width = isVideo ? '100%' : 1;
scIframe.height = isVideo ? '100%' : 1;
scIframe.frameBorder = 0;
scIframe.style.visibility = 'hidden';
scIframe.style.visibility = isVideo ? 'visible' : 'hidden';
scIframe.src = mediaFiles[0].src;
scIframe.scrolling = 'no';

@ -9,4 +9,4 @@
* License: MIT
*
*/
!function e(t,n,r){function a(s,o){if(!n[s]){if(!t[s]){var u="function"==typeof require&&require;if(!o&&u)return u(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var d=n[s]={exports:{}};t[s][0].call(d.exports,function(e){var n=t[s][1][e];return a(n||e)},d,d.exports,e,t,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s<r.length;s++)a(r[s]);return a}({1:[function(e,t,n){"use strict";var r={promise:null,load:function(e){"undefined"!=typeof SC?r._createPlayer(e):(r.promise=r.promise||mejs.Utils.loadScript("https://w.soundcloud.com/player/api.js"),r.promise.then(function(){r._createPlayer(e)}))},_createPlayer:function(e){var t=SC.Widget(e.iframe);window["__ready__"+e.id](t)}},a={name:"soundcloud_iframe",options:{prefix:"soundcloud_iframe"},canPlayType:function(e){return~["video/soundcloud","video/x-soundcloud"].indexOf(e.toLowerCase())},create:function(e,t,n){var a={},i=[],s=e.originalNode.autoplay,o=0,u=0,c=0,d=!0,l=!1,p=null,f=null;a.options=t,a.id=e.id+"_"+t.prefix,a.mediaElement=e;for(var v=mejs.html5media.properties,m=0,h=v.length;m<h;m++)!function(t){var n=""+t.substring(0,1).toUpperCase()+t.substring(1);a["get"+n]=function(){if(null!==p){switch(t){case"currentTime":return u;case"duration":return o;case"volume":return 1;case"paused":return d;case"ended":return l;case"muted":return!1;case"buffered":return{start:function(){return 0},end:function(){return c*o},length:1};case"src":return f?f.src:"";case"readyState":return 4}return null}return null},a["set"+n]=function(n){if(null!==p)switch(t){case"src":var r="string"==typeof n?n:n[0].src;p.load(r),s&&p.play();break;case"currentTime":p.seekTo(1e3*n);break;case"muted":n?p.setVolume(0):p.setVolume(1),setTimeout(function(){var t=mejs.Utils.createEvent("volumechange",a);e.dispatchEvent(t)},50);break;case"volume":p.setVolume(n),setTimeout(function(){var t=mejs.Utils.createEvent("volumechange",a);e.dispatchEvent(t)},50);break;case"readyState":var o=mejs.Utils.createEvent("canplay",a);e.dispatchEvent(o)}else i.push({type:"set",propName:t,value:n})}}(v[m]);for(var y=mejs.html5media.methods,E=0,g=y.length;E<g;E++)!function(e){a[e]=function(){if(null!==p)switch(e){case"play":return p.play();case"pause":return p.pause();case"load":return null}else i.push({type:"call",methodName:e})}}(y[E]);window["__ready__"+a.id]=function(t){if(e.scPlayer=p=t,s&&p.play(),i.length)for(var n=0,r=i.length;n<r;n++){var f=i[n];if("set"===f.type){var v=f.propName,m=""+v.substring(0,1).toUpperCase()+v.substring(1);a["set"+m](f.value)}else"call"===f.type&&a[f.methodName]()}p.bind(SC.Widget.Events.PLAY_PROGRESS,function(){d=!1,l=!1,p.getPosition(function(t){u=t/1e3;var n=mejs.Utils.createEvent("timeupdate",a);e.dispatchEvent(n)})}),p.bind(SC.Widget.Events.PAUSE,function(){d=!0;var t=mejs.Utils.createEvent("pause",a);e.dispatchEvent(t)}),p.bind(SC.Widget.Events.PLAY,function(){d=!1,l=!1;var t=mejs.Utils.createEvent("play",a);e.dispatchEvent(t)}),p.bind(SC.Widget.Events.FINISHED,function(){d=!1,l=!0;var t=mejs.Utils.createEvent("ended",a);e.dispatchEvent(t)}),p.bind(SC.Widget.Events.READY,function(){p.getDuration(function(t){o=t/1e3;var n=mejs.Utils.createEvent("loadedmetadata",a);e.dispatchEvent(n)})}),p.bind(SC.Widget.Events.LOAD_PROGRESS,function(){p.getDuration(function(t){if(o>0){c=o*t;var n=mejs.Utils.createEvent("progress",a);e.dispatchEvent(n)}}),p.getDuration(function(t){o=t;var n=mejs.Utils.createEvent("loadedmetadata",a);e.dispatchEvent(n)})});for(var h=["rendererready","loadeddata","loadedmetadata","canplay"],y=0,E=h.length;y<E;y++){var g=mejs.Utils.createEvent(h[y],a);e.dispatchEvent(g)}},(f=document.createElement("iframe")).id=a.id,f.width=10,f.height=10,f.frameBorder=0,f.style.visibility="hidden",f.src=n[0].src,f.scrolling="no",e.appendChild(f),e.originalNode.style.display="none";var S={iframe:f,id:a.id};return r.load(S),a.setSize=function(){},a.hide=function(){a.pause(),f&&(f.style.display="none")},a.show=function(){f&&(f.style.display="")},a.destroy=function(){p.destroy()},a}};mejs.Utils.typeChecks.push(function(e){return/\/\/(w\.)?soundcloud.com/i.test(e)?"video/x-soundcloud":null}),mejs.Renderers.add(a)},{}]},{},[1]);
!function e(t,n,r){function a(s,o){if(!n[s]){if(!t[s]){var u="function"==typeof require&&require;if(!o&&u)return u(s,!0);if(i)return i(s,!0);var d=new Error("Cannot find module '"+s+"'");throw d.code="MODULE_NOT_FOUND",d}var c=n[s]={exports:{}};t[s][0].call(c.exports,function(e){var n=t[s][1][e];return a(n||e)},c,c.exports,e,t,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s<r.length;s++)a(r[s]);return a}({1:[function(e,t,n){"use strict";var r={promise:null,load:function(e){"undefined"!=typeof SC?r._createPlayer(e):(r.promise=r.promise||mejs.Utils.loadScript("https://w.soundcloud.com/player/api.js"),r.promise.then(function(){r._createPlayer(e)}))},_createPlayer:function(e){var t=SC.Widget(e.iframe);window["__ready__"+e.id](t)}},a={name:"soundcloud_iframe",options:{prefix:"soundcloud_iframe"},canPlayType:function(e){return~["video/soundcloud","video/x-soundcloud"].indexOf(e.toLowerCase())},create:function(e,t,n){var a={},i=[],s=e.originalNode.autoplay,o=null!==e.originalNode&&"video"===e.originalNode.tagName.toLowerCase(),u=0,d=0,c=0,l=!0,p=!1,f=null,v=null;a.options=t,a.id=e.id+"_"+t.prefix,a.mediaElement=e;for(var m=mejs.html5media.properties,h=function(t){var n=""+t.substring(0,1).toUpperCase()+t.substring(1);a["get"+n]=function(){if(null!==f){switch(t){case"currentTime":return d;case"duration":return u;case"volume":return 1;case"paused":return l;case"ended":return p;case"muted":return!1;case"buffered":return{start:function(){return 0},end:function(){return c*u},length:1};case"src":return v?v.src:"";case"readyState":return 4}return null}return null},a["set"+n]=function(n){if(null!==f)switch(t){case"src":var r="string"==typeof n?n:n[0].src;f.load(r),s&&f.play();break;case"currentTime":f.seekTo(1e3*n);break;case"muted":n?f.setVolume(0):f.setVolume(1),setTimeout(function(){var t=mejs.Utils.createEvent("volumechange",a);e.dispatchEvent(t)},50);break;case"volume":f.setVolume(n),setTimeout(function(){var t=mejs.Utils.createEvent("volumechange",a);e.dispatchEvent(t)},50);break;case"readyState":var o=mejs.Utils.createEvent("canplay",a);e.dispatchEvent(o)}else i.push({type:"set",propName:t,value:n})}},y=0,E=m.length;y<E;y++)h(m[y]);for(var g=mejs.html5media.methods,S=function(e){a[e]=function(){if(null!==f)switch(e){case"play":return f.play();case"pause":return f.pause();case"load":return null}else i.push({type:"call",methodName:e})}},U=0,_=g.length;U<_;U++)S(g[U]);window["__ready__"+a.id]=function(t){if(e.scPlayer=f=t,s&&f.play(),i.length)for(var n=0,r=i.length;n<r;n++){var o=i[n];if("set"===o.type){var v=o.propName,m=""+v.substring(0,1).toUpperCase()+v.substring(1);a["set"+m](o.value)}else"call"===o.type&&a[o.methodName]()}f.bind(SC.Widget.Events.PLAY_PROGRESS,function(){l=!1,p=!1,f.getPosition(function(t){d=t/1e3;var n=mejs.Utils.createEvent("timeupdate",a);e.dispatchEvent(n)})}),f.bind(SC.Widget.Events.PAUSE,function(){l=!0;var t=mejs.Utils.createEvent("pause",a);e.dispatchEvent(t)}),f.bind(SC.Widget.Events.PLAY,function(){l=!1,p=!1;var t=mejs.Utils.createEvent("play",a);e.dispatchEvent(t)}),f.bind(SC.Widget.Events.FINISHED,function(){l=!1,p=!0;var t=mejs.Utils.createEvent("ended",a);e.dispatchEvent(t)}),f.bind(SC.Widget.Events.READY,function(){f.getDuration(function(t){u=t/1e3;var n=mejs.Utils.createEvent("loadedmetadata",a);e.dispatchEvent(n)})}),f.bind(SC.Widget.Events.LOAD_PROGRESS,function(){f.getDuration(function(t){if(u>0){c=u*t;var n=mejs.Utils.createEvent("progress",a);e.dispatchEvent(n)}}),f.getDuration(function(t){u=t;var n=mejs.Utils.createEvent("loadedmetadata",a);e.dispatchEvent(n)})});for(var h=["rendererready","loadeddata","loadedmetadata","canplay"],y=0,E=h.length;y<E;y++){var g=mejs.Utils.createEvent(h[y],a);e.dispatchEvent(g)}},(v=document.createElement("iframe")).id=a.id,v.width=o?"100%":1,v.height=o?"100%":1,v.frameBorder=0,v.style.visibility=o?"visible":"hidden",v.src=n[0].src,v.scrolling="no",e.appendChild(v),e.originalNode.style.display="none";var b={iframe:v,id:a.id};return r.load(b),a.setSize=function(){},a.hide=function(){a.pause(),v&&(v.style.display="none")},a.show=function(){v&&(v.style.display="")},a.destroy=function(){f.destroy()},a}};mejs.Utils.typeChecks.push(function(e){return/\/\/(w\.)?soundcloud.com/i.test(e)?"video/x-soundcloud":null}),mejs.Renderers.add(a)},{}]},{},[1]);

@ -62,10 +62,10 @@ var TwitchApi = {
for (var i = 0, total = parameters.length; i < total; i++) {
var paramParts = parameters[i].split('=');
if (~paramParts[0].indexOf('channel=')) {
if (~paramParts[0].indexOf('channel')) {
twitchId = paramParts[1];
break;
} else if (~paramParts[0].indexOf('video=')) {
} else if (~paramParts[0].indexOf('video')) {
twitchId = 'v' + paramParts[1];
break;
}
@ -82,12 +82,12 @@ var TwitchApi = {
var parts = url.split('?');
url = parts[0];
var id = url.substring(url.lastIndexOf('/') + 1);
return (/^\d+$/i.test(id) !== null ? 'v' + id : id
return (/^\d+$/i.test(id) ? 'v' + id : id
);
},
getTwitchType: function getTwitchType(id) {
return (/^v\d+/i.test(id) !== null ? 'video' : 'channel'
return (/^v\d+/i.test(id) ? 'video' : 'channel'
);
}
};
@ -276,7 +276,7 @@ var TwitchIframeRenderer = {
var events = ['mouseover', 'mouseout'],
assignEvents = function assignEvents(e) {
var event = createEvent(e.type, twitch);
var event = mejs.Utils.createEvent(e.type, twitch);
mediaElement.dispatchEvent(event);
};
@ -286,12 +286,12 @@ var TwitchIframeRenderer = {
var timer = void 0;
twitchPlayer.addEventListener('ready', function () {
twitchPlayer.addEventListener(Twitch.Player.READY, function () {
paused = false;
ended = false;
sendEvents(['rendererready', 'loadedmetadata', 'loadeddata', 'canplay']);
});
twitchPlayer.addEventListener('play', function () {
twitchPlayer.addEventListener(Twitch.Player.PLAY, function () {
if (!hasStartedPlaying) {
hasStartedPlaying = true;
}
@ -304,14 +304,14 @@ var TwitchIframeRenderer = {
sendEvents(['timeupdate']);
}, 250);
});
twitchPlayer.addEventListener('pause', function () {
twitchPlayer.addEventListener(Twitch.Player.PAUSE, function () {
paused = true;
ended = false;
if (!twitchPlayer.getEnded()) {
sendEvents(['pause']);
}
});
twitchPlayer.addEventListener('ended', function () {
twitchPlayer.addEventListener(Twitch.Player.ENDED, function () {
paused = true;
ended = true;
sendEvents(['ended']);

File diff suppressed because one or more lines are too long

@ -39,7 +39,7 @@ var VimeoApi = {
var parts = url.split('?');
url = parts[0];
return parseInt(url.substring(url.lastIndexOf('/') + 1));
return parseInt(url.substring(url.lastIndexOf('/') + 1), 10);
}
};
@ -73,10 +73,8 @@ var vimeoIframeRenderer = {
vimeo.id = mediaElement.id + '_' + options.prefix;
vimeo.mediaElement = mediaElement;
var errorHandler = function errorHandler(error, target) {
var event = mejs.Utils.createEvent('error', target);
event.message = error.name + ': ' + error.message;
mediaElement.dispatchEvent(event);
var errorHandler = function errorHandler(error) {
mediaElement.generateError('Code ' + error.name + ': ' + error.message, mediaFiles);
};
var props = mejs.html5media.properties,
@ -91,10 +89,8 @@ var vimeoIframeRenderer = {
switch (propName) {
case 'currentTime':
return currentTime;
case 'duration':
return duration;
case 'volume':
return volume;
case 'muted':
@ -103,12 +99,12 @@ var vimeoIframeRenderer = {
return paused;
case 'ended':
return ended;
case 'src':
vimeoPlayer.getVideoUrl().then(function (_url) {
url = _url;
}).catch(function (error) {
return errorHandler(error);
});
return url;
case 'buffered':
return {
@ -141,7 +137,7 @@ var vimeoIframeRenderer = {
vimeoPlayer.play();
}
}).catch(function (error) {
errorHandler(error, vimeo);
return errorHandler(error);
});
break;
case 'currentTime':
@ -152,7 +148,7 @@ var vimeoIframeRenderer = {
mediaElement.dispatchEvent(event);
}, 50);
}).catch(function (error) {
errorHandler(error, vimeo);
return errorHandler(error);
});
break;
case 'volume':
@ -164,12 +160,12 @@ var vimeoIframeRenderer = {
mediaElement.dispatchEvent(event);
}, 50);
}).catch(function (error) {
errorHandler(error, vimeo);
return errorHandler(error);
});
break;
case 'loop':
vimeoPlayer.setLoop(value).catch(function (error) {
errorHandler(error, vimeo);
return errorHandler(error);
});
break;
case 'muted':
@ -181,7 +177,7 @@ var vimeoIframeRenderer = {
mediaElement.dispatchEvent(event);
}, 50);
}).catch(function (error) {
errorHandler(error, vimeo);
return errorHandler(error);
});
} else {
vimeoPlayer.setVolume(oldVolume).then(function () {
@ -191,7 +187,7 @@ var vimeoIframeRenderer = {
mediaElement.dispatchEvent(event);
}, 50);
}).catch(function (error) {
errorHandler(error, vimeo);
return errorHandler(error);
});
}
break;
@ -256,6 +252,11 @@ var vimeoIframeRenderer = {
}
}
if (mediaElement.originalNode.muted) {
vimeoPlayer.setVolume(0);
volume = 0;
}
var vimeoIframe = document.getElementById(vimeo.id);
var events = void 0;
@ -295,23 +296,25 @@ var vimeoIframeRenderer = {
if (mediaElement.originalNode.autoplay) {
var initEvent = mejs.Utils.createEvent('play', vimeo);
mediaElement.dispatchEvent(initEvent);
var playingEvent = mejs.Utils.createEvent('playing', vimeo);
mediaElement.dispatchEvent(playingEvent);
}
}
var event = mejs.Utils.createEvent('progress', vimeo);
mediaElement.dispatchEvent(event);
}).catch(function (error) {
errorHandler(error, vimeo);
return errorHandler(error);
});
});
vimeoPlayer.on('timeupdate', function () {
vimeoPlayer.getCurrentTime().then(function (seconds) {
currentTime = seconds;
var event = mejs.Utils.createEvent('timeupdate', vimeo);
mediaElement.dispatchEvent(event);
}).catch(function (error) {
errorHandler(error, vimeo);
return errorHandler(error);
});
});
vimeoPlayer.on('play', function () {
@ -319,6 +322,9 @@ var vimeoIframeRenderer = {
ended = false;
var event = mejs.Utils.createEvent('play', vimeo);
mediaElement.dispatchEvent(event);
var playingEvent = mejs.Utils.createEvent('playing', vimeo);
mediaElement.dispatchEvent(playingEvent);
});
vimeoPlayer.on('pause', function () {
paused = true;

File diff suppressed because one or more lines are too long

@ -1,5 +1,72 @@
### Version History
*4.2.8 (2018/01/16)*
* Clarify effect of setting `toggleCaptionsButtonWhenOnlyOne` (https://github.com/mediaelement/mediaelement/pull/2471) @cjcolvar
* Remember `startVolume` value even if video is muted (https://github.com/mediaelement/mediaelement/pull/2470) @D3nnisH
* Fix @see links for hls.js renderer (https://github.com/mediaelement/mediaelement/pull/2478) @cjcolvar
* UID filter for Flash files @johndyer
*4.2.7 (2017/11/17)*
* Fixed issue with `setFillMode` when using cross-domain URLs in iframe @rafa8626
* Added new `proxyType` and `streamDelimiter` variables to Flash video to support RTMPS compatibility @rafa8626
* Fixed issues with renderers when trying to use `muted` property while using `MediaElement` shim @rafa8626
* Fixed typo with `Twitch` renderer related to trigger mouse events @rafa8626
* Fixed typo when assigning options to `Dailymotion` renderer @rafa8626
* Added missing workflow to set controls on YouTube, Facebook and Dailymotion renderers via `controls` property @rafa8626
* Added missing `playing` event on `Vimeo` and `Dailymotion` renderer @rafa8626
* Expanded regexp to accept 3-letter country codes and underscore for 4-letter country codes @rafa8626
* Added `init`, `getElement` and `buildfeatures` methods for WP compatibility @rafa8626
* Make `setPoster` method to work on mobile devices with native controls (https://github.com/mediaelement/mediaelement/pull/2419) @lucash
* Added missing conditional in native HLS and HTML5 renderer to test media files correctly to trigger error after testing all of them @rafa8626
* Added jsDelivr badge (https://github.com/mediaelement/mediaelement/pull/2421) @LukasDrgon
* Fixed issue with `visible` method when `getClientRects` is not a function @rafa8626
* Fixed issues with `parseInt` method not setting radix in some calls @rafa8626
* Added missing argument in `secondsToTimeCode` method to check the time format given and display accordingly @rafa8626
* Fixed issues related to duplicated calls when triggering error and fixed style for poster when error is displayed @rafa8626
* Fixed issue with captions not being rendered inside video frame on any state @rafa8626
* Integrated `destroy` method in `MediaElement` class @rafa8626
* Added validation to modify `SoundCloud` iframe atributes when using `video` tag @rafa8626
* Fixed issue when checking for native dimensions of `video` element to set responsive dimensions correctly @rafa8626
* Added missing workflow to make `loop` work correctly in YouTube according to documentation @rafa8626
* Changed paths for `hls.js` and `flv.js` renderers to always be up-to-date @rafa8626
* Fixed issue with timecode displaying 60 seconds @rafa8626
* Fixed JSDocs for some features @rafa8626
*4.2.6 (2017/09/19)*
* Fixed positioning of progress bar tooltip @rafa8626
* Added style to avoid flickering when using volume on Chrome @rafa8626
* Fixed broken UUT @rafa8626
* Added `configs` parameter for native FLV according to documentation for flv.js (https://github.com/mediaelement/mediaelement/pull/2344) @xiaosongxiaosong
* Added missing call to avoid further calls to attempt set the player's dimensions once removed @rafa8626
* Fixed typo when checking error event and fixed workflow to loop multiple sources until valid one is found for `html5` and `native_hls` renderers @rafa8626
* Fixed workflow to enable/disable controls once error occurs and once user recovers from error @rafa8626
* Fixed issue when no `height` attribute but style is set to create proper player dimensions @rafa8626
* Use local variable for `getComputedStyle` polyfill to avoid recursion on Firefox (https://github.com/mediaelement/mediaelement/pull/2351) @synthecypher
* Fixed accessibility issues when using keyboard on focused progress bar and moved `keyActions` to their individual components @rafa8626
* Fixed issues with progress bar tooltip when media duration is too long @rafa8626
* Added new `mejs` variables needed for WordPress @rafa8626
* Fixed issues with events fired in incorrect time for `flash_video` renderer @milax
* Set specific settings for embedding flash object in Edge browser (https://github.com/mediaelement/mediaelement/pull/2364) @milax
* Added new constant to detect `passive events` and added conditional for `touchstart` events @rafa8626
* Removed width and height from `embed` object to ensure Flash audio will play on Chrome (https://github.com/mediaelement/mediaelement/pull/2367) @milax
* Fixed issue with Caption/Chapters menus not selecting options properly when using mouse @rafa8626 and @Instagit
* Removed black area when Flash player is used in audio player (https://github.com/mediaelement/mediaelement/pull/2370) @milax
* Fixed issue with `poster` option not being set if `poster` attribute is absent @rafa8626
* Moved code inside `player.js` to corresponding features to restore original order or operations when creating layers @rafa8626
* Added `unmute` command for Facebook renderer @rafa8626
* Fixed events emitting and run handlers of active renderer only for Flash and HTML5 renderer (https://github.com/mediaelement/mediaelement/pull/2368) @milax
* Fixed issues when setting sources for Flash HLS renderer and added missing events @rafa8626
* Upgraded `hls.js` to 0.8.2 version and `flv.js` to 1.3.3 version @rafa8626
* Refactor `Facebook` renderer to solve issues when instantiating multiple videos and added new `lang` parameter to load language on SDK @rafa8626
* Fixed typos in `Twitch` renderer that caused channels not to play properly @rafa8626
* Fixed typos in `Flash` renderer to avoid issues with `embed` dimensions @rafa8626
* Reintegrated old workflow to deal only with `dash.js` play errors @rafa8626
* Updated documentation @rafa8626
* Added documentation about MEJS installation through Bower (https://github.com/mediaelement/mediaelement/pull/2399) @thompsonemerson
*4.2.5 (2017/08/09)*
* Removed workflow that ignored MIME type to get a better media match @rafa8626
@ -41,6 +108,7 @@
* Added missing code to explain how to use `MediaElement` with `RequireJS` @rafa8626
* Integrated Flashls events to be processed by the player @rafa8626
* Fixed test file when using JSDom and Mocha Chai @rafa8626
* Changed arguments in `M(PEG)-DASH` native renderer to trigger correctly events @rafa8626
*4.2.1/4.2.2 (2017/06/28)*

Loading…
Cancel
Save