mediaelement-plugins
Advanced tools
Comparing version 2.5.1 to 2.6.0
@@ -1,7 +0,16 @@ | ||
## Version History | ||
# Version History | ||
2.5.1 (2020/03/16)* | ||
## *2.6.0 (2021/09/20)* | ||
NEW PLUGINS | ||
### ACCESSIBILITY PLUGIN | ||
* Added adoption of value for iconSprite from mediaelement player 5.0 to player for audio description | ||
* Change audio-description-icon for visibility reasons when using user defined color values | ||
* Added default iconSprite for mediaelement player 5.0 ('mejs-controls.svg') for a11y demo | ||
* compatible with MediaElementJS 5.x | ||
## *2.5.1 (2020/03/16)* | ||
### NEW PLUGINS | ||
* Added snapshot plugin | ||
@@ -12,3 +21,3 @@ * Added Markers Rolls plugin (#155) | ||
TRANSLATIONS | ||
### TRANSLATIONS | ||
@@ -22,3 +31,3 @@ * Added Turkish translations (#154) | ||
DOCUMENTATION | ||
### DOCUMENTATION | ||
@@ -29,3 +38,3 @@ * README.md: Fix link to the real Rafael Miranda :) | ||
PIP PLUGIN | ||
### PIP PLUGIN | ||
@@ -41,11 +50,11 @@ * Added support for WICG PiP mode | ||
POSTROLL PLUGIN | ||
### POSTROLL PLUGIN | ||
* Close postroll, when replaing video (#158) | ||
ADS PLUGIN | ||
### ADS PLUGIN | ||
* Added 'mejsprerollfinished' Event to detect end of last Ad-Preroll, Ads.js (#136) | ||
ACCESSIBILITY PLUGIN (#142) | ||
### ACCESSIBILITY PLUGIN (#142) | ||
@@ -57,3 +66,3 @@ * Added support for sign language and audio description and stylings | ||
QUALITY PLUGIN | ||
### QUALITY PLUGIN | ||
@@ -72,3 +81,3 @@ * Added callback on change quality (#140) | ||
PLAYLIST PLUGIN | ||
### PLAYLIST PLUGIN | ||
@@ -79,3 +88,3 @@ * Fix playlist error in Safari (#129, #164) | ||
SPEED KEYS PLUGIN | ||
### SPEED KEYS PLUGIN | ||
@@ -85,3 +94,3 @@ * Implement keyboard controls for changing playback speed using < and > keys like on YouTube. | ||
*2.5.0 (2017/11/17)* | ||
## *2.5.0 (2017/11/17)* | ||
@@ -96,3 +105,3 @@ * Fixed typo on `Playlist` plugin that caused error on Edge, removed `disabled` attribute on each item and fixed workflow to autoplay next element @rafa8626 | ||
*2.4.0 (2017/08/09)* | ||
## *2.4.0 (2017/08/09)* | ||
@@ -106,3 +115,3 @@ * Added missing translations and removed Brazilian Portuguese to favor Portuguese @rafa8626 | ||
*2.3.1 (2017/07/22)* | ||
## *2.3.1 (2017/07/22)* | ||
@@ -115,3 +124,3 @@ * Added missing workflow to avoid loading multiple times same source on `Chromecast` plugin and added code to end session correctly @rafa8626 | ||
*2.3.0 (2017/06/26)* | ||
## *2.3.0 (2017/06/26)* | ||
@@ -126,3 +135,3 @@ * Integrated `Facebook Pixel` plugin (https://github.com/mediaelement/mediaelement-plugins/pull/58) @isantolin | ||
*2.2.2 (2017/05/25)* | ||
## *2.2.2 (2017/05/25)* | ||
@@ -136,3 +145,3 @@ * Added `markerWidth` property for `Markers` plugin (https://github.com/mediaelement/mediaelement-plugins/pull/49) @leocaseiro | ||
*2.2.1 (2017/05/16)* | ||
## *2.2.1 (2017/05/16)* | ||
@@ -151,3 +160,3 @@ * Fixed issues in Safari related to `Source Chooser` plugin @rafa8626 | ||
*2.2.0 (2017/04/28)* | ||
## *2.2.0 (2017/04/28)* | ||
@@ -159,3 +168,3 @@ * Modified commands on `package.json` to avoid creating source map on stylesheets @rafa8626 | ||
*2.1.1 (2017/04/19)* | ||
## *2.1.1 (2017/04/19)* | ||
@@ -168,3 +177,3 @@ * Added demo file to show how to setup and configure plugins @rafa8626 | ||
*2.1.0 (2017/03/30)* | ||
## *2.1.0 (2017/03/30)* | ||
@@ -177,11 +186,11 @@ * Added missing `bind()` calls on `Ads` plugin @rafa8626 | ||
*2.0.0 (2017/03/22)* | ||
## *2.0.0 (2017/03/22)* | ||
* Removed all dependencies to jQuery in code and used `mejs.Utils` to mimic jQuery's most used methods @rafa8626 | ||
*1.2.3 (2017/03/01)* | ||
## *1.2.3 (2017/03/01)* | ||
* Improved way to add control elements by using new `addControlElement()` method @rafa8626 | ||
*1.2.2 (2017/03/01)* | ||
## *1.2.2 (2017/03/01)* | ||
@@ -191,3 +200,3 @@ * Added translation files for all the plugins that required it and added documentation @rafa8626 | ||
*1.2.1 (2017/02/26)* | ||
## *1.2.1 (2017/02/26)* | ||
@@ -200,3 +209,3 @@ * Fixed issue with `Preview` plugin when using delay and moving out of player @rafa8626 | ||
*1.2.0 (2017/02/21)* | ||
## *1.2.0 (2017/02/21)* | ||
@@ -208,3 +217,3 @@ * Integrated ESLint and fixed some bugs found @rafa8626 | ||
*1.1.0 (2017/01/30)* | ||
## *1.1.0 (2017/01/30)* | ||
@@ -214,4 +223,4 @@ * Added `preview` plugin that plays/pauses video when hovering it and allows to mute/fade-in/fade-out audio in `video` and `audio` tags @rafa8626 | ||
*1.0.0 (2017/01/22)* | ||
## *1.0.0 (2017/01/22)* | ||
* initial release |
@@ -52,12 +52,12 @@ /*! | ||
t.node.addEventListener('play', function () { | ||
t.media.addEventListener('play', function () { | ||
return t.options.isPlaying = true; | ||
}); | ||
t.node.addEventListener('playing', function () { | ||
t.media.addEventListener('playing', function () { | ||
return t.options.isPlaying = true; | ||
}); | ||
t.node.addEventListener('pause', function () { | ||
t.media.addEventListener('pause', function () { | ||
return t.options.isPlaying = false; | ||
}); | ||
t.node.addEventListener('ended', function () { | ||
t.media.addEventListener('ended', function () { | ||
return t.options.isPlaying = false; | ||
@@ -168,3 +168,7 @@ }); | ||
startVolume: t.node.volume, | ||
pauseOtherPlayers: false | ||
pauseOtherPlayers: false, | ||
iconSprite: t.options.iconSprite, | ||
fakeNodeName: t.options.fakeNodeName || 'mediaelementwrapper' | ||
}); | ||
@@ -175,3 +179,3 @@ | ||
}); | ||
t.node.addEventListener('play', function () { | ||
t.media.addEventListener('play', function () { | ||
return t.audioDescription.node.play().catch(function (e) { | ||
@@ -181,3 +185,3 @@ return console.error(e); | ||
}); | ||
t.node.addEventListener('playing', function () { | ||
t.media.addEventListener('playing', function () { | ||
return t.audioDescription.node.play().catch(function (e) { | ||
@@ -187,19 +191,19 @@ return console.error(e); | ||
}); | ||
t.node.addEventListener('pause', function () { | ||
t.media.addEventListener('pause', function () { | ||
return t.audioDescription.node.pause(); | ||
}); | ||
t.node.addEventListener('waiting', function () { | ||
t.media.addEventListener('waiting', function () { | ||
return t.audioDescription.node.pause(); | ||
}); | ||
t.node.addEventListener('ended', function () { | ||
t.media.addEventListener('ended', function () { | ||
return t.audioDescription.node.pause(); | ||
}); | ||
t.node.addEventListener('timeupdate', function () { | ||
var shouldSync = Math.abs(t.node.currentTime - t.audioDescription.node.currentTime) > 0.35; | ||
t.media.addEventListener('timeupdate', function () { | ||
var shouldSync = Math.abs(t.currentTime - t.audioDescription.node.currentTime) > 0.35; | ||
var canPlay = t.options.audioDescriptionCanPlay; | ||
if (shouldSync && canPlay) t.audioDescription.node.currentTime = t.node.currentTime; | ||
if (shouldSync && canPlay) t.audioDescription.node.currentTime = t.currentTime; | ||
}); | ||
if (t.options.isVoiceover) { | ||
t.node.addEventListener('volumechange', function () { | ||
t.media.addEventListener('volumechange', function () { | ||
return t.audioDescription.node.volume = t.node.volume; | ||
@@ -226,9 +230,12 @@ }); | ||
if (t.options.audioDescriptionToggled) { | ||
t.audioDescription.node.volume = t.node.volume; | ||
if (t.options.isPlaying && t.audioDescription) t.audioDescription.node.play().catch(function (e) { | ||
return console.error(e); | ||
}); | ||
t.audioDescription.node.volume = t.volume; | ||
if (t.options.isPlaying && t.audioDescription) { | ||
t.audioDescription.node.muted = false; | ||
t.audioDescription.node.play().catch(function (e) { | ||
return console.error(e); | ||
}); | ||
} | ||
if (!t.options.isVoiceover) { | ||
t.node.muted = true; | ||
t.muted = true; | ||
t.audioDescription.node.muted = false; | ||
@@ -242,7 +249,8 @@ } | ||
} else { | ||
t.node.volume = t.audioDescription.node.volume; | ||
t.volume = t.audioDescription.node.volume; | ||
t.audioDescription.node.pause(); | ||
t.audioDescription.node.muted = true; | ||
if (!t.options.isVoiceover) { | ||
t.node.muted = false; | ||
t.muted = false; | ||
t.audioDescription.node.muted = true; | ||
@@ -249,0 +257,0 @@ } |
@@ -12,2 +12,2 @@ /*! | ||
*/ | ||
!function r(s,d,u){function a(o,e){if(!d[o]){if(!s[o]){var i="function"==typeof require&&require;if(!e&&i)return i(o,!0);if(c)return c(o,!0);var t=new Error("Cannot find module '"+o+"'");throw t.code="MODULE_NOT_FOUND",t}var n=d[o]={exports:{}};s[o][0].call(n.exports,function(e){return a(s[o][1][e]||e)},n,n.exports,r,s,d,u)}return d[o].exports}for(var c="function"==typeof require&&require,e=0;e<u.length;e++)a(u[e]);return a}({1:[function(e,o,i){"use strict";mejs.i18n.en["mejs.a11y-audio-description"]="Toggle audio description",mejs.i18n.en["mejs.a11y-video-description"]="Toggle sign language",Object.assign(mejs.MepDefaults,{videoDescriptionToggled:!1,audioDescriptionToggled:!1,defaultSource:null,audioDescriptionSource:null,videoDescriptionSource:null,isPlaying:!1,isVoiceover:!1,audioDescriptionCanPlay:!1}),Object.assign(MediaElementPlayer.prototype,{builda11y:function(){var e=this;e.options.defaultSource={src:e.node.src,type:e.node.type},e.options.isVoiceover=e._loadBooleanFromAttribute("data-audio-description-voiceover"),e.options.audioDescriptionSource=e._loadSourceFromAttribute("data-audio-description"),e.options.videoDescriptionSource=e._loadSourceFromAttribute("data-video-description"),e.options.audioDescriptionSource&&e._createAudioDescription(),e.options.videoDescriptionSource&&e._createVideoDescription(),e.node.addEventListener("play",function(){return e.options.isPlaying=!0}),e.node.addEventListener("playing",function(){return e.options.isPlaying=!0}),e.node.addEventListener("pause",function(){return e.options.isPlaying=!1}),e.node.addEventListener("ended",function(){return e.options.isPlaying=!1})},_getFirstChildNodeByClassName:function(e,o){return[].concat(function(e){if(Array.isArray(e)){for(var o=0,i=Array(e.length);o<e.length;o++)i[o]=e[o];return i}return Array.from(e)}(e.childNodes)).find(function(e){return-1<e.className.indexOf(o)})},_createAudioDescription:function(){var e=this,o=mejs.i18n.t("mejs.a11y-audio-description"),i=document.createElement("div");i.className=e.options.classPrefix+"button "+e.options.classPrefix+"audio-description-button",i.innerHTML='<button type="button" aria-controls="'+e.id+'" title="'+o+'" aria-label="'+o+'" tabindex="0"></button>',e.addControlElement(i,"audio-description"),i.addEventListener("click",function(){e.options.audioDescriptionToggled=!e.options.audioDescriptionToggled,mejs.Utils.toggleClass(i,"audio-description-on"),e._toggleAudioDescription()})},_createVideoDescription:function(){var e=this,o=mejs.i18n.t("mejs.a11y-video-description"),i=document.createElement("div");i.className=e.options.classPrefix+"button "+e.options.classPrefix+"video-description-button",i.innerHTML='<button type="button" aria-controls="'+e.id+'" title="'+o+'" aria-label="'+o+'" tabindex="0"></button>',e.addControlElement(i,"video-description"),i.addEventListener("click",function(){e.options.videoDescriptionToggled=!e.options.videoDescriptionToggled,mejs.Utils.toggleClass(i,"video-description-on"),e._toggleVideoDescription()})},_loadSourceFromAttribute:function(o){if(!this.node.hasAttribute(o))return null;var e,i=void 0;try{var t=this.node.getAttribute(o);i=JSON.parse(t)}catch(e){console.error("error loading "+o+": "+e.message)}finally{e=i}return e?this._evaluateBestMatchingSource(e):null},_loadBooleanFromAttribute:function(e){if(!this.node.hasAttribute(e))return!1;var o=this.node.getAttribute(e);return"true"===o||""===o},_evaluateBestMatchingSource:function(e){var t=this,o=function(e){return i=e.type,o=mejs.Utils.getMimeFromType(i),t.node.canPlayType(o);var o,i},i=e.find(function(e){return"probably"===o(e)});if(i)return i;var n=e.find(function(e){return"maybe"===o(e)});return n||null},_createAudioDescriptionPlayer:function(){var i=this,e=document.createElement("audio");if(e.setAttribute("preload","auto"),e.classList.add(i.options.classPrefix+"audio-description-player"),e.setAttribute("src",i.options.audioDescriptionSource.src),e.setAttribute("type",i.options.audioDescriptionSource.type),e.load(),document.body.appendChild(e),i.audioDescription=new mejs.MediaElementPlayer(e,{features:["volume"],audioVolume:i.options.videoVolume,startVolume:i.node.volume,pauseOtherPlayers:!1}),i.audioDescription.node.addEventListener("canplay",function(){return i.options.audioDescriptionCanPlay=!0}),i.node.addEventListener("play",function(){return i.audioDescription.node.play().catch(function(e){return console.error(e)})}),i.node.addEventListener("playing",function(){return i.audioDescription.node.play().catch(function(e){return console.error(e)})}),i.node.addEventListener("pause",function(){return i.audioDescription.node.pause()}),i.node.addEventListener("waiting",function(){return i.audioDescription.node.pause()}),i.node.addEventListener("ended",function(){return i.audioDescription.node.pause()}),i.node.addEventListener("timeupdate",function(){var e=.35<Math.abs(i.node.currentTime-i.audioDescription.node.currentTime),o=i.options.audioDescriptionCanPlay;e&&o&&(i.audioDescription.node.currentTime=i.node.currentTime)}),i.options.isVoiceover)i.node.addEventListener("volumechange",function(){return i.audioDescription.node.volume=i.node.volume});else{var o=i.options.classPrefix+"volume-button",t=i._getFirstChildNodeByClassName(i.controls,o);if(i.videoVolumeButton=t){var n=i._getFirstChildNodeByClassName(i.audioDescription.controls,o);t.classList.add("hidden"),i.controls.insertBefore(n,t.nextSibling),i.descriptiveVolumeButton=n}}},_toggleAudioDescription:function(){var e=this;e.audioDescription||e._createAudioDescriptionPlayer(),e.options.audioDescriptionToggled?(e.audioDescription.node.volume=e.node.volume,e.options.isPlaying&&e.audioDescription&&e.audioDescription.node.play().catch(function(e){return console.error(e)}),e.options.isVoiceover||(e.node.muted=!0,e.audioDescription.node.muted=!1),!e.options.isVoiceover&&e.videoVolumeButton&&e.descriptiveVolumeButton&&(mejs.Utils.addClass(e.videoVolumeButton,"hidden"),mejs.Utils.removeClass(e.descriptiveVolumeButton,"hidden"))):(e.node.volume=e.audioDescription.node.volume,e.audioDescription.node.pause(),e.options.isVoiceover||(e.node.muted=!1,e.audioDescription.node.muted=!0),!e.options.isVoiceover&&e.videoVolumeButton&&e.descriptiveVolumeButton&&(mejs.Utils.removeClass(e.videoVolumeButton,"hidden"),mejs.Utils.addClass(e.descriptiveVolumeButton,"hidden")))},_toggleVideoDescription:function(){var e=this,o=e.node.currentTime,i=e.options.isPlaying,t=e.options.videoDescriptionToggled;e.node.pause(),e.node.src=t?e.options.videoDescriptionSource.src:e.options.defaultSource.src,e.node.type=t?e.options.videoDescriptionSource.type:e.options.defaultSource.type,e.node.load(),i?e.node.play().then(function(){return e.node.currentTime=o}).catch(function(e){return console.error(e)}):e.node.setCurrentTime(o)}})},{}]},{},[1]); | ||
!function r(s,d,a){function u(i,e){if(!d[i]){if(!s[i]){var o="function"==typeof require&&require;if(!e&&o)return o(i,!0);if(c)return c(i,!0);var t=new Error("Cannot find module '"+i+"'");throw t.code="MODULE_NOT_FOUND",t}var n=d[i]={exports:{}};s[i][0].call(n.exports,function(e){return u(s[i][1][e]||e)},n,n.exports,r,s,d,a)}return d[i].exports}for(var c="function"==typeof require&&require,e=0;e<a.length;e++)u(a[e]);return u}({1:[function(e,i,o){"use strict";mejs.i18n.en["mejs.a11y-audio-description"]="Toggle audio description",mejs.i18n.en["mejs.a11y-video-description"]="Toggle sign language",Object.assign(mejs.MepDefaults,{videoDescriptionToggled:!1,audioDescriptionToggled:!1,defaultSource:null,audioDescriptionSource:null,videoDescriptionSource:null,isPlaying:!1,isVoiceover:!1,audioDescriptionCanPlay:!1}),Object.assign(MediaElementPlayer.prototype,{builda11y:function(){var e=this;e.options.defaultSource={src:e.node.src,type:e.node.type},e.options.isVoiceover=e._loadBooleanFromAttribute("data-audio-description-voiceover"),e.options.audioDescriptionSource=e._loadSourceFromAttribute("data-audio-description"),e.options.videoDescriptionSource=e._loadSourceFromAttribute("data-video-description"),e.options.audioDescriptionSource&&e._createAudioDescription(),e.options.videoDescriptionSource&&e._createVideoDescription(),e.media.addEventListener("play",function(){return e.options.isPlaying=!0}),e.media.addEventListener("playing",function(){return e.options.isPlaying=!0}),e.media.addEventListener("pause",function(){return e.options.isPlaying=!1}),e.media.addEventListener("ended",function(){return e.options.isPlaying=!1})},_getFirstChildNodeByClassName:function(e,i){return[].concat(function(e){if(Array.isArray(e)){for(var i=0,o=Array(e.length);i<e.length;i++)o[i]=e[i];return o}return Array.from(e)}(e.childNodes)).find(function(e){return-1<e.className.indexOf(i)})},_createAudioDescription:function(){var e=this,i=mejs.i18n.t("mejs.a11y-audio-description"),o=document.createElement("div");o.className=e.options.classPrefix+"button "+e.options.classPrefix+"audio-description-button",o.innerHTML='<button type="button" aria-controls="'+e.id+'" title="'+i+'" aria-label="'+i+'" tabindex="0"></button>',e.addControlElement(o,"audio-description"),o.addEventListener("click",function(){e.options.audioDescriptionToggled=!e.options.audioDescriptionToggled,mejs.Utils.toggleClass(o,"audio-description-on"),e._toggleAudioDescription()})},_createVideoDescription:function(){var e=this,i=mejs.i18n.t("mejs.a11y-video-description"),o=document.createElement("div");o.className=e.options.classPrefix+"button "+e.options.classPrefix+"video-description-button",o.innerHTML='<button type="button" aria-controls="'+e.id+'" title="'+i+'" aria-label="'+i+'" tabindex="0"></button>',e.addControlElement(o,"video-description"),o.addEventListener("click",function(){e.options.videoDescriptionToggled=!e.options.videoDescriptionToggled,mejs.Utils.toggleClass(o,"video-description-on"),e._toggleVideoDescription()})},_loadSourceFromAttribute:function(i){if(!this.node.hasAttribute(i))return null;var e,o=void 0;try{var t=this.node.getAttribute(i);o=JSON.parse(t)}catch(e){console.error("error loading "+i+": "+e.message)}finally{e=o}return e?this._evaluateBestMatchingSource(e):null},_loadBooleanFromAttribute:function(e){if(!this.node.hasAttribute(e))return!1;var i=this.node.getAttribute(e);return"true"===i||""===i},_evaluateBestMatchingSource:function(e){var t=this,i=function(e){return o=e.type,i=mejs.Utils.getMimeFromType(o),t.node.canPlayType(i);var i,o},o=e.find(function(e){return"probably"===i(e)});if(o)return o;var n=e.find(function(e){return"maybe"===i(e)});return n||null},_createAudioDescriptionPlayer:function(){var o=this,e=document.createElement("audio");if(e.setAttribute("preload","auto"),e.classList.add(o.options.classPrefix+"audio-description-player"),e.setAttribute("src",o.options.audioDescriptionSource.src),e.setAttribute("type",o.options.audioDescriptionSource.type),e.load(),document.body.appendChild(e),o.audioDescription=new mejs.MediaElementPlayer(e,{features:["volume"],audioVolume:o.options.videoVolume,startVolume:o.node.volume,pauseOtherPlayers:!1,iconSprite:o.options.iconSprite,fakeNodeName:o.options.fakeNodeName||"mediaelementwrapper"}),o.audioDescription.node.addEventListener("canplay",function(){return o.options.audioDescriptionCanPlay=!0}),o.media.addEventListener("play",function(){return o.audioDescription.node.play().catch(function(e){return console.error(e)})}),o.media.addEventListener("playing",function(){return o.audioDescription.node.play().catch(function(e){return console.error(e)})}),o.media.addEventListener("pause",function(){return o.audioDescription.node.pause()}),o.media.addEventListener("waiting",function(){return o.audioDescription.node.pause()}),o.media.addEventListener("ended",function(){return o.audioDescription.node.pause()}),o.media.addEventListener("timeupdate",function(){var e=.35<Math.abs(o.currentTime-o.audioDescription.node.currentTime),i=o.options.audioDescriptionCanPlay;e&&i&&(o.audioDescription.node.currentTime=o.currentTime)}),o.options.isVoiceover)o.media.addEventListener("volumechange",function(){return o.audioDescription.node.volume=o.node.volume});else{var i=o.options.classPrefix+"volume-button",t=o._getFirstChildNodeByClassName(o.controls,i);if(o.videoVolumeButton=t){var n=o._getFirstChildNodeByClassName(o.audioDescription.controls,i);t.classList.add("hidden"),o.controls.insertBefore(n,t.nextSibling),o.descriptiveVolumeButton=n}}},_toggleAudioDescription:function(){var e=this;e.audioDescription||e._createAudioDescriptionPlayer(),e.options.audioDescriptionToggled?(e.audioDescription.node.volume=e.volume,e.options.isPlaying&&e.audioDescription&&(e.audioDescription.node.muted=!1,e.audioDescription.node.play().catch(function(e){return console.error(e)})),e.options.isVoiceover||(e.muted=!0,e.audioDescription.node.muted=!1),!e.options.isVoiceover&&e.videoVolumeButton&&e.descriptiveVolumeButton&&(mejs.Utils.addClass(e.videoVolumeButton,"hidden"),mejs.Utils.removeClass(e.descriptiveVolumeButton,"hidden"))):(e.volume=e.audioDescription.node.volume,e.audioDescription.node.pause(),e.audioDescription.node.muted=!0,e.options.isVoiceover||(e.muted=!1,e.audioDescription.node.muted=!0),!e.options.isVoiceover&&e.videoVolumeButton&&e.descriptiveVolumeButton&&(mejs.Utils.removeClass(e.videoVolumeButton,"hidden"),mejs.Utils.addClass(e.descriptiveVolumeButton,"hidden")))},_toggleVideoDescription:function(){var e=this,i=e.node.currentTime,o=e.options.isPlaying,t=e.options.videoDescriptionToggled;e.node.pause(),e.node.src=t?e.options.videoDescriptionSource.src:e.options.defaultSource.src,e.node.type=t?e.options.videoDescriptionSource.type:e.options.defaultSource.type,e.node.load(),o?e.node.play().then(function(){return e.node.currentTime=i}).catch(function(e){return console.error(e)}):e.node.setCurrentTime(i)}})},{}]},{},[1]); |
@@ -21,2 +21,22 @@ /*! | ||
* | ||
*//*! | ||
* MediaElement.js | ||
* http://www.mediaelementjs.com/ | ||
* | ||
* Wrapper that mimics native HTML5 MediaElement (audio and video) | ||
* using a variety of technologies (pure JavaScript, Flash, iframe) | ||
* | ||
* Copyright 2010-2017, John Dyer (http://j.hn/) | ||
* License: MIT | ||
* | ||
*//*! | ||
* MediaElement.js | ||
* http://www.mediaelementjs.com/ | ||
* | ||
* Wrapper that mimics native HTML5 MediaElement (audio and video) | ||
* using a variety of technologies (pure JavaScript, Flash, iframe) | ||
* | ||
* Copyright 2010-2017, John Dyer (http://j.hn/) | ||
* License: MIT | ||
* | ||
*/(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 })({ | ||
@@ -23,0 +43,0 @@ 1: [function (_dereq_, module, exports) { |
@@ -161,2 +161,3 @@ /*! | ||
nextRadio.dispatchEvent(mejs.Utils.createEvent('click', nextRadio)); | ||
break; | ||
} | ||
@@ -174,2 +175,3 @@ } | ||
prevRadio.dispatchEvent(mejs.Utils.createEvent('click', prevRadio)); | ||
break; | ||
} | ||
@@ -176,0 +178,0 @@ } |
@@ -12,2 +12,2 @@ /*! | ||
*/ | ||
!function r(i,l,a){function d(t,e){if(!l[t]){if(!i[t]){var s="function"==typeof require&&require;if(!e&&s)return s(t,!0);if(p)return p(t,!0);var o=new Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}var n=l[t]={exports:{}};i[t][0].call(n.exports,function(e){return d(i[t][1][e]||e)},n,n.exports,r,i,l,a)}return l[t].exports}for(var p="function"==typeof require&&require,e=0;e<a.length;e++)d(a[e]);return d}({1:[function(e,t,s){"use strict";mejs.i18n.en["mejs.speed-rate"]="Speed Rate",Object.assign(mejs.MepDefaults,{speeds:["2.00","1.50","1.25","1.00","0.75"],defaultSpeed:"1.00",speedChar:"x",speedText:null}),Object.assign(MediaElementPlayer.prototype,{buildspeed:function(l,e,t,a){var d=this;if(null!==d.media.rendererName&&/(native|html5)/i.test(d.media.rendererName)){for(var o=[],s=mejs.Utils.isString(d.options.speedText)?d.options.speedText:mejs.i18n.t("mejs.speed-rate"),p=function(e){for(var t=0,s=o.length;t<s;t++)if(o[t].value===e)return o[t].name},c=void 0,n=!1,r=0,i=d.options.speeds.length;r<i;r++){var u=d.options.speeds[r];"string"==typeof u?(o.push({name:""+u+d.options.speedChar,value:u}),u===d.options.defaultSpeed&&(n=!0)):(o.push(u),u.value===d.options.defaultSpeed&&(n=!0))}n||o.push({name:d.options.defaultSpeed+d.options.speedChar,value:d.options.defaultSpeed}),o.sort(function(e,t){return parseFloat(t.value)-parseFloat(e.value)}),d.cleanspeed(l),l.speedButton=document.createElement("div"),l.speedButton.className=d.options.classPrefix+"button "+d.options.classPrefix+"speed-button",l.speedButton.innerHTML='<button type="button" aria-controls="'+d.id+'" title="'+s+'" aria-label="'+s+'" tabindex="0">'+p(d.options.defaultSpeed)+'</button><div class="'+d.options.classPrefix+"speed-selector "+d.options.classPrefix+'offscreen"><ul class="'+d.options.classPrefix+'speed-selector-list"></ul></div>',d.addControlElement(l.speedButton,"speed");for(var f=0,v=o.length;f<v;f++){var h=d.id+"-speed-"+o[f].value;l.speedButton.querySelector("ul").innerHTML+='<li class="'+d.options.classPrefix+'speed-selector-list-item"><input class="'+d.options.classPrefix+'speed-selector-input" type="radio" name="'+d.id+'_speed"disabled="disabled" value="'+o[f].value+'" id="'+h+'" '+(o[f].value===d.options.defaultSpeed?' checked="checked"':"")+'/><label for="'+h+'" class="'+d.options.classPrefix+"speed-selector-label"+(o[f].value===d.options.defaultSpeed?" "+d.options.classPrefix+"speed-selected":"")+'">'+o[f].name+"</label></li>"}c=d.options.defaultSpeed,l.speedSelector=l.speedButton.querySelector("."+d.options.classPrefix+"speed-selector");for(var m=["mouseenter","focusin"],S=["mouseleave","focusout"],x=l.speedButton.querySelectorAll('input[type="radio"]'),y=l.speedButton.querySelectorAll("."+d.options.classPrefix+"speed-selector-label"),b=0,g=m.length;b<g;b++)l.speedButton.addEventListener(m[b],function(){mejs.Utils.removeClass(l.speedSelector,d.options.classPrefix+"offscreen"),l.speedSelector.style.height=l.speedSelector.querySelector("ul").offsetHeight,l.speedSelector.style.top=-1*parseFloat(l.speedSelector.offsetHeight)+"px"});for(var P=0,j=S.length;P<j;P++)l.speedSelector.addEventListener(S[P],function(){mejs.Utils.addClass(this,d.options.classPrefix+"offscreen")});for(var k=0,E=x.length;k<E;k++){var B=x[k];B.disabled=!1,B.addEventListener("click",function(){var e=this.value;c=e,a.playbackRate=parseFloat(e),l.speedButton.querySelector("button").innerHTML=p(e);for(var t=l.speedButton.querySelectorAll("."+d.options.classPrefix+"speed-selected"),s=0,o=t.length;s<o;s++)mejs.Utils.removeClass(t[s],d.options.classPrefix+"speed-selected");this.checked=!0;for(var n=mejs.Utils.siblings(this,function(e){return mejs.Utils.hasClass(e,d.options.classPrefix+"speed-selector-label")}),r=0,i=n.length;r<i;r++)mejs.Utils.addClass(n[r],d.options.classPrefix+"speed-selected")})}for(var U=0,C=y.length;U<C;U++)y[U].addEventListener("click",function(){var e=mejs.Utils.siblings(this,function(e){return"INPUT"===e.tagName})[0],t=mejs.Utils.createEvent("click",e);e.dispatchEvent(t)});d.options.keyActions.push({keys:[60,188],action:function(e,t,s,o){if("<"==o.key)for(var n=0;n<x.length-1;n++)if(x[n].checked){var r=x[n+1];r.dispatchEvent(mejs.Utils.createEvent("click",r))}}},{keys:[62,190],action:function(e,t,s,o){if(">"==o.key)for(var n=1;n<x.length;n++)if(x[n].checked){var r=x[n-1];r.dispatchEvent(mejs.Utils.createEvent("click",r))}}}),l.speedSelector.addEventListener("keydown",function(e){e.stopPropagation()}),a.addEventListener("loadedmetadata",function(){c&&(a.playbackRate=parseFloat(c))})}},cleanspeed:function(e){e&&(e.speedButton&&e.speedButton.parentNode.removeChild(e.speedButton),e.speedSelector&&e.speedSelector.parentNode.removeChild(e.speedSelector))}})},{}]},{},[1]); | ||
!function r(i,l,a){function d(t,e){if(!l[t]){if(!i[t]){var s="function"==typeof require&&require;if(!e&&s)return s(t,!0);if(p)return p(t,!0);var o=new Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}var n=l[t]={exports:{}};i[t][0].call(n.exports,function(e){return d(i[t][1][e]||e)},n,n.exports,r,i,l,a)}return l[t].exports}for(var p="function"==typeof require&&require,e=0;e<a.length;e++)d(a[e]);return d}({1:[function(e,t,s){"use strict";mejs.i18n.en["mejs.speed-rate"]="Speed Rate",Object.assign(mejs.MepDefaults,{speeds:["2.00","1.50","1.25","1.00","0.75"],defaultSpeed:"1.00",speedChar:"x",speedText:null}),Object.assign(MediaElementPlayer.prototype,{buildspeed:function(l,e,t,a){var d=this;if(null!==d.media.rendererName&&/(native|html5)/i.test(d.media.rendererName)){for(var o=[],s=mejs.Utils.isString(d.options.speedText)?d.options.speedText:mejs.i18n.t("mejs.speed-rate"),p=function(e){for(var t=0,s=o.length;t<s;t++)if(o[t].value===e)return o[t].name},c=void 0,n=!1,r=0,i=d.options.speeds.length;r<i;r++){var u=d.options.speeds[r];"string"==typeof u?(o.push({name:""+u+d.options.speedChar,value:u}),u===d.options.defaultSpeed&&(n=!0)):(o.push(u),u.value===d.options.defaultSpeed&&(n=!0))}n||o.push({name:d.options.defaultSpeed+d.options.speedChar,value:d.options.defaultSpeed}),o.sort(function(e,t){return parseFloat(t.value)-parseFloat(e.value)}),d.cleanspeed(l),l.speedButton=document.createElement("div"),l.speedButton.className=d.options.classPrefix+"button "+d.options.classPrefix+"speed-button",l.speedButton.innerHTML='<button type="button" aria-controls="'+d.id+'" title="'+s+'" aria-label="'+s+'" tabindex="0">'+p(d.options.defaultSpeed)+'</button><div class="'+d.options.classPrefix+"speed-selector "+d.options.classPrefix+'offscreen"><ul class="'+d.options.classPrefix+'speed-selector-list"></ul></div>',d.addControlElement(l.speedButton,"speed");for(var f=0,v=o.length;f<v;f++){var h=d.id+"-speed-"+o[f].value;l.speedButton.querySelector("ul").innerHTML+='<li class="'+d.options.classPrefix+'speed-selector-list-item"><input class="'+d.options.classPrefix+'speed-selector-input" type="radio" name="'+d.id+'_speed"disabled="disabled" value="'+o[f].value+'" id="'+h+'" '+(o[f].value===d.options.defaultSpeed?' checked="checked"':"")+'/><label for="'+h+'" class="'+d.options.classPrefix+"speed-selector-label"+(o[f].value===d.options.defaultSpeed?" "+d.options.classPrefix+"speed-selected":"")+'">'+o[f].name+"</label></li>"}c=d.options.defaultSpeed,l.speedSelector=l.speedButton.querySelector("."+d.options.classPrefix+"speed-selector");for(var m=["mouseenter","focusin"],S=["mouseleave","focusout"],x=l.speedButton.querySelectorAll('input[type="radio"]'),b=l.speedButton.querySelectorAll("."+d.options.classPrefix+"speed-selector-label"),y=0,g=m.length;y<g;y++)l.speedButton.addEventListener(m[y],function(){mejs.Utils.removeClass(l.speedSelector,d.options.classPrefix+"offscreen"),l.speedSelector.style.height=l.speedSelector.querySelector("ul").offsetHeight,l.speedSelector.style.top=-1*parseFloat(l.speedSelector.offsetHeight)+"px"});for(var k=0,P=S.length;k<P;k++)l.speedSelector.addEventListener(S[k],function(){mejs.Utils.addClass(this,d.options.classPrefix+"offscreen")});for(var j=0,E=x.length;j<E;j++){var B=x[j];B.disabled=!1,B.addEventListener("click",function(){var e=this.value;c=e,a.playbackRate=parseFloat(e),l.speedButton.querySelector("button").innerHTML=p(e);for(var t=l.speedButton.querySelectorAll("."+d.options.classPrefix+"speed-selected"),s=0,o=t.length;s<o;s++)mejs.Utils.removeClass(t[s],d.options.classPrefix+"speed-selected");this.checked=!0;for(var n=mejs.Utils.siblings(this,function(e){return mejs.Utils.hasClass(e,d.options.classPrefix+"speed-selector-label")}),r=0,i=n.length;r<i;r++)mejs.Utils.addClass(n[r],d.options.classPrefix+"speed-selected")})}for(var U=0,C=b.length;U<C;U++)b[U].addEventListener("click",function(){var e=mejs.Utils.siblings(this,function(e){return"INPUT"===e.tagName})[0],t=mejs.Utils.createEvent("click",e);e.dispatchEvent(t)});d.options.keyActions.push({keys:[60,188],action:function(e,t,s,o){if("<"==o.key)for(var n=0;n<x.length-1;n++)if(x[n].checked){var r=x[n+1];r.dispatchEvent(mejs.Utils.createEvent("click",r));break}}},{keys:[62,190],action:function(e,t,s,o){if(">"==o.key)for(var n=1;n<x.length;n++)if(x[n].checked){var r=x[n-1];r.dispatchEvent(mejs.Utils.createEvent("click",r));break}}}),l.speedSelector.addEventListener("keydown",function(e){e.stopPropagation()}),a.addEventListener("loadedmetadata",function(){c&&(a.playbackRate=parseFloat(c))})}},cleanspeed:function(e){e&&(e.speedButton&&e.speedButton.parentNode.removeChild(e.speedButton),e.speedSelector&&e.speedSelector.parentNode.removeChild(e.speedSelector))}})},{}]},{},[1]); |
@@ -51,2 +51,3 @@ module.exports = function (grunt) { | ||
'dist/google-analytics/google-analytics.js': 'src/google-analytics/google-analytics.js', | ||
'dist/google-tag-manager/google-tag-manager.js': 'src/google-tag-manager/google-tag-manager.js', | ||
'dist/jump-forward/jump-forward.js': 'src/jump-forward/jump-forward.js', | ||
@@ -169,6 +170,16 @@ 'dist/loop/loop.js': 'src/loop/loop.js', | ||
expand: true, | ||
src: ['**/*.png', '**/*.svg', '**/*-i18n.js'], | ||
src: ['**/*.png', '**/*.svg', '**/*-i18n.js', '!**/demo/**'], | ||
dest: 'dist/' | ||
} | ||
] | ||
}, | ||
demo: { | ||
files: [ | ||
{ | ||
cwd: 'src/demo', | ||
expand: true, | ||
src: ['mejs-controls.svg'], | ||
dest: 'demo/' | ||
} | ||
] | ||
} | ||
@@ -175,0 +186,0 @@ } |
{ | ||
"name": "mediaelement-plugins", | ||
"version": "2.5.1", | ||
"version": "2.6.0", | ||
"repository": { | ||
@@ -5,0 +5,0 @@ "type": "git", |
@@ -182,3 +182,3 @@ # ![MediaElementJS](https://cloud.githubusercontent.com/assets/910829/22357262/e6cf32b4-e404-11e6-876b-59afa009f65c.png) | ||
* [A11y](docs/a11y.md) | ||
* [A11y](docs/a11y.md) - compatible with MediaElementJS 5.x | ||
* [Ads](docs/ads.md) | ||
@@ -198,3 +198,3 @@ * [AirPlay](docs/airplay.md) | ||
* [Preview](docs/preview.md) | ||
* [Quality](docs/quality.md) | ||
* [Quality](docs/quality.md) - compatible with MediaElementJS 4.x | ||
* [Skip Back](docs/skip-back.md) | ||
@@ -201,0 +201,0 @@ * [Source Chooser](docs/source-chooser.md) |
@@ -72,6 +72,6 @@ 'use strict'; | ||
t.node.addEventListener('play', () => t.options.isPlaying = true); | ||
t.node.addEventListener('playing', () => t.options.isPlaying = true); | ||
t.node.addEventListener('pause', () => t.options.isPlaying = false); | ||
t.node.addEventListener('ended', () => t.options.isPlaying = false); | ||
t.media.addEventListener('play', () => t.options.isPlaying = true); | ||
t.media.addEventListener('playing', () => t.options.isPlaying = true); | ||
t.media.addEventListener('pause', () => t.options.isPlaying = false); | ||
t.media.addEventListener('ended', () => t.options.isPlaying = false); | ||
}, | ||
@@ -215,15 +215,19 @@ | ||
startVolume: t.node.volume, | ||
pauseOtherPlayers: false | ||
pauseOtherPlayers: false, | ||
// use same iconSprite as in video | ||
iconSprite: t.options.iconSprite, | ||
// use same nodeName as in video | ||
fakeNodeName: t.options.fakeNodeName || 'mediaelementwrapper', | ||
}); | ||
t.audioDescription.node.addEventListener('canplay', () => t.options.audioDescriptionCanPlay = true); | ||
t.node.addEventListener('play', () => t.audioDescription.node.play().catch(e => console.error(e))); | ||
t.node.addEventListener('playing', () => t.audioDescription.node.play().catch(e => console.error(e))); | ||
t.node.addEventListener('pause', () => t.audioDescription.node.pause()); | ||
t.node.addEventListener('waiting', () => t.audioDescription.node.pause()); | ||
t.node.addEventListener('ended', () => t.audioDescription.node.pause()); | ||
t.node.addEventListener('timeupdate', () => { | ||
const shouldSync = Math.abs(t.node.currentTime - t.audioDescription.node.currentTime) > 0.35; | ||
t.media.addEventListener('play', () => t.audioDescription.node.play().catch(e => console.error(e))); | ||
t.media.addEventListener('playing', () => t.audioDescription.node.play().catch(e => console.error(e))); | ||
t.media.addEventListener('pause', () => t.audioDescription.node.pause()); | ||
t.media.addEventListener('waiting', () => t.audioDescription.node.pause()); | ||
t.media.addEventListener('ended', () => t.audioDescription.node.pause()); | ||
t.media.addEventListener('timeupdate', () => { | ||
const shouldSync = Math.abs(t.currentTime - t.audioDescription.node.currentTime) > 0.35; | ||
const canPlay = t.options.audioDescriptionCanPlay; | ||
if (shouldSync && canPlay) t.audioDescription.node.currentTime = t.node.currentTime; | ||
if (shouldSync && canPlay) t.audioDescription.node.currentTime = t.currentTime; | ||
}); | ||
@@ -234,3 +238,3 @@ | ||
if(t.options.isVoiceover) { | ||
t.node.addEventListener('volumechange', () => t.audioDescription.node.volume = t.node.volume); | ||
t.media.addEventListener('volumechange', () => t.audioDescription.node.volume = t.node.volume); | ||
} else { | ||
@@ -261,7 +265,12 @@ const volumeButtonClass = `${t.options.classPrefix}volume-button`; | ||
if (t.options.audioDescriptionToggled) { | ||
t.audioDescription.node.volume = t.node.volume; | ||
if (t.options.isPlaying && t.audioDescription) t.audioDescription.node.play().catch(e => console.error(e)); | ||
t.audioDescription.node.volume = t.volume; | ||
if (t.options.isPlaying && t.audioDescription) { | ||
t.audioDescription.node.muted = false; | ||
t.audioDescription.node.play().catch(function (e) { | ||
return console.error(e); | ||
}); | ||
} | ||
if(!t.options.isVoiceover) { | ||
t.node.muted = true; | ||
t.muted = true; | ||
t.audioDescription.node.muted = false; | ||
@@ -275,7 +284,8 @@ } | ||
} else { | ||
t.node.volume = t.audioDescription.node.volume; | ||
t.volume = t.audioDescription.node.volume; | ||
t.audioDescription.node.pause(); | ||
t.audioDescription.node.muted = true; | ||
if(!t.options.isVoiceover) { | ||
t.node.muted = false; | ||
t.muted = false; | ||
t.audioDescription.node.muted = true; | ||
@@ -282,0 +292,0 @@ } |
@@ -209,2 +209,3 @@ 'use strict'; | ||
nextRadio.dispatchEvent(mejs.Utils.createEvent('click', nextRadio)); | ||
break; | ||
} | ||
@@ -223,2 +224,3 @@ } | ||
prevRadio.dispatchEvent(mejs.Utils.createEvent('click', prevRadio)); | ||
break; | ||
} | ||
@@ -256,2 +258,2 @@ } | ||
} | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
768263
248
13587
24
94