1
# `<video>` and `<audio>` made easy. One file. Any browser. Same UI.
3
* Author: John Dyer [http://j.hn/](http://j.hn/)
4
* Website: [http://mediaelementjs.com/](http://mediaelementjs.com/)
6
* Meaning: Use everywhere, keep copyright, it'd be swell if you'd link back here.
7
* Thanks: my employer, [Dallas Theological Seminary](http://www.dts.edu/)
8
* Contributors: [mikesten](https://github.com/mikesten), [sylvinus](https://github.com/sylvinus), [mattfarina](https://github.com/mattfarina), [romaninsh](https://github.com/romaninsh), [fmalk](https://github.com/fmalk), [jeffrafter](https://github.com/jeffrafter), [sompylasar](https://github.com/sompylasar), [andyfowler](https://github.com/andyfowler), [RobRoy](https://github.com/RobRoy), [jakearchibald](https://github.com/jakearchibald), [seanhellwig](https://github.com/seanhellwig), [CJ-Jackson](https://github.com/CJ-Jackson), [kaichen](https://github.com/kaichen), [gselva](https://github.com/gselva), [erktime](https://github.com/erktime), [bradleyboy](https://github.com/bradleyboy), [kristerkari](https://github.com/kristerkari), [rmhall](https://github.com/rmhall), [tantalic](https://github.com/tantalic), [madesign](http://github.com/madesign), [aschempp](http://github.com/aschempp), [gavinlynch](https://github.com/gavinlynch), [Birol2010](http://github.com/Birol2010), tons of others (see pulls)
11
## Installation and Usage
13
_MediaElementPlayer: HTML5 `<video>` and `<audio>` player_
15
A complete HTML/CSS audio/video player built on top `MediaElement.js` and `jQuery`. Many great HTML5 players have a completely separate Flash UI in fallback mode, but MediaElementPlayer.js uses the same HTML/CSS for all players.
17
### 1. Add Script and Stylesheet
19
<script src="jquery.js"></script>
20
<script src="mediaelement-and-player.min.js"></script>
21
<link rel="stylesheet" href="mediaelementplayer.css" />
23
### 2. Option A: Single H.264 file
25
If your users have JavaScript and Flash, this is the easist route for all browsers and mobile devices.
27
<video src="myvideo.mp4" width="320" height="240"></video>
29
### 2. Option B: Multiple codecs with Flash fall-through when JavaScript is disabled
31
This includes multiple codecs for various browsers (H.264 for IE and Safari, WebM for Chrome, Firefox 4, and Opera, Ogg for Firefox 3) as well as a Flash fallback for non HTML5 browsers with JavaScript disabled.
33
<video width="320" height="240" poster="poster.jpg" controls="controls" preload="none">
34
<source type="video/mp4" src="myvideo.mp4" />
35
<source type="video/webm" src="myvideo.webm" />
36
<source type="video/ogg" src="myvideo.ogv" />
37
<object width="320" height="240" type="application/x-shockwave-flash" data="flashmediaelement.swf">
38
<param name="movie" value="flashmediaelement.swf" />
39
<param name="flashvars" value="controls=true&poster=myvideo.jpg&file=myvideo.mp4" />
40
<img src="myvideo.jpg" width="320" height="240" title="No video playback capabilities" />
44
### 3. Run startup script
46
Make sure this is not in the `<head>` tag or iOS 3 will fail.
50
$('video').mediaelementplayer();
55
var player = new MediaElementPlayer('#player');
59
_MediaElement.js: HTML5 `<video>` and `<audio>` shim_
61
`MediaElement.js` is a set of custom Flash and Silverlight plugins that mimic the HTML5 MediaElement API for browsers that don't support HTML5 or don't support the media codecs you're using.
62
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) and even WMV (via Silverlight) on all browsers.
64
<script src="mediaelement.js"></script>
65
<video src="myvideo.mp4" width="320" height="240"></video>
68
var v = document.getElementsByTagName("video")[0];
69
new MediaElement(v, {success: function(media) {
74
You can use this as a standalone library if you wish, or just stick with the full MediaElementPlayer.
80
* deeper WebVTT support (alignment, color, etc.) - include captionator
81
* Full support for Ender.js, including mediaelement-and-player-standalone which includes ender.
82
* thin line when controls are off
85
* Better alignment with native MediaElement (using shimichanga.com techniques)
89
* More i18n fixes for Wordpress (SergeyBiryukov) https://github.com/johndyer/mediaelement/pull/940
90
* Fix touch detection in QtWebKit (peterbrook) https://github.com/johndyer/mediaelement/pull/939
91
* Added configuration option httpsBasicAuthSite fix sites using HTTPS basic authentication (benroy73) https://github.com/johndyer/mediaelement/pull/937
92
* Fixed backlight plugin error (eviweb) https://github.com/johndyer/mediaelement/pull/932
93
* Fix some wrong dates on the change log (heartcode) https://github.com/johndyer/mediaelement/pull/930
94
* Add a mejs-fullscreen css class on the root element (fbuecklers) https://github.com/johndyer/mediaelement/pull/925
95
* fix for ff switch between fullscreen and normal mode (fbuecklers) https://github.com/johndyer/mediaelement/pull/924
100
* Removed old media files from repo (reduced filesize from 150MB to 25MB)
101
* Added `test.html` to `/tests/` folder to use JS files in `/src/` folder
102
* Fullscreen plugin player toggles play/pause when controls are clicked (JeffreyATW) https://github.com/johndyer/mediaelement/pull/742
103
* Making use of pluginWidth & pluginHeight (simonschuh) https://github.com/johndyer/mediaelement/pull/837
104
* Proportional poster images (IE9+ Chrome, Safari, Firefox) (eyefood) https://github.com/johndyer/mediaelement/pull/838
105
* Fixed video resolution on seek in flash (efEris) https://github.com/johndyer/mediaelement/pull/839
106
* Option for custom error message when no plugins are found. (svoynow-lz) https://github.com/johndyer/mediaelement/pull/842
107
* Fix for Safari to play video on HTTPS site (benroy73) https://github.com/johndyer/mediaelement/pull/845
108
* Fixes Mute/UnMute when playing from a YouTube source (mbaker3) https://github.com/johndyer/mediaelement/pull/848
109
* i18n fixes for better compatibility with WordPress (SergeyBiryukov) https://github.com/johndyer/mediaelement/pull/850
110
* Fixing invalid characters restrictions for URLs (sebablanco) https://github.com/johndyer/mediaelement/pull/859
111
* Checking for pluginType on media instead of mediaelementplayer in Fullscreen (JeffreyATW) https://github.com/johndyer/mediaelement/pull/865
112
* Problem with IE9 on Windows 7 N / Windows 7 KN without WMP installed (sarvaje) https://github.com/johndyer/mediaelement/pull/868
113
* Cleanup stylesheet (jawittdesigns) https://github.com/johndyer/mediaelement/pull/867
114
* Properly treat namespace-only events for `globalUnbind()` (odnamrataizem) https://github.com/johndyer/mediaelement/pull/878
115
* Fixed issue with slash character separating time (S2) https://github.com/johndyer/mediaelement/pull/879
117
*2.11.3 (2013/04/13)*
119
* Change to `getScriptPath` to allow querystring variables to be added (for Wordpress Core)
121
*2.11.2 (2013/04/12)*
123
* Fixed overly aggressive XSS testing (excluding forward slashes)
124
* Fixed line endings on Flash (*.as) files (markjaquith) (https://github.com/johndyer/mediaelement/pull/834)
125
* Included protocol relative URL for YouTube (Dan Tsosie) (https://github.com/johndyer/mediaelement/pull/832)
127
*2.11.1 (2013/04/11)*
131
* Removed Ogg, WebM, and MP3 files to keep download under 10MB. Files are now at https://github.com/johndyer/mediaelement-files
132
* Simple Flash Pseudo-streaming [set enablePseudoStreaming:true, pseudoStreamingStartQueryParam:'start'] (BryanMorgan) (https://github.com/johndyer/mediaelement/pull/814)
133
* Fixed possible XSS attack through `file=` parameter in `flashmediaelement.swf`
137
* Protocol relative YouTube URLs for `iframe` API (dtsosie) (https://github.com/johndyer/mediaelement/pull/825)
138
* Added aria-label to all button elements (Luzifer) (https://github.com/johndyer/mediaelement/pull/824)
139
* Fixed preroll adclick URL (johndyer)
140
* Traditional chinese locale strings for i18n module (latzt) (https://github.com/johndyer/mediaelement/pull/820)
141
* Allow captions on audio player (LeResKP) (https://github.com/johndyer/mediaelement/pull/819)
142
* Fix incorrect path returned by `getScriptPath()` (Ciki) (Fix incorrect path returned by getScriptPath())
143
* Overhauling hover div creation and placement (JeffreyATW) (https://github.com/johndyer/mediaelement/pull/813)
144
* Clear timeout for second fullscreen stretch attempt (JeffreyATW) (https://github.com/johndyer/mediaelement/pull/812)
145
* fix type resolution when extension is uppercased (jbdemonte) (https://github.com/johndyer/mediaelement/pull/801)
146
* "splice is not a function" fix on `MediaElementPlayer.remove()` (odnamrataizem) (https://github.com/johndyer/mediaelement/pull/799)
147
* Make Flash stage handle CLICK rather than MOUSE_DOWN (odnamrataizem) (https://github.com/johndyer/mediaelement/pull/804)
150
*2.11.0 (2013/03/13)*
152
* Preroll ads manager
153
* VAST ads plugin (sponsored by Minito Video)
154
* Slides `<track>` type (non-standard HTML5 use)
155
* Calculate rails size only with visible elements (romanbsd) (https://github.com/johndyer/mediaelement/pull/773)
156
* Round calculations of progress bar to prevent fractions (romanbsd) (https://github.com/johndyer/mediaelement/pull/768)
157
* Fix AndroidUseNativeControls (LeResKP) (https://github.com/johndyer/mediaelement/pull/749)
158
* Muting the volume icon if startVolume is set to 0 (heartcode) (https://github.com/johndyer/mediaelement/pull/747)
159
* Make YouTube URL protocol relative (strworkstation) (https://github.com/johndyer/mediaelement/pull/761)
160
* Prevent Flash audio player from sending too many 'progress' events (johndyer)
161
* Properly clean up player when calling MediaElementPlayer.remove() (odnamrataizem) (https://github.com/johndyer/mediaelement/pull/779)
162
* Add "mejs-shim" class to all shims to prevent improper resizing (JeffreyATW) (https://github.com/johndyer/mediaelement/pull/789)
163
* Bug fix for the error "this.pluginApi.pauseMedia is not a function" when using the flash player and removing the dom element. (Jmaharman) https://github.com/johndyer/mediaelement/pull/788
164
* Make possible to open youtube links as audio only (Seb33300) https://github.com/johndyer/mediaelement/pull/784
165
* Add a few basic Jasmine tests (msgilligan) https://github.com/johndyer/mediaelement/pull/781
166
* Add option to hide the video controls on load (eResKP) https://github.com/johndyer/mediaelement/pull/780#issuecomment-14781622
167
* [cc] button can now be a toggle when there's just one track (LeResKP) https://github.com/johndyer/mediaelement/pull/793
168
* fixed error when srclang was missing
170
*2.10.3 (2013/01/27)*
172
* Fix broken scrollbar from API reference error (peterbrook) (https://github.com/johndyer/mediaelement/pull/739)
174
*2.10.2 (2013/01/26)*
176
* The project is now MIT-only, instead of dual licensed MIT and GPL (just as jQuery has done: http://jquery.org/license/)
177
* Fix audio height in 100% mode (https://github.com/johndyer/mediaelement/pull/667)
178
* Make rewinding at the end optional (https://github.com/johndyer/mediaelement/pull/725)
179
* Bugfix: attributes for PluginMediaElement (https://github.com/johndyer/mediaelement/pull/722)
180
* Add mejs-long-video class when capture is 1hr or longer, custom styles (https://github.com/johndyer/mediaelement/pull/715)
181
* Fix for dragging playhead horizontally off the video (https://github.com/johndyer/mediaelement/pull/711)
182
* Align timing of captions with show/hide controls (https://github.com/johndyer/mediaelement/pull/708)
183
* Missing semicolon (https://github.com/johndyer/mediaelement/pull/737)
184
* Don't send timeupdate event after ended event (https://github.com/johndyer/mediaelement/pull/727)
185
* Added option to disable pause/play on main div click (https://github.com/johndyer/mediaelement/pull/735)
187
*2.10.1 (2012/12/31)*
189
* New postroll feature (https://github.com/johndyer/mediaelement/pull/660)
190
* PluginMediaElement click-to-pause behavior doesn't work (https://github.com/johndyer/mediaelement/pull/691)
191
* Use the normal CSS property name after the vendor prefix (https://github.com/johndyer/mediaelement/pull/686)
192
* Select first source that is supported by the browser (https://github.com/johndyer/mediaelement/pull/679)
193
* fixed outerWidth for jQuery 1.8 compatiability (https://github.com/johndyer/mediaelement/pull/680)
194
* Fix for Issue #676 when Stop button does not behaves as expected in selected browsers (https://github.com/johndyer/mediaelement/pull/678)
195
* Fix source switching on Webkit in SourceChooser (https://github.com/johndyer/mediaelement/pull/675)
196
* Better 100% mode handling within non-visible container (https://github.com/johndyer/mediaelement/pull/668)
197
* Display chapter tracks for late-loading video sources, including YouTube (https://github.com/johndyer/mediaelement/pull/665)
198
* Added SVG Stop icon (https://github.com/johndyer/mediaelement/pull/696)
199
* Added SVG source chooser icon (https://github.com/johndyer/mediaelement/pull/669)
200
* Adding rounding to volume slider left, top, and and width setters (https://github.com/johndyer/mediaelement/pull/684)
201
* Display chapter tracks for late-loading video sources, including YouTube (https://github.com/johndyer/mediaelement/pull/665)
203
*2.10.0 (2012/11/23)*
205
* Support of matchMedia where possible [zachleat]
206
* Fix for 100% audio using correct sizing [dougwilson]
207
* SVG icons for better Retina support [johndyer]
208
* Localized buttons [latzt] https://github.com/johndyer/mediaelement/pull/627
209
* Volume handle doesn't set initial position properly [JeffreyATW] https://github.com/johndyer/mediaelement/pull/625
210
* Cleaned up some CSS whitespace https://github.com/johndyer/mediaelement/pull/656
211
* Vimeo - updated to iframe code (from old megaloop)
215
* Fixed faulty FlashMediaElement.swf (due to Git program mashing it)
216
* Fixed track element issues introduced by DFXP captions
220
* Improved RTMP parsing [pansapien] https://github.com/johndyer/mediaelement/pull/574
221
* Added `flashStreamer` option to separate streamer from file
222
* Raise an error for unknown video size in Flash [denmarkin] https://github.com/johndyer/mediaelement/pull/571
223
* Fix for alwaysShowControls with keyboard interaction [peterh-capella] https://github.com/johndyer/mediaelement/pull/569
224
* Support for DFXP captions [justinl-capella] https://github.com/johndyer/mediaelement/pull/420
226
*2.9.3 (2012/08/23) *
228
* Allows use of `style="max-width: 100%;"` for responsive video
229
* Added type to source buttons in mep-feature-sourcechooser.js:48 [flamadiddle ]
230
* Fix use of inArray and $ in src/js/me-shim.js [lftl, Seb33300, eusonic and others] (this was a regression bug from another fix)
231
* Fixing syntax error in events demo [JeffreyATW]
233
*2.9.2 (2012/07/06) *
235
* Added a few height checks (from Joe Anderson)
236
* Removed console.log statements
237
* Better file MIME type detection when the "type" attribute is not set (Seb33300)
238
* Pass the event keyCode to the keyActions handler, and make seek interval configurable (bborn)
239
* Responsive flash fix, YouTube edits (heikki)
240
* New `auto_plugin` mode that starts with plugins then tries HTML5 (savil)
244
* Fixed Firefox 10+ Fullscreen error
248
* Fixed pointer-events detection in IE9 (when using Flash mode or YouTube)
249
* YouTube now shows annotations (using YouTube player rather than chromeless)
250
* Fix play/pause when clicking on video when overlays are displayed [markomarkovic]
251
* Dont listen to mouse events when there's not a reason to [neverarriving]
252
* Adding CSS animated buffer to the time rail [neverarriving]
253
* Fix for box-sizing: border-box from cutting off time text. [MatthewCallis]
257
* Fixed volume slider bug when initially hidden
258
* Fixed YouTube size problems in Flash mode
262
* Flash fullscreen: video not fullsized
263
* Flash fullscreen: youtube controls not working
267
* Revamped YouTube to work using the Flash shim so that it supports fullscreen
268
* Fix for `remove()` method (lennym)
269
* Fix possible issue with ContextMenu ( quangvhg)
270
* Fix for stop button ( slavva97)
271
* Type on `var` and `;` (lennym)
272
* Fix for keyboard support forward and backward (myffical)
276
* Added horizontal volume control, the new default for audio (based on work by [gavinlynch](http://github.com/gavinlynch))
277
* Possible issues with < IE8 centering resolved
278
* Full set of controls under Silverlight ([Birol2010](https://github.com/Birol2010/))
279
* YouTube fix [raknam]
280
* shim now has a .tagName property, and other DOM-like methods [tantalic]
281
* Poster display fix when HTML5, Flash, and Silverlight are all missing [bruha]
282
* Source Chooser plugin [markomarkovic]
283
* Fix for flash audio mute [lbernau]
287
* Removed iOS 3.x poster code [xtat] [James Cross]
288
* Fixed bug when player is initially hidden in `display:none;`
289
* Workaround for when inside an `<iframe>` and Chrome doesn't correctly report exiting from fullscreen
293
* Fixed a Flash bug when one video ended and another was loaded through `setSrc()` and `load()`
294
* Option for markup between current time and duration [tantalic]
298
* Sending all options to Flash including colors
302
* Fixed Flash fullscreen button inside an `<iframe>`
303
* Fixed flash auto starting in 100% mode
307
* Updated Opera's Flash Fullscreen support (apparently, it doesn't like pointer-events:none with Flash)
308
* Added a `fullscreenchange` event to Flash to better track events
312
* added major updates to Flash fullscreen mode controls [rmhall]
313
* added sneaky `pointer-events: none` to allow Flash to enter fullscreen in one clean click
314
* added missing CSS3 gradients syntaxes (kristerkari)[https://github.com/johndyer/mediaelement/pull/339]
315
* added check for left offset to detect when mousedrag exceeds top boundary [jmcneese](https://github.com/johndyer/mediaelement/pull/335)
317
*2.5.0 (2011/12/15) - 56kb*
319
* Flash fullscreen now works on hover, so it's much easier to use. For Firefox it's always on, but for others `usePluginFullScreen:true` option
320
* For the audio player, Flash objects are positioned outside the main `<div>` which allows the player to be hidden without breaking flash
321
* Volume controls was adjusted slightly
322
* Removed Google translate features (Google killed the API)
326
* keyboard controls are now an array, allowing multiple keys to do the same thing
327
* support for Google TV keybuttons (based on above)
328
* arrow keys now move when paused
329
* floating time is now handled via JavaScript instead of CSS :hover (and removed from touch devices)
331
*2.4.2 (2011/12/06) - 57.3kb*
333
* keyboard controls (up/down controls volume, left/right seeks, space play/pause, f goes fullscreen)
334
* `<audio>` now works with 100% for responsive layouts [283](https://github.com/johndyer/mediaelement/issues/283)
335
* Support for auto start with class `mejs-player` and `data-mejsoptions` e.g. `<video src="media.mp4" class="mejs-player" data-mejsoptions='{"features":["playpause","progress","volume"}, "success": "myCallback"}'><video>`
336
* With multiple players on a page, when one starts the others pause (toggle `pauseOtherPlayers: true`) [285](https://github.com/johndyer/mediaelement/issues/285)
338
*2.4.1 (2011/12/05) - 55.7kb*
340
* Fixed fullscreen bug with Firefox (with Video for Everybody syntax) [270](https://github.com/johndyer/mediaelement/issues/270)
341
* Added `remove()` method to `MediaElement` and `MediaElementPlayer` to safely remove Flash (from IE) [111](https://github.com/johndyer/mediaelement/issues/111)
342
* Added a demo of MEJS skins to the /demo/ folder
343
* Closed issue with `ended` event in Flash (my example works) [246](https://github.com/johndyer/mediaelement/issues/246)
344
* Flash has better support for `preload="auto"` [290](https://github.com/johndyer/mediaelement/issues/290)
346
*2.4.0 (2011/11/28) - 54.9kb*
348
* Integration with YouTube API (and intial support for Vimeo API) : http://mediaelementjs.com/examples/?name=youtube
349
* Catch when Google Translate fails due to API limits
351
*2.3.3 (2011/11/21) - 49.4kb*
353
* removed volume controls for touch devices (Android and iOS require hardware volume)
354
* set a timeout to hide controls on touch devices
355
* fixed timecode bug with :09 (used radix)
356
* fixed bug when long videos end: (try/catch)
357
* fixed issue with `alwaysShowControls`
358
* removed a `console.log` in fullscreen that broke IE
360
*2.3.2 (2011/11/12) 49.6kb*
362
* removed `http` from Flash and Silverlight embeds to support SSL
363
* fixed a possible bug when neither `src` nor `type` was specified
364
* turned off useCapture for a few events
368
* Another set of changes to handle various browser native fullscreen issues
369
* New control behavior for touch enabled devices (iPad, Android tablets)
370
* Bug fix for Flash (bradleyboy)
372
*2.3.0 (2011/11/01) - 48.5kb*
374
* Fixed bug when fullscreen was called before play pressed
375
* Additional classes mejs-audio, mejs-video, mejs-ios, mejs-iphone, mejs-ipad, mejs-android added to contianing `<div>` for styles
376
* IE9 can't use `<video width="100%">` so you must use either options ({videoHeight:'100%'}) or inline style `<video style="width:100%;height:100%;">`
377
* updated fullscreen code for Safari (erktime)
378
* loading indicators shows during 'waiting' event
379
* iOS and Android now show "big play" button again (sometimes overlaps on iPhone)
383
* fix for Flash fallback in certain scenarios (IE RegExp problem, Firefox fullscreen Flash issue)
384
* adjustments for floating time indicator
388
* True FullScreen support in Firefox (nightly) and Chrome (Canary)
389
* more updates for 100% mode
390
* enableContextMenu(), disableContextMenu() methods
391
* change to poster code to let it be set later
393
*2.2.3 (2011/10/07b) - 45.8kb*
395
* updated accessibility again for JAWS and NVDA (thanks to twitter.com/mohammed0204)
396
* added CSS class `<html class="mejs-embed">` for `<iframe>` embeds
398
*2.2.2 (2011/10/07) - 45.8kb*
400
* added support for <del>`<video width="100%" height="100%"></video>`</del> `<video style="width:100%;height:100%"></video>` (i.e. responsive/adaptive players)
401
* added :focus state for buttons to improve accessibility
402
* added title and aria-controls attributes to buttons to improve accessibility
403
* changed when loading circle appears (WebKit fires the 'loadstart' event differently than FF or IE)
405
*2.2.1 (2011/10/06) - 44.1kb*
407
* fixed a bug with fullscreen that caused IE to completely mess up it layout
408
* fixed another bug with fullscreen and z-index
412
* controls now display on iPad, iPhone, and Android. Can be turned off using (iPadForceNativeControls:true)
413
* fullscreen support for iPad (different from true fullscreen on Safari 5.1)
414
* added frameaccurate timecode (via gselva)
415
* added contextmenu as a feature. if turned on the default includes: fullscreen toggle, mute toggle, and media download
416
* updated WebVTT support (still had some SRT formatting restrictions)
417
* dynamic player creation: from `<a href="media.mp4">video</a>` and `<div class="mejs"></div>` specifying type (string or array)
418
* Fixed bug where Flash couldn't go fullscreen with track chapters
419
* fixed a bug with Flash fullscreen ratios
420
* controls now disappear on timeout when mouse is idle (useful for fullscreen)
421
* enableControls() and disableControls() (for pre/post roll scenarios)
422
* added an autoplay override (especially for WebKit browsers)
423
* fixed functionality of mute toggling
424
* reorganized plugins to use $.extend
425
* updating functionality of loading graphic to account for various browser inconsistencies (loadstart event)
427
*2.1.9 (2011/08/04) - 36.9kb*
429
* fixed Android 2.1 and 2.2 playing problems (still need a good 2.3 and 3.0 device. hint. hint.)
431
*2.1.8 (2011/08/03) - 36.9kb*
433
* True fullscreen for Safari 5.1
434
* Flash/Silverlight fullscreen is now "full window" (except for Firefox which cannot handle adjusting Flash without reloading it)
436
*2.1.7 (2011/07/19) - 35.9kb*
438
* fixed mute button (kaichen)
439
* added alwaysShowControls option (kaichen)
440
* forceful padding override on buttons
441
* started "ender" branch to experiment with removing jQuery dependency and baking in ender.js
442
* updated the use of `type` javascript option with src is present
443
* remove preload="none" hack for Chrome now that it supports it (note: Chrome still strangely fires a 'loadstart' event)
444
* added hooks for other jQuery compatible libraries like [ender.js](http://enderjs.com)
445
* Wordpress: if you don't specify a file extension, mejs will look for attached files and use them [video src="/wp-content/uploads/myfile"]
446
* Wordpress: option to select a 'skin'
447
* Wordpress: option to select audio width/height
449
*2.1.6 (2011/06/14) - 35.5kb*
451
* fix errors when the progress bar isn't present
452
* buttons are now actual `<button>` tags which allows tabbed controls (for better accessibility and possible ARIA support)
453
* fix problems with low volume in Flash on startup (startVolume was sometimes 0!)
454
* updated a few places to use jQuery 1.6's new prop/attr methods
455
* updated skins to account for new `<button>` (still need highlighted style)
457
*2.1.5 (2011/05/28) - 35.2kb*
459
* minor fix for controls not showing time or duration
460
* when switching files, the Flash plugin now forcibly stops downliading
462
*2.1.4 (2011/05/20) - 35.2kb*
464
* fixed display of hours
465
* fixed Flash audio bug where pausing when the file wasn't fully loaded would cause the progress bar to go offscreen
466
* fixed Flash video bug where percent loaded was always 100%
467
* fixed Flash audio bug where pressing pause, then play would always restart playback from the beginning
468
* startVolume works more clearly in plugins (esp. Opera and Linux)
469
* tracks support no longer refers to WebSRT, but is more generic for WebVTT (not all features of WebVTT are supported yet)
470
* fixed fullscreen in Safari OS X 10.5 (which doens't really support true fullscreen)
471
* Flash and Silverlight can now start downloading if preload="auto" or preload="metadata" (warning: preload="metadata" will load the entire thing)
473
*2.1.3 (2011/04/12) - 35.8kb*
475
* added support for hours in time format (00:00:00) and an alwaysShowHours option to force hours to always show
476
* removed some duplicate flash events
477
* added 'seeking' event to Flash/SL (already had 'seeked')
479
*2.1.2 (2011/03/23) - 34.4kb*
481
* fixed IE6 and IE7 caption position
482
* fixed IE7 failure in certain places
483
* changed browser UA detection to use only lowercase (iPhone iphone)
484
* fixed Flash audio loaded bug (reporting 0 after loaded)
485
* added removeEventListener to shims
486
* new rail-resizing code
488
*2.1.1 (2011/03/07) - 33.5kb*
490
* added 'loadeddata' event to Flash and Silverlight
491
* switched to flashvars parameter to support Apache's mod_security
492
* better flash fullscreen support
493
* added flv-x to flash's accepted types
494
* Fixed a bug in poster sizing (only affected IE)
495
* added "isFullScreen" property to media objects (like Safari's webkitDisplayingFullscreen)
496
* controls start hidden with autoplay
497
* fixed iOS loading issues (success wasn't firing, other errors)
498
* fixed IE6 when using new MediaElementPlayer(), rather than jQuery
500
*2.1.0 (2011/02/23) - 32.9kb*
502
* Updated control styles for a cleaner look
503
* Added loadeddata and canplay events to Flash and Silverlight
504
* Added loading indicator to MediaElementPlayer
505
* Added stop button (pause, then return to currentTime:0)
507
* Poster is now forced to the size of the player (could be updated to be proportional if someone wants to add that)
508
* Updated Flash ended event to account for buffering weirdness
509
* Fixed a track text hovering problem
511
*2.0.7 (2011/02/13) - 31.9kb*
513
* Added 'mode' option to force native (HTML5) or shim (Flash,Silverlight) modes
514
* Fixed audio seeking bug in Flash (thanks Andy!)
515
* Fixed startVolume not working in Flash
516
* Overrided Chrome's autoplay since it doesn't always work
518
*2.0.6 (2011/02/04) - 31.7kb*
520
* Whitespace cleanup on files
521
* Preventing flash/sl plugins from reinitializing when they are removed by another script
522
* Fixed IE JavaScript errors in Flash fallback (seen in Wordpress)
523
* Added 'play' event to Silverlight to prevent errors
525
*2.0.5 (2011/01/25) - 31.7kb*
527
* Added error object to player
528
* Adjusted popup timer and progress bar
529
* Fixed media URL escaping
530
* Stopped sending poster to plugin
531
* Silverlight culture update
532
* Added back reference check (also makes jQuery usage easier)
533
* Added stop() function to mediaelement
534
* timerupdate still fires when paused (plugins)
535
* Added Security.allowDomain("*") to Flash so it can be used on different domains
536
* Fixed progress bar for Firefox 3 with Ogg files
537
* Prevented Flash from re-creating the player when show/hide restarts it
538
* Fixed initial volume level in non-HTML5 players
539
* Made PNG8 versions of controls images (for IE6)
541
*2.0.4 (2011/01/14) - 31.2kb*
543
* Fixed a major bug in plugin detection.
545
*2.0.3 (2011/01/13) - 31.2kb*
547
* changed IE Flash insertion to include me-plugin CSS class
548
* changed player error handling
549
* fixed a bug in the Silverlight player related to URLs
551
*2.0.2 (2010/12/31) - 31.1kb*
553
* Changed HTML escape method to encodeURICompnent
554
* Flash-based RMTP support (contributor: sylvinus)
555
* Fixed Wordpress loop bug
556
* Changed time popup to move with mouse instead of currentTime
557
* added enablePluginSmoothing (Flash)
558
* Added some "play" "playing" event duplication to Flash
560
*2.0.1 (2010/12/20) - XX.Xkb*
562
* Changed Flash to allow cross domain video
563
* Added 'click' event to Flash and Silverlight
564
* Updated autoplay attribute detection
566
*2.0.0 (2010/12/13) - 30.8kb*
568
* Reorganized MediaElementPlayer code to allow each button to become a pluggable feature that can be removed or overrided
569
* Enabled a no JavaScript version to support Video for Everybody nested syntax (optional)
570
* Enabled drag on progress bar
571
* Preload="none" is default for Flash and Silverlight
572
* Preload="none" enabled on Google Chrome
573
* Added skins to download
574
* Support for skin swapping
575
* Updated volume handle controls
576
* Update progress controls display
577
* Exposed MediaElement API methods on player
578
* Adjusted layout for IE6
580
*1.1.7 (2010/11/29) - 29.8kb*
582
* Fixed bug with `<track>` loading on `<audio>` player
584
*1.1.6 (2010/11/23) - 29.8kb*
586
* Chapters support `<track kind="chapters" />`
588
*1.1.5 (2010/11/21) - 29.8kb*
590
* Workaround for IE issues when accidentally placed inside `<p>` tag
591
* Fixed silverlight pause state reporting
592
* Switched back to Flash as default
593
* Removed requirement for Google translate API `<script>` (direct JSONP call)
594
* Added googleApiKey option
596
*1.1.4 (2010/11/21) - 29.5kb*
598
* Added Default volume level to options (0.8)
599
* Fix for IE volume slider positioning
600
* Fix for IE tracks parsing (replacement String.split)
601
* Changed namespace from html5 to mejs
602
* Remove all showMessage references
603
* Controls show again after playback ends
605
*1.1.3 (2010/11/20) - 29.0kb*
607
* Change to fallback mechanism and styling (Windows Phone 7)
609
*1.1.2 (2010/11/19) - 28.9kb*
611
* Removed messages, added big play button
612
* Google translate now supports more than 1000 characters
613
* Added a dropdownlist of languages from which the user can select
614
* Added timerUpdate option to set the millisecond speed of timeupdate events
615
* Updated the media file and examples
617
*1.1.1 (2010/11/18) - 27.1kb*
619
* added captioning support via the `<track>` tag (thanks to [Playr](http://www.delphiki.com/html5/playr) for the example)
620
* added auto-translation support via Google translate API
622
*1.1.0 (2010/11/17) - 22.6kb*
624
* Total re-oganization of MediaElement, MediaElementPlayer, and supporting objects
625
* Updated CSS to a cleaner look, with better IE support & big play button
626
* Simplified all plugin and version detection
627
* Added loop option (useful for audio files)
628
* Added the ability to turn each control button on/off
629
* Added canPlayType to PluginMediaElement
630
* Updated setSrc to take multiple sources
632
*1.0.7 (2010/11/16) - 18.15kb*
634
* Total re-oganization of MediaElement code
635
* JSLint compliant, YUI compliant
637
*1.0.6 (2010/11/15) - 17.96kb*
639
* Rebuilt PluginDetection (removed SWFObject and Microsoft code)
640
* More JSLint compatible (still a few iterations to get there)
643
*1.0.5 (2010/11/10 later on)*
645
* Fixed a problem with the *.min.js files
648
*1.0.4 (2010/11/10) - 18.32kb*
650
* Fixed Flash display when `<video>` did not match actual dimensions
651
* autosizing in Flash and Silverlight
652
* added options for defaultVideoWidth, defaultVideoHeight when `<video>` `height` and `width` are not set
653
* included minified versions using YUI compressor
657
* changes in poster handling
658
* fix IE9 startup bug (its 'play' event fires wrongly it seems)
659
* fixed Flock, Opera sizing bugs
660
* fixed audio ended bug in special cases under Flash
661
* added default height/width when they are not specified in attributes
665
* minor updates to support IE9 beta1
669
* added native fullscreen support for Safari 5 (via webkitEnterFullScreen)
678
* HTML5 error handling
679
* Flash/SL error codes