Skip to content

Releases: sampotts/plyr

v3.5.3

12 Apr 08:45
Compare
Choose a tag to compare
  • Improved the usage of the ratio config option; it now works as expected and for all video types. The default has not changed, it is to dynamically, where possible (except YouTube where 16:9 is used) determine the ratio from the media source so this is not a breaking change.
  • Added new ratio getter and setter
  • Fix: Properly clear all timeouts on destroy
  • Fix: Allow absolute paths in preview thumbnails
  • Improvement: Allow optional hours and ms in VTT parser in preview thumbnails

v3.5.1

23 Feb 02:15
Compare
Choose a tag to compare
  • Fixed build issues with babel and browserslist

v3.5.0

18 Feb 14:26
Compare
Choose a tag to compare
  • Preview seek/scrubbing thumbnails (thanks @jamesoflol)
  • Fixes for proxy listeners (thanks @gurupras)
  • Fix for buffer progress transition on WebKit (thanks @samuelgozi)
  • Fix for error when mime type not specified (fixes #1274)
  • Support YouTube noCookie (thanks Omar Khatib)
  • Add Angular plugin reference (thanks @smnbbrv)
  • Use Math.trunc instead of parseInt (thanks @taion)
  • Many fixes for fullscreen in embedded players with non 16:9 screens or videos
  • Added 'force' fallback option for fullscreen
  • RangeTouch is now bundled with Plyr as a dependency to fix the scrubber on touch devices

v3.4.5

24 Oct 12:05
Compare
Choose a tag to compare
  • Added download button option to download either current source or a custom URL you specify in options
  • Prevent immediate hiding of controls on mobile (thanks @jamesoflol)
  • Don't hide controls on focusout event (fixes #1122) (thanks @jamesoflol)
  • Fix HTML5 quality settings being incorrectly set in local storage (thanks @TechGuard)

v3.4.0

13 Aug 14:02
Compare
Choose a tag to compare
  • Accessibility improvements (see #905)
  • Improvements to the way the controls work on iOS
  • Demo code clean up
  • YouTube quality selection removed due to their poor support for it. As a result, the qualityrequested event has been removed
  • Controls spacing improvements
  • Fix for pressed property missing with custom controls (Fixes #1062)
  • Fix #1153: Captions language fallback (thanks @friday)
  • Fix for setting pressed property of undefined (Fixes #1102)

v3.2.0

17 Apr 13:56
Compare
Choose a tag to compare
  • Fullscreen fixes (thanks @friday)
  • Menu fix for if speed not in config
  • Menu z-index fix (thanks @danielsarin)
  • i18n fix for missing "Normal" string (thanks @danielsarin)
  • Safer check for active caption (thanks @Antonio-Laguna)
  • Add custom property fallback (thanks @friday)
  • Fixed bug for captions with no srclang and labels and improved logic (fixes #875)
  • Fix for playing false positive (fixes #898)
  • Fix for IE issue with navigator.language (thanks @nicolasthy) (fixes #893)
  • Fix for Vimeo controls missing on iOS (thanks @verde-io) (fixes #807)
  • Fix for double vimeo caption rendering (fixes #877)

v3.1.0

10 Apr 10:40
Compare
Choose a tag to compare
  • Styling fixes
  • YouTube playback speed fixes
  • HTML5 quality selection
  • Improvements to the YouTube quality selection

v3.0.3

21 Mar 14:14
Compare
Choose a tag to compare
  • Vimeo offset tweak (fixes #826)
  • Fix for .stop() method (fixes #819)
  • Check for array for speed options (fixes #817)
  • Restore as float (fixes #828)
  • Fix for Firefox fullscreen oddness (Fixes #821)
  • Improve Sprite checking (fixes #827)
  • Fix fast-forward control (thanks @saadshahd)
  • Fix the options link in the readme (thanks @DanielRuf)

v3.0.0

17 Mar 14:14
Compare
Choose a tag to compare

This is a massive release. A mostly complete rewrite in ES6. What started out as a few changes quickly snowballed. There's many breaking changes so be careful upgrading.

Big changes

  • New settings menu complete with funky animations
  • Ability to adjust speed of playback
  • Ability to toggle caption language (HTML5 and Vimeo only)
  • Ability to set YouTube quality (HTML5 will follow)
  • Added support for Vimeo captions
  • Added Picture-in-Picture support (Safari only)
  • Added AirPlay support (again, Safari only)
  • Added playsinline support for iOS 10+
  • Soundcloud removed until I can work on a plugin framework
  • Embedded players are now progressively enhanced - no more empty <div>s!

Other stuff

  • Now using SASS exclusively. Sorry, LESS folk it just made sense to maintain one method as SASS is what the cool kids use. It may come back if we work out an automated way to convert the SASS
  • Moved to ES6. All the rage these days. You'll need to look at polyfills. The demo uses polyfill.io
  • Added basic looping support
  • Added an aspect ratio option for those that can't leave the 90s and want 4:3
  • controlshidden and controlsshown events added for when the controls show or hide
  • qualityrequested and qualitychange events for YouTube quality control (HTML5 will follow)
  • Volume is now 0 to 1 as per HTML5 spec
  • No longer bodging a <progress> behind the <input type="range"> to make up for WebKit's lack of lower fill styling
  • Captions now render with line breaks as intended
  • Captions now render without AJAX using the native events etc
  • Added a fallback for getting YouTube video data incase .getVideoData() disappears when one of their developers randomly deletes it again
  • Setup and building of the UI should be way "snappier"
  • Click to toggle inverted time (e.g. 0:01 or -2:59 for a 3 minute video at 1 seconds) - new toggleInvert and invertTime options
  • Added autopause option for Vimeo
  • Added muted option for you guessed it, muted playback
  • Restored the .off() API method
  • .play() will now return a promise to prevent that pesky uncaught promise issue in Chrome etc
  • Pressing and hold the seek bar no longer freezes all other updates of the UI

...plus loads of bug fixes.

Breaking changes

You gotta break eggs to make an omelette. Sadly, there's quite a few breaking changes:

  • Setup now uses proper constructor, accepts a single selector/element/node and returns a single instance - much simpler than before
  • Much of the API is now using getters and setters rather than methods (where it makes sense) to match the HTML5 API - see the docs for more info
  • The data attributes for the embeds are now data-plyr-provider and data-plyr-embed-id to prevent compatibility issues. These can be changed under config.attributes.embed if required
  • blankUrl -> blankVideo
  • volume is now 0 to 1 as per HTML5 spec
  • keyboardShorcuts (typo) is now just keyboard
  • loop is now loop.active in preparation for loop enhancements later
  • html option for custom controls removed in favour of the controls option which now accepts an array (to use built in controls) or a string of HTML for custom controls.
  • classes -> classNames
  • classes.videoWrapper -> classNames.video
  • classes.embedWrapper -> classNames.embed
  • classes.ready removed
  • classes.setup removed
  • classes.muted removed
  • classes.fullscreen.active removed in favour of the :fullscreen selector
  • selectors.html5 removed
  • selectors.embed removed
  • selectors.buttons.seek -> selectors.inputs.seek
  • selectors.volume.input -> selectors.inputs.volume
  • selectors.volume.display -> selectors.display.volume
  • selectors.currentTime -> selectors.display.currentTime
  • selectors.duration -> selectors.display.duration

Polyfilling

Because we're using the fancy new ES6 syntax, you will need to polyfill for vintage browsers if you want to use Plyr and still support them. Luckily there's a decent service for this that makes it painless, polyfill.io. Alternatively, you can use the prebuilt polyfilled build but bear in mind this is 20kb larger. I'd suggest working our your own polyfill strategy.

v2.0.18

14 Nov 16:21
Compare
Choose a tag to compare

Fix for YouTube .getVideoData() issue (fixes #709)