Releases: sampotts/plyr
Releases · sampotts/plyr
v2.0.0
This version contains several potential _breaking changes_:
setup()
has been reverted to pre v1.8.0 behaviour; meaning it will return the instance rather than the element. This is because the reference to the instance is no longer added to the original element (see below).- The reference to the
plyr
instance is now added to the media element rather than original container. This is because if a container with multiple children was passed tosetup()
the references to all instances would have been added to the container, creating issues. I would recommend using the return value fromsetup()
or the newget()
method to access the instance. - Players will always be wrapped in their own div now - this makes
setup()
anddestroy()
cleaner. This may break any custom styling based on DOM position. - Players no longer seek to 0 on 'ended' - this is to fix a bug with Microsoft Edge as it triggers 'ended' on media change for whatever reason. They'll never change ;-)
And some other changes and bug fixes:
- New
get()
method on the global plyr object to get all instances inside a container - New API methods:
getOriginal()
to get the original, unmodified element plyr was setup on (<video>
,<audio>
or empty<div>
for YouTube and Vimeo)getContainer()
to get the players outer wrapper elementgetMedia()
to get the players media element (<video>
,<audio>
or empty<div>
for YouTube and Vimeo)getEmbed()
to access the YouTube or Vimeo API directlygetType()
to get the type of the playerisReady()
to determine if an instance has completed setup and necessary APIs are loaded (for YouTube / Vimeo)on()
to provide an easy way to listen to eventsstop()
to, you guessed it, stop the player
destroy()
now works correctly for YouTube and Vimeo (fixes #272)- New
destroyed
event whendestroy()
has completed (original element is passed as event.target) - Default volume is now 10 (max) rather than 5
- Sprite is only loaded once (fixes #259)
- Fixes for Vimeo post message bugs on source change or destroy (fixes #318)
- Save caption state in storage (fixes #311)
- Added keyboard shortcuts to the current focused player (with
keyboardShortcuts
boolean option to disable) (fixes #309) - Fix for captions bug (fixes #332)
- Change to AMD (fixes #298)
v1.8.12
v1.8.11
v1.8.10
v1.8.9
v1.8.8
v1.8.3
- Disabled iPad support for YouTube and Vimeo due to iOS limitations with iFrame playback
- Fixed IE11 icon loading (fixes #269)
- Updated screenshot (fixes #281)
- Added WordPress plugin (fixes #239)
- Added Neos plugin
- Added HLS, Shaka and dash.js examples (see #235 for more)
- Improvements for controls hiding and showing on touch devices
v1.8.0
- _(Important)_
setup()
now returns the element Plyr was setup on rather than theplyr
object. This meansvar player = plyr.setup()[0];
would now bevar player = plyr.setup()[0].plyr;
. This improves support for React and other virtual dom frameworks as mentioned in #254 - Fixed using a relative URL for
iconUrl
in IE (fixes #269)
v1.7.0
- SASS cleanup (fixes #265)
- Docs tidy up to help quick start (fixes #253)
- Fix for issues with data attribute options passing (fixes #257)
- Removed the requirement for a wrapper div to setup Plyr and removed the dependency on the
plyr
classname as a JS hook. By default it will now look for<video>
,<audio>
and[data-type]
elements. If you are just callingsetup()
with a<div class="plyr">
you may want to give it a good test after upgrading. You can probably remove the wrapper div. The reason behind this is to make setup easier for newcomers and prevent the styling being used on unsupported players (because the plyr classname was used as a CSS and JS hook - which isn't ideal) - Renamed the 'docs' folder to
demo
to avoid confusion. The readme is the docs after all.