One file. Any browser. Same UI.
- Author: John Dyer https://j.hn/
- Website: https://mediaelementjs.com/
- License: MIT
- Meaning: Use everywhere, keep copyright, it'd be swell if you'd link back here.
- Thanks: my employer, Dallas Theological Seminary
- Contributors: all contributors
- Introduction
- Migrating from
2.x
to4.x
version - Installation and Usage
- API and Configuration
- Guidelines for Contributors
- Change Log
- TODO list
MediaElementPlayer: HTML5 <video>
and <audio>
player
A complete HTML/CSS audio/video player built on top MediaElement.js
. Many great HTML5 players have a completely separate Flash UI in fallback mode, but MediaElementPlayer.js uses the same HTML/CSS for all players.
MediaElement.js
is a set of custom Flash plugins that mimic the HTML5 MediaElement API for browsers that don't support HTML5 or don't support the media codecs you're using.
Instead of using Flash as a fallback, Flash is used to make the browser seem HTML5 compliant and enable codecs like H.264 (via Flash) on all browsers.
In general, MediaElement.js
supports IE11+, MS Edge, Chrome, Firefox, Safari, iOS 8+ and Android 4.0+.
It is strongly recommended to read the entire documentation and check the demo
folder to get the most out of this package. Visit here to start.
Since Sierra version, autoplay
policies have changed. You may experience an error if you try to execute play
programmatically 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/
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 https://caniuse.com/usage-table.
This change is for MediaElement
and MediaElement Plugins
repositories.
NOTE: 3.x
version has jQuery in the code base, and 4.x
is framework-agnostic. So for either 3.x
or 4.x
versions, the following steps are valid, but it is highly recommended to upgrade to 4.x
.
In order to successfully install 4.x
in an existing setup, you must consider the following guidelines:
-
If your installation relies on the legacy player classes (i.e.,
mejs-player
,mejs-container
, etc.), you must set up the proper namespace. In2.x
, the default namespace ismejs-
but now ismejs__
. In order to set up a new namespace (or the legacy one), use theclassPrefix
configuration, and make sure you use themediaelementplayer-legacy
stylesheet provided in the/build/
folder. -
By default,
MediaElement
has bundled native renderers, such as HLS, M(PEG)-DASH and FLV, as well as YouTube and Flash shims. If you want to use any other renderer, you MUST refer to thebuild/renderers
folder and add as many as you want. Checkdemo/index.html
for a better reference. -
You must set up now the path for the Flash shims if they are not in the same folder as the JS files. To do this, set the path via the
pluginPath
configuration. In the same topic, if you need to support browsers with JavaScript disabled, you must reference the correct Flash shim, since in2.x
there was only a single Flash shim and in3.x
it was split to target specific media types. Check the Browsers with JavaScript disabled section for more details. -
If you want to use Flash shims from a CDN, do the change related to
pluginPath
setting the CDN's URL, and also settingshimScriptAccess
configuration asalways
. -
If you need to force the Flash shim, the way to do it in
3.x
version is to use therenderers
configuration and list them in an array. -
pluginType
was removed to favorrendererName
. If you rely on that element, just create conditionals based on the renderer ID (all listed here). For example:
$('video, audio').mediaelementplayer({
// Configuration
success: function(media) {
var isNative = /html5|native/i.test(media.rendererName);
var isYoutube = ~media.rendererName.indexOf('youtube');
// etc.
}
});
The full documentation on how to install MediaElement.js
is available at Installation.
A brief guide on how to create and use instances of MediaElement
available at Usage.
Additional features can be found at https://github.com/mediaelement/mediaelement-plugins.
MediaElement.js
has many options that you can take advantage from. Visit API and Configuration for more details.
Also, a Utilities/Features
guide is available for development. Visit Utilities/Features for more details.
If you want to contribute to improve this package, please read Guidelines.
NOTE: If you would like to contribute with translations, make sure that you also check https://github.com/mediaelement/mediaelement-plugins, and perform the
translations for the files suffixed as -i18n
.
A compilation of useful articles can be found here.
Changes available at Change Log.
IMPORTANT: Before posting an issue, it is strongly encouraged to read the whole documentation since it covers the majority of scenarios exposed in prior issues.
New features and pending bugs can be found at TODO list.