7 years ago
Web: 8.0.0
Updates
General Changes
- Updated the default player size to 640px wide x 360px high.
- Upgraded hls.js to version 0.8.4, which enhances the stability of HLS playback in the player and improves HLS stream support.
- The player will now show a center display icon when the player pauses itself due to a failed attempt to play the video, providing more visual indication to the viewer that they need to manually hit play again. This is especially helpful in response to Safari 11, where autoplaying videos with sound are automatically paused on playback unless the user has changed the default browser setting.
- Added the Cardboard mode icon to the idle state, so that when available, viewers can enter 360 mode before starting the video in Android Chrome.
- Added the ability to instantiate a player and immediately begin playback from a click on an element. By calling
setup()
followed byplay()
, the user interaction on the element is propagated all the way through to the instantiated player, eliminating the need to interact with the player to start playing media after it’s setup. - Bundled the most frequently used combinations of player assets (controls, media providers, and browser polyfills) so that all the Javascript needed to begin playback can be provided in fewer responses.
- Improved handling of player asset loading so that users get feedback more quickly when a plugin, component, or non-essential asset fails to load. In the case of non-fatal errors, the player will attempt to recover gracefully. If a required component fails to load, the player will fail to setup and the user will be notified within 20 seconds.
- Separated the core player to make our embed script significantly smaller, shaving off more than 100kb that no longer needs to be loaded and parsed before the player is set up.
- Updated the preload behavior so only the first player on the page or viewable players preload when preload is set to anything other than none.
- Improved the
preload: metadata
setting so that the player loads the manifest and buffers a maximum of one segment of media for HLS and Dash streams. MP4 streams load metadata only. - Improved preload: auto so that the player loads the manifest and buffers approximately 30 seconds of media. MP4 streams load based on browser behavior when the
preload: auto
attribute is set. - Updated the default preload configuration to do
preload: metadata
when preload is not set.
Ads
- Included the Skip button in the
vpaidcontrols
configuration’s functionality for the VAST plugin. - Included the duration present in the VAST XML on the adImpression event.
- JW8 dropped support for VAST 1 as it has been deprecated by the IAB and has extremely low usage and a high risk of causing ad errors.
- Added
MediaFile compliance
metadata from VAST4 tags to Vast plugin API events, including the reason the tag was not compliant. - Updated our Vast plugin to support playback of VAST 4 ad tags.
- The following VAST 4 metadata has been added to Ads API events:
UniversalAdID
,Categories
,ConditionalAd
, as well as compliance with IAB guidelines on MediaFile setup. - Added support for m3u8 MediaFiles in ad tags in our Vast plugin.
Support
- JW8 does not support JW7 license keys. JW Platform-hosted JW8 players will automatically have JW8 keys. For self-hosted players: Your JW7 license key will still work with your JW7 player embeds, but it will not work with JW8. All existing accounts will provide both JW8 and JW7 versions of the license key. To update these to use JW8, download the player zips from your account dashboard, update the license key on your pages, and replace the url to JW Player with the new location where you are hosting JW8. New accounts will only have access to JW8.
- HLS, DASH, 360, and casting are now all supported in all editions of the player, including the Free edition.
- The recommendations plugin is no longer supported in the Premium edition.
- YouTube and RTMP formats are no longer supported in the player.
- Removed the Flash provider from the open-source jwplayer project. Flash is no longer supported in JW Player and is only used to play HLS streams in IE11 on Windows 7.
API Updates
- Added a
getEnvironment()
API method, which provides an object containing all browser and operating system information decomposed from the user agent. - Deprecated the
primary
configuration option. Flash can no longer be defined as a primary provider. The player will choose the appropriate provider based on the environment it's in and the media type. - Deprecated all
jwplayer().onEventName
events, Browser/OS util methods and player constants that follow the patternJWPLAYER_*
. - Deprecated the ability to toggle the state simply by calling
play()
orpause()
. This change makes play and pause behavior more predictable in the API. Going forward, callingplay()
while media is playing does nothing, as does calling pause() when the player is already paused. - Changed the configuration options and API for using playback rate controls. In JW8,
playbackRateControls
is a boolean that toggles the visibility of playback rates in the global menu.playbackRates
, a new optional config property, accepts an array of numbers which overrides the default playback rate options of 0.5, 1, 1.25, 1.5, and 2. This improves upon the first iteration of the feature, released in 7.12, whereplaybackRateControls
controlled both the menu’s visibility and custom playback rates. This change is backward compatible and will not affect JW7 players upgraded to JW8. - Created a backward compatibility script so that custom code written against deprecated API functionality will continue to work when a JW7 player is updated to JW8.
User Interface Improvements
- The control bar now uses flexbox, which simplifies the DOM structure and css. Icons are no longer grouped in left, center, and right divs.
- Consolidated all control bar icons that had their own menus into a single settings menu, accessible via the gear icon in the control bar. This includes quality, audio tracks, captions and playback rate controls. Captions still has a dedicated icon in the control bar for accessibility reasons. The sharing menu has also been added to the settings menu. Like captions, sharing has a dedicated control bar icon that opens the settings menu to the sharing sub-menu.
- Removed webfont-based icons and replaced them with inline SVGs. The following icons have been redesigned for JW8: live, quality, buffer, error, and rewind 10 seconds.
- Changed all dock icons from being positioned in the upper-right corner to the control bar. The addButton API now adds buttons to the control bar. These buttons will be added to the right of the logo if the logo is present in the control bar.
- Improved the timeslider behavior so there’s a visual indication when a user hovers or scrubs to a new playback position. We’ve also increased the touch target to make it easier to engage with the timeslider on touch devices.
- Leveraged the timeslider as a progress indicator during ad playback by making it visible and positioning it below the control bar icons.
Skins
- Added 11 new skin customization options in JW8. If supplied, the three customization options that were available in JW7 (
skin.background
,skin.inactive
,skin.active
) will map to the new options in JW8. Note that there’s no mapping to the newskin.timeslider.rail
option. - Deprecated all JW7 skins. JW8 debuts our all-new default skin featuring a transparent control bar, tooltips, and a modern interface, which carry over to ads and audio only modes.
Accessibility
- Added tooltips that appear on hover or focus over any icon in the settings menu, which increases clarity for viewers.
- Improved support for keyboard navigation in JW8. Users can tab to advance through buttons and menu options in the player, and use the enter key in lieu of a click to take action on any focused item. The escape key can be used to close overlays and menus.
Logos
- Added a new logo position option,
control-bar
, which places the logo in the control bar with an optional clickthrough link. Note: currently, all logos in the control bar render in a square container. A future release will support rectangular logos. - Deprecated the
timeSliderAbove
configuration option since it will be the only layout in JW8. - Updated the default logo margins to be 20px from the sides of the player.
- Added maximum dimensions for logos. The height or width of a logo will not exceed 15% of the player’s height or width. The player will dynamically resize logos to fit within the height and width constraints so as to not obstruct the video.
Fixes
Core Player
- Fixed an issue where the copy button in the sharing menu linked to a JW Player content preview page instead of the page where the player is embedded. This only occurred when no custom URL is provided in the player configuration. If a custom URL is provided, that link will be copied instead.
- Fixed an issue where the player only returned one subtitle track in Safari when multiple are present in the HLS manifest.
- Fixed a bug where HLS streams skipped ahead and incorrectly reported the position after a discontinuity in Chrome and Firefox.
- Fixed an issue where HLS streams paused or stalled when automatically upshifting quality in Chrome and Firefox.
- Fixed a bug where the casting icon would not appear in the control bar on autostarting players with pre-roll ads.
Advertising
- Updated the FreeWheel plugin to time-out quicker when it’s blocked by an adblocker.
- Fixed an issue in the Vast plugin where content might not start after a VPAID ad was skipped.
- Fixed an issue in the Vast plugin with VPAID clickthrough where the player was ignoring
playerHandles=false
, which resulted in both the player and the ad opening tabs, rather than just the ad handling the clickthrough action.
Affected Beta and RC Versioned Players Only
- Fixed an issue where free edition players would not play HLS streams in Flash.
- Fixed an issue where the control bar faded when focused on, preventing keyboard navigation.
- Fixed an issue with players in audio-only mode where custom colors would only appear once playback begins, and would set up with the default colors.
- Fixed a bug where controls were hidden when a player had casting configured in audio-only mode.
- Fixed an issue where the error icon did not appear on setup errors.
- Fixed an issue where rectangular logos positioned in the control bar were resized to fit within 24px square dimensions. The player will now resize logos positioned in the control bar to occupy a max width of 44px and a max height of 24px, which is consistent with the height of other control bar elements.
- Ads are once again supported in Platinum edition players, remedying their erroneous removal from prior 8.0.0 beta releases.