Latest Releases JW Player JW Platform iOS SDK Android SDK

v8.11

VAST 4.1 Macro Support

JW 8.11 features five new ad tracking pixel macros supported in VAST 4.1. These macros are designed to provide more information about the ad play to the ad server, ranging from GDPR consent to the page url. Web player support for Open Measurement via the verification node is still under development by the IAB and will be implemented once available.

v8.11.8

Release Date: November 20, 2019

Fixes

Core Player

  • Fixed an issue causing some DASH streams with embedded captions that use cue alignment to throw a 240000 error in Safari.
  • Fixed a bug where keyboard shortcuts didn’t work while interacting with the settings menu.
  • Fixed the misalignment of control icons that appear in the middle of the screen on small players.
  • Fixed issues with misaligned vertical and horizontal webVTT captions that use cue positioning.

Advertising

  • Fixed an issue in VAST and IMA where the adPlay event only fired once per VPAID ad pod.
  • Fixed an issue in IMA where the player erroneously passed a skip offset value in ad requests, which is supposed to be set by GAM in the ad response. In VAST, skip is set to 1 in the request when skip is defined in the ad schedule, and 0 when it is undefined.

v8.11.7

Release Date: November 6, 2019

Updates

Advertising

  • In VAST and Google IMA, added better support for domain tracking within AMP based urls.

Fixes

Core Player

  • Fixed a bug where shelf widget UI would change size when the player entered floating state.
  • Fixed a bug where swiping did not paginate through the shelf UI on iPad OS.

Advertising

  • Fixed a bug where the player duplicated custom parameters in ad requests when using Google IMA.

v8.11.5

Release Date: October 23, 2019

Updates

Core Player

  • Added the ability to disable keyboard shortcuts via a toggle in the right click menu.

Advertising

  • In VAST and Google IMA, added support for IAB GDPR Transparency and Consent Framework v2. This framework introduces major enhancements and efficiency improvements, including mobile CMP support. It also expands the consent string to include ‘transparency’ features, including publisher controls and additional flexibility for vendors.

Fixes

Core Player

  • Fixed a bug causing player touch events to register on the element beneath the player in Safari iOS.
  • Fixed a bug that prevented the player from being in focus when playback was initiated via the play button.

Advertising

  • Improved the floating player to ensure that the “X” to dismiss is present during ad playback without needing to hover or click.

v8.11.4

Release Date: October 9, 2019

Fixes

Core Player

  • Fixed an issue where a dismissed floating player floats again when scrolling.

Advertising

  • Fixed a bug in VAST that added a skip button to ads that were not configured to be skippable.

v8.11.3

Release Date: October 3, 2019

Service release, no new features.

v8.11.2

Release Date: September 26, 2019

Service release, no new features.

v8.11.1

Release Date: September 25, 2019

Updates

Core Player

  • Improved accessibility on iOS in Safari by inheriting all captions styles set on the device.
  • Added automated translation support for Greek.
  • Added internationalization support for all fields in the keyboard shortcuts menu released in JW8.8.0, as well as automated translations for all 24 supported languages.
  • Improved float on scroll behavior on mobile so that the player sticks to the top when it reaches that position, rather than first scrolling out of view and popping back into place. With this change, the float on scroll feature is truly “float on scroll” on desktop, but more accurately behaves as “sticky” on mobile.

Advertising

  • In VAST, added support for the [DEVICEUA] tracking pixel or __device-ua__ in the ad tag, which sends the user’s device agent. Also added the ad tag support in Google IMA.
  • In VAST, added support for the [PAGEURL] tracking pixel, which sends the page where the ad is intended to play.
  • in VAST, added support for the [REGULATIONS] and [GDPRCONSENT] macros, which tell the ad server if GDPR regulations are being used and if consent has been granted, respectively.
  • IN VAST, added support for the [ADSERVINGID] macro, which adds the AdServingId value to the tracking pixel, which is parsed from the <AdServingId> node.

Fixes

Core Player

  • Fixed a bug causing a black screen during playback of an audio-only mp4, rather than the poster image persisting in the player.

Advertising

  • Fixed a bug in DAI where the player buffered infinitely after resuming playback from a mid-roll.
  • Fixed an issue in Google IMA where custom macros added in the custParams block were not being replaced by the correct values.
  • Fixed a bug in VAST causing the skip button to show on nonskippable VPAID ads when vpaidcontrols: true.
  • Fixed a bug causing VPAID creatives to be cancelled after 15 seconds due to stall detection.

v8.10

Minor Enhancements

Your feedback has been invaluable as we continue to enhance the player. With 8.10, we are making small scale updates and fixes such as adding aspect ratio to the setConfig API and an option to also pause ads with our autopause video feature.

In case you’ve missed them, check out these headlining features from the last few minor releases:
8.9: VAST Ad Pods
8.8: Viewability Features
8.7: SCTE-35 Support
8.6: Automated Player Translations

v8.10.3

Release Date: September 6, 2019

Service release, no new features.

v8.10.1

Release Date: August 22, 2019

Updates

Core Player

  • Added support for updating aspectratio, width, height, and stretching configuration options via the setConfig() API.

Advertising

  • Added support for Ad Placement Type (placement). The options are: article, banner, feed, floating, interstitial, slider, or instream. By default, the player will set instream players to instream and outstream players to article. These defaults can be overridden to reflect the appropriate placement type.
  • Added the ability to autopause ads based on player viewability by setting ”pauseAds”: true in the autoPause block.
  • Added support for displaying VAST icons contained in ad tags.
  • Added support for calling jwplayer().skipAd() with VPAID ads.

Fixes

Core Player

  • Fixed open vulnerabilities to XSS attacks.
  • Fixed a bug preventing thumbnails from displaying in the playlist overlay on IE11.

Advertising

  • Fixed an issue causing the wrapped ad tag to not be included in all ad events.

v8.9

VAST Ad Pods

If you’re one of the 50% of our customers using our VAST plugin to deliver ads, you already know that it’s faster and more customizable than the IMA plugin, which relies on Google’s SDK. JW 8.9 introduces an added benefit of using our VAST plugin: ad pods. Ad pods play a sequence of ads in a single ad break. As of this release, you can configure an ad break with a separate ad tag for each ad in the pod through a custom setup configuration without going through your ad manager. Error events fire on a per ad basis instead of one per ad break.

8.9 also includes support for the GDPR ad tag macro, as well as some user interface improvements to the control bar and playlist overlays, which are detailed below.

v8.9.5

Release Date: August 1, 2019

Fixes

Core Player

  • Fixed an intermittent issue causing captions to no longer render after seeking.

v8.9.4

Release Date: July 25, 2019

Fixes

Core Player

  • Removed three lines of logs appearing in the console for every HLS embed.
  • Fixed an issue where resuming a stopped live HLS stream did not display enabled captions automatically in browsers other than Safari.
  • Fixed an issue where resuming a stopped live HLS stream with WebVTT captions showed a duplicate track in the captions menu.
  • Fixed misalignment of WebVTT captions in IE11 and Edge.
  • Fixed an issue causing the playlist overlay to flicker and the countdown to be removed when resizing the player between breakpoints.

Advertising

  • Exposed additional metadata about ad creatives in the adImpression and adError events
  • In Google IMA, added duration to the adImpression event
  • Fixed an issue where a Javascript exception to be thrown when all ad tags in an ad pod 404.
  • Fixed an issue where a media time event would fire during an ad break.
  • Improved URL detection for players embedded in Google AMP pages to filter out invalid urls.
  • Fixed an issue where an ad error caused by an invalid root domain would result in an uncaught exception.

v8.9.3

Release Date: July 2, 2019

Service release, no new features.

v8.9.2

Release Date: June 21, 2019

Fixes

Core Player

  • Fixed a bug where the last visible quality level appears highlighted in the list of all available qualities, instead of the currently selected item.
  • Fixed an issue where HLS streams buffered indefinitely instead of erroring when an internet connection is dropped.
  • Fixed misaligned text in the right click menu and the playlist overlay in right-to-left languages.
  • Fixed issues with 360 playback on mobile devices preventing the video from being panned inline or viewed in fullscreen.
  • Fixed an issue preventing HLS streams from being cast from the player.

Advertising

  • Fixed an issue in the VAST plugin when a wrapper ad tag is found in an ad pod where the root wrapper’s error ping is not sent when an ad error occurs.
  • Fixed an issue in the VAST plugin where VPAID ads were not mutable on iPads.

v8.9.0

Release Date: June 12, 2019

Updates

Core Player

  • Extended all of the playlist user interface configuration options in the related block to work for all playlists (not just those of the JW Player Recommendations product).
  • Added a displayMode option, “none,” which removes a playlist interface during playback. This option is ideal if you’ve created your own playlist widget or interface outside of the player, since having a duplicate inside the player container is redundant. The next video button remains, and the playlist overlay that appears in between videos is configured separately, via related.oncomplete.
  • Added a new option to related.complete, none, which automatically advances the video to the next item in the playlist without showing an overlay in between. This is also now the default value and was already the behavior for all manual playlists.
  • Improved responsiveness of player so that it is resized whenever its parent container is resized.
  • Increased the size of the user interface when a player is larger than 1280px wide (breakpoint 7).
  • Decreased the number of icons in the user interface when a player is smaller than 320px wide and added a new breakpoint (-1) to support it.
  • Added support for Program-Date-Time metadata in Safari, making this the preferred method for SSAI and live streaming implementations across all browsers.

Advertising

  • Added support to pass a GDPR macro in an ad tag using either the VAST or IMA plugin.
  • Added support for ad pods in an ad schedule using our VAST plugin. When an ad schedule is configured with an array of breaks that all contain the same offset, the player will automatically create a pod and play the ads in succession before returning to the content. Each ad in the pod may have a separate ad tag, and events such as errors will fire separately for each ad.

Fixes

Core Player

  • Fixed an issue with the autoPause feature where a player also configured to autostart with volume muted will not automatically resume playing when brought back into view if the video has already been umuted by the viewer.
  • Fixed a bug where the horizontal volume knob appeared when dragging the seek slider.
  • Fixed an issue where the next up display did not appear on Recommendations playlist feeds.
  • Fixed a bug that prevented social media sharing in the player.

Advertising

  • Improved user experience by fixing an issue where the ads mode UI would appear briefly before content playback when only a mid-roll ad was scheduled.

v8.8

Viewability Features

In the industry, a video player that is at least 50% in view on the screen for greater than two seconds is considered “viewable.” Viewability is a key signal of engagement, which is why it has become the gold standard for publishers and advertisers alike. JW 8.8.0 introduces the floating player, which minimizes itself to the bottom right corner of the screen when a viewer scrolls the player out of view. It ensures nearly 100% viewability and can be easily dismissed back to its original position. Another way to increase average viewability is by automatically pausing the video when the player is out of view. Our auto pause feature can help you do just that. Both of these features are available with as little as one line of code..

Also new in JW 8.8.0 is support for the CMAF standard, as well as using our recommendations interfaces (known as the shelf and shelf widget) on any playlist, and six new languages for automatic localization. See the full release notes below for more additions.

v8.8.6

Release Date: May 15, 2019

Updates

Core Player

  • Removed Google+ sharing support due to the shutdown of that product.
  • Added support for sending events to Google Analytics custom trackers.
  • Added automatic player localization support for Occitan and Slovenian.
  • Made the tabbing behavior in and out of the volume slider consistent to improve accessibility.
  • Improved auto pause behavior so that it is consistent across devices.
  • Added the ability to configure nextupoffset to display the next up overlay at a specified percent of the way through the video, rather than at a fixed number of seconds from the beginning or end of the video.

Fixes

Core Player

  • Fixed an issue on iOS causing playback errors (code 224002) when reopening Safari after navigating away from the app.
  • Fixed an issue preventing related.displayMode, which controls playlist user interfaces, from working on Starter and Business edition players.
  • Fixed an issue causing captions to appear too high in fullscreen in Safari on devices running iOS.
  • Fixed a typo in the word for “Share” in the French translation.
  • Fixed a bug where the settings button did not appear in the control bar if audio tracks was the only menu available.
  • Fixed an issue causing manual quality selection to revert to Auto in between changing text tracks on DASH streams.

Advertising

  • Fixed a bug causing ad cues to disappear from the timeline when toggling controls with the setControls method.
  • Fixed ad errors occurring when the MIME type of an ad creative differed from the type of the video content.
  • Fixed an issue preventing fallback ads when fallbackOnNoAd is set to true.

v8.8.5

Release Date: April 24, 2019

Updates

Core Player

  • Improved float-on-scroll responsiveness with more precise player visibility detection.

v8.8.4

Release Date: April 22, 2019

Updates

Core Player

  • Added a next up notification to small players.

Advertising

  • In the VAST plugin, filtered out 3gpp creatives due to lack of codec support in some environments.
  • Fixed an issue in the IMA plugin where programmatically calling skipAd before an ad becomes skippable would not skip the ad, but cause the media to start playing in the background.
  • Updated the following Ad Error codes to better reflect the root causes of the error:
    • 60004 is now 10402 (Creative timeout)
    • 60001 is now 10303 (No ads response)
    • 50004 is now 51901 (VPAID general error)
    • 234003 is now 10405 (Request for MP4 creative returns a 404)
    • 242404 is now 10403 (Request for HLS creative returns a 404)

Fixes

Core Player

  • Fixed an issue causing the player to infinitely buffer when resuming after a stopping a live stream with separate audio tracks.
  • Fixed a bug where the captions menu was removed when casting with Chrome unless captions were enabled prior to casting for manifests with sideloaded VTT captions.
  • Fixed an issue making captions unavailable when casting if chapter tracks are also present in the feed.
  • Fixed a Javascript exception when a Chromecast session errors.
  • Fixed style bleeding on some menus that may appear on sites with global ul styles.

v8.8.2

Release Date: April 4, 2019

Updates

Core Player

  • Made security improvements to input handling.
  • Added a tooltip over the play and pause icons to improve accessibility.

Advertising

  • Added inner error details to Google IMA 901 "General VPAID Error” errors.

Fixes

Core Player

  • Fixed an issue where stalled live HLS streams were not entering the buffer state or emitting buffer events.
  • Fixed an issue where players in iframes configured to float would minimize in the iframe instead of the containing page. Floating is not supported in players set up in iframes.
  • Fixed an issue causing a floating player to not always be the topmost item on the page.
  • Removed logging of the {{Negative cursor position -1}} error in HLS streams.
  • Fixed incorrect styling of the Chromecast button.
  • Fixed a bug causing the right click menu to be too large.

v8.8.1

Release Date: March 25, 2019

Fixes

Core Player

  • Fixed an issue causing the floating player to go back to its original location on complete of each playlist item. Skipping to the next video by clicking a thumbnail or the next up button was unaffected.

v8.8.0

Release Date: March 21, 2019

Updates

Core Player

  • Added a new object, floating, which keeps the player visible when the original player location is scrolled out of view by minimizing it to the bottom right corner of the screen (and the top of the page in portrait mode on small screens). Viewers cannot hide the floating player and send it back to its original location when floating.dismissible is set to false. Learn more about floating in our documentation.
  • Removed a previously undocumented configuration option, floatOnScroll, which was available for a beta version of the floating player. Please use the new floating block above.
  • Added the ability for the viewer to drag and reposition the floating player anywhere on the screen. Dragging is disabled during ad playback.
  • Added a new object, autoPause, which automatically pauses the video when less than 50% in view, including when the player is no longer in the active tab. Learn more about autopause in our documentation.
  • Added support for CMAF format streams across all browsers.
  • Improved handling of relative protocol urls so that JW Player hosted protocol-relative playlist urls can play when accessing a webview that has js embed with file:// protocol. Only jwplatform playlist urls starting with "//" are changed to be loaded over https. URLs for other domains or for ad tags must be fully resolved in the setup configuration.
  • Improved the user experience by retaining the paused state after a viewer seeks while paused. Developers who have worked around this in the past by calling pause() on seek no longer need to use the API, but anyone who wishes to resume playback automatically after a seek event now must call play().
  • Improved clarity by hiding the settings menu gear icon in the control bar if the only submenu option is also a shortcut icon in the control bar, which applies to sharing and captions.
  • Added a volume slider to control bar only players, which is used to play audio. Setting a player’s height to 42px automatically puts the player into control bar only mode.
  • Added a reference dialog for keyboard shortcuts within the player, which can be accessed via the right click menu or evoked by pressing SHIFT+?.
  • Added support for all playlists to use our recommendations user interfaces by setting related.displayMode to shelf or shelfWidget. Read more about this option in the configuration reference. The default interface for playlists that are not generated through our recommendations product remains as overlay.
  • Removed the localization option, playlist, which localized the tooltip text, overlay heading, and aria-label HTML attribute of a playlist overlay. To customize this text, please use related.heading within the intl block.
  • Added a shortcut to sharing in the right click menu.
  • Added automatic localization support for six new languages: Russian, Indonesian, Korean, Thai, Vietnamese, and Finnish. Check our support article for a full list of the 21 supported languages and to submit a request for additional languages.

Advertising

  • Deprecated the on(‘adManager’) event for Google IMA and Freewheel, which fires when the ad manager is loaded. on(‘adsManager’), with an “s”, should be used instead.

Fixes

Core Player

  • Fixed a typo in the French translation of the word share.

Advertising

  • Fixed an issue causing audio to play in background when a player is removed while it’s loading an ad with the Google IMA client.
  • Fixed a bug where chapter markers are not displayed if there is a mid-roll ad break using the Google IMA client.

v8.7

SCTE-35 Support

SCTE-35 is a form of metadata, similar to the ID3 tagging system applied to streaming media, that broadcasters have been using for years for traditional broadcast television, and now, web streams. Like ID3 metadata tags, SCTE-35 markers can be added to an HTTP Live Streaming (HLS) manifest to provide contextual and temporal metadata. In JW 8.7, the player exposes SCTE-35 CUE-OUT and CUE-IN points, as well as DATERANGE tags to indicate when there are breaks in your live stream.

v8.7.6

Release Date: February 20, 2019

Fixes

Player

  • Fixed an issue with HLS live streams where in-manifest VTT captions were not displaying consistently throughout the video.

v8.7.5

Release Date: February 6, 2019

Updates

Core Player

  • Improved the casting experience by starting a casted DVR stream at the live edge instead of at the beginning of the stream.

Fixes

Core Player

  • Fixed an issue where custom right click text was not appearing when the player was automatically localized.
  • Fixed a bug that caused a javascript exception when exiting fullscreen by pressing the escape key.
  • Fixed an issue causing the play icon on small click-to-play players to spin when clicked.
  • Fixed a Flash issue preventing seeking in DVR streams in IE 11 on Windows 7.
  • Fixed an issue in Safari where clicking on the rewind button during a live stream with DVR would seek back inconsistently, instead of ten seconds.

v8.7.4

Release Date: January 23, 2019

Fixes

Core Player

  • Fixed an issue where screen readers did not read the mute button correctly.
  • Fixed an issue in Safari when using the left and right arrow hotkeys to seek where screen readers did not announce the seek if there were multiple players on the page.
  • Improved ads accessibility by not fading controls when using the keyboard to navigate and ensuring the skip button is in the correct tab order from left to right. Note that due to third-party limitations, ads rendered in iframes and through the Google IMA plugin may not be accessible.

v8.7.3

Release Date: January 9, 2019

Updates

Core Player

  • Added a new error code, 102007 (ERROR_XHR_FILE_PROTOCOL), which fires when a player fails to set up on a page that is using the file:// protocol.

Fixes

Core Player

  • Fixed an issue where HLS DVR content did not start playback at the live edge.
  • Fixed a bug where the settings menu would be displayed in the idle state if it was opened via a load API call.
  • Fixed an issue where timeline thumbnails and chapter cue points did not display on touch devices when dragging to seek.
  • Fixed an issue where sharing.on('open') erroneously fires multiple times after calling load.

Advertising

  • Fixed an issue where the opacity of the ad video element was 0 for some VPAID Google IMA ads, which increased the hidden ad rate recorded by ad verification vendors.

v8.7.1

Release Date: January 2, 2019

Fixes

Core Player

  • Fixed a bug where WebVTT did not show after a discontinuity in HLS streams.
  • Fixed a bug where WebVTT did not show when captions were enabled after a seek in HLS streams.

v8.7.0

Release Date: December 17, 2018

Updates

Core Player

  • Added a new property to meta events, metadataType, which indicates the type of metadata available in the event. Possible values are: media, program-date-time, id3, date-range, scte-35, and unknown.
  • Added a new event metadataCueParsed which is triggered once the metadata cue point is buffered.
  • Exposed CUE-OUT, CUE-IN, and DATERANGE SCTE-35 metadata tags that are parsed in an HLS manifest. When a metadata tag becomes active, the following SCTE-35 meta events are fired: #EXT-X-DATERANGE, #EXT-X-CUE-OUT, and #EXT-X-CUE-IN.
    Localization
  • Added automated localization support for Hebrew.
  • Added new localization options and updated all automated localization files to include translations for “Mute,” “Unmute,” and “Exit Fullscreen” icon tooltip texts and ARIA labels.
  • Changed the default English localization text for slider from “Seek Slider” to “Seek” to reduce screen reader redundancy.
  • Improved readability, punctuation, and string concatenation for all right-to-left languages, including Arabic and Hebrew.
    Accessibility
  • Added screen reader support to announce the video position changes when using the left and right arrow keyboard shortcuts while not focused on the timeline element.
  • Added screen reader support to announce volume changes when using the up and down arrow keyboard shortcuts while not focused on the volume slider element.
  • Improved volume keyboard accessibility by separating the mute icon from the volume slider. Now, when a user tabs to the mute icon, hitting enter will mute or unmute the player. Tabbing out of the mute icon, the volume slider will appear and can be controlled. Tabbing out of the volume slider will hide the slider and move focus to the next focusable icon.
  • Fixed a bug causing the volume slider to be read as a “left-right slider” when it is actually an “up-down slider.”
  • Added a blue focus ring that appears around any focused element when accessed by keyboard, which improves focus visibility.

Advertising

  • Improved ad rendition selection in Freewheel by passing the player’s bitrate estimate to the AdsManager.
  • Added a new bidding configuration option, no_vpaid_ads to the optionalParams object, which restricts VPAIDs and only serves mp4 ads with no SpotX VPAID wrapper.
  • Added pause reasons to the response for on(‘adPause’) in the VAST, IMA, and Freewheel clients.

Fixes

Core Player

  • Fixed an issue where loading an HLS stream via load API does not display the selected captions track, though it is shown as selected in the UI.
  • Resolved an issue in which alternate audio tracks may not be detected for HLS streams when no video codec is specified in the manifest.

Advertising

  • Fixed an issue where the player fell back to the very first standalone ad in an ad tag even if there is a standalone ad directly after a pod item. This occurred in cases where the "fallbackOnNoAd" attribute is set to true and the pod item failed to play.
  • Fixed a bug in the VAST client causing some VPAID ads to throw a Javascript exception when an ad completes playback in Microsoft Edge.

v8.6

Automated Player Translations

JW Player wants to save you time and improve the viewer experience out of the box with our latest feature, automated player localization. Did you know that our video player contains over 50 customizable tooltips, labels for menus and overlays, and ARIA labels (for accessibility viewers who use screen readers)? Previously, you had to customize these fields in order to provide a better viewing experience on non-English language sites. It is time consuming to translate the player, so we’ve done the work for you so that your viewers can benefit today. Beginning with 8.6, the player will automatically translate those fields to match the language on your website. We’ve included support for 14 languages and will add more by request. Enjoy a seamless experience that increases clarity and engagement for all of your viewers.

v8.6.3

Release Date: November 14, 2018

Updates

Core Player

  • Improved handling of cross-origin 360/VR videos in Chrome 70 and Safari 12 so that instead of displaying a blank screen, the player errors with a new 307012 code.

Advertising

  • Ungated VAST 4.1 tags, enabling ad tags marked with the latest VAST version to play. VAST 4.1 features that are not yet supported in JW Player will be ignored.
  • Added automated localization of all Google IMA text to match the player’s language. Developers may also declare a two-letter ISO language in advertising.locale.

Fixes

Core Player

  • Addressed uncaught TypeError that occurs when provided double value for currentTime property on HTMLMediaElement is non-finite.
  • Fixed an issue where the error screen was still present after calling .remove() when the player experienced a setupError.

Advertising

  • Fixed an issue in Google IMA where content did not background load during a pre-roll on an autostarting player.
  • Fixed broken countdown timers in some ads when vpaidcontrols was set to true.
  • Fixed a bug in Freewheel causing the adPlay event to fire twice on mobile devices.

v8.6.2

Release Date: Nov 1, 2018

Updates

Core Player

  • Increased contrast ratio of the quality level label when “Auto” is selected.
  • Changed focus behavior so that focus remains on the fullscreen icon when entering and exiting fullscreen.
  • Improved responsive scaling of the shelf widget when using the selector configuration option to decouple the width of the player from the width of the widget.

Fixes

Core Player

  • Fixed an issue causing header logos to be pushed above the viewable area on JW Showcase sites.
  • Fixed an issue in Safari that caused duplicate captions tracks to appear in the menu of a small player (<320px wide) when switching captions in a live HLS stream with embedded WebVTT captions.
  • Fixed an issue where players in iframes autostarted out of the viewport when autostart: 'viewable' was set.
  • Fixed an issue with paused DVR streams in Safari where the player would seek to the live edge when a viewer scrubbed to a specific position.
  • Fixed an issue where pausing and resuming a live stream with 708 captions would cause the captions to no longer be in sync with the video.
  • Fixed an issue where parsing an hls manifest containing an EXT-X-MEDIA tag with no URI would result in an error, though this is spec compliant.

Advertising

  • Fixed an issue with ad frequency rules in the VAST and Google IMA plugins causing audio from a playlist item to play over the next playlist item when used with the playlistItem() event.
  • Fixed an issue in Google IMA where an exception was thrown when an ad times out in an ad pod.
  • Fixed an issue in Freewheel where the duration property was not being passed to the Freewheel SDK.

v8.6.0

Release Date: October 22, 2018

Updates

Core Player

  • Added more granular DASH and HLS playback error codes.
  • Added specific error codes for cases where an attempt to start playback fails.
  • Reduced player setup errors by extending the setup timeout from 30 to 60 seconds.
  • Created a new warning event that displays messages in the developer console, alerting developers of non-fatal errors.. Note: Documentation updates about these changes are coming soon.
  • Updated the name of the Chromecast button component from button to google-cast-launcher to reflect changes made by Google to be compatible with React.
  • Added a new configuration option, displayPlaybackLabel, which adds click-to-play call to action text below the play icon on the idle screen. Testing has shown a 3-5% lift in clicks to play with this feature enabled. The default text is “Play” and it can be customized or translated in the intl block with the playback option.
  • Added non-fatal, console-logged warning events and error codes. See our Errors Reference for updates.
  • Added a new div, which wraps the player's existing DOM structure, in order to make way for upcoming features.
    Localization
    For more information on the release note below, please see the Configuration Reference and the support article on how to translate player text with automated player localization.
  • Added support for players to automatically translate tooltips, ARIA labels, and headings into 14 different languages, based on the language attribute declared in the HTML tag on the page. If the lang attribute is not present, the viewer’s browser language will be used, and a translation will still be provided if available. For a full list of languages supported and to request support for another language, please see the support article.
  • Introduced a new object, the intl block, which accepts an array of objects of ISO language codes. Each language object accepts all the localization strings previously used in localization. Going forward, developers are encouraged to use the intl block so that a single player can be used across pages localized in any language.
  • Added 12 new localizable strings, which includes “link,” “auto,” “off” and more, as well as updated the default values for a few existing strings. All hard-coded strings are now mapped to localizable strings.
  • Moved the following fields into the intl block so that they can be localized by language: abouttext, advertising.admessage, advertising.cuetext, advertising.loadingAd, advertising.podmessage, advertising.skipmessage, advertising.skiptext, related.autoplaymessage, sharing.heading. These fields will be backward compatible with their original locations, but will not take advantage of the automated player localization features for those fields. All fields should be nested in the intl block as written.
  • Moved localization.related to related.heading within the intl block. In a localization context, related is now an object nested inside the intl block.

Advertising

  • Removed the auto-exit fullscreen functionality when using IMA with skippable ads, now that iOS 12 allows the video element (and thus the skip button to) work in fullscreen instead of the native player.
  • Decluttered the seek slider by removing cue markers for non-linear (banner overlay) ads.
  • In the VAST plugin, added support for the following attributes in the ad tag wrapper:
    • fallbackOnNoAd – selects any stand-alone adwhen set to true and the response contains no ad.The default is false.
    • followAdditionalWrappers – ignores wrappers received in the response when set to false. The default is true.
    • allowMultipleAds – only allows stand alone adswhen set to false. The default is true.

Fixes

Core Player

  • Fixed an issue where VP9 streams would not play in Edge.
  • Fixed a bug causing the player to error when it was set up after zone.js, a third-party script.
  • Eliminated a javascript exception thrown when failing to load the player bidding script.
  • Fixed an issue where it was difficult to differentiate between the text decoration of selected and hover states for items in the settings menu, causing confusion about which option was selected.
  • Fixed an issue present in IE 11 on Windows 7 where viewers were unable to mute HLS content with the Flash provider.
  • Fixed an issue causing some 608/708 captions from HLS streams to render successfully.
  • Fixed an issue causing an expired license key error on mobile devices in rare cases where the page is opened, but Javascript is not executed until hours or days later.

Advertising

  • Fixed an issue in Freewheel where a "Loading Ad" message would appear when an ad was not loading.

v8.5

Recommendations Widget

Introducing a new user interface for our Recommendations customers: the shelf widget, which dynamically inserts a horizontally-scrolling carousel of thumbnails directly below the player. In contrast to the in-player shelf, which is only visible on pause and when the viewer manually opens it themselves, the new widget interface is always viewable below the player. We encourage you to turn on the shelf widget, which will further increase opportunities to display recommendations and drive plays as a result.

v8.5.6

Release Date: September 19, 2018

Updates

Core Player

  • Rotating an Android device with a control-bar only (audio) player or when controls are disabled will not cause the player to go into fullscreen mode.

Advertising

  • To make the player more resilient, if IMA erroneously clears the video tag when trying to resume playback from an ad, the player will try to recover by attempting to reload the item source.

Fixes

Captions

  • Fixed an issue where the captions menu was not being cleared when switching from a playlist item with captions to one without captions.
  • Fixed a captions issue where the last line of captions did not disappear at the correct time.
  • Fixed an issue where natively rendered captions text did not scale correctly when entering fullscreen mode in iOS 11.4 and iOS 12 (beta).

360 (VR) Video

  • Fixed an issue affecting some Android devices where the video view could not be controlled when moving the device.
  • Fixed an issue where the video view would pan erratically or appear jittery during playback on some devices.
  • Fixed a bug where adding a pre-roll before 360 content causes 360 functionality to be disabled.

v8.5.5

Release Date: September 11, 2018

Updates

Service release.

v8.5.3

Release Date: August 30, 2018

Fixes

Core Player

  • Fixed an issue causing players to fail to set up on websites using zone.js.

v8.5.2

Release Date: August 29, 2018

Updates

Advertising

  • Expanded the on(‘adsManager’) event, which fires when the ad manager is loaded, to IMA. This event can be used to integrate with third-party vendors.

Fixes

Advertising

  • Fixed an issue on iOS where tapping on an IMA ad was treated as a right click.

v8.5.0

Release Date: August 10, 2018

Updates

Core Player

  • Added a new recommendations interface, the shelf widget, which will place a recommendations shelf directly below the player, outside of the player’s container by setting related.displayMode to shelfWidget.
  • Added a new startTime configuration setting for playlist items that will instruct the player to begin playback of the media at the time specified.
  • Added multiple channel support for EIA-608 Captions (CC1, CC2, CC3, CC4).

Fixes

Core Player

  • Fixed an issue where a duration property with an empty string was being passed to the getPlaylist API getter.
  • Fixed a bug where some casting icons would inherit the page’s button styles.
  • Fixed an intermittent issue causing 'Cannot Load M3U8: 400' errors in HLS live streams.

Ads

  • In IMA, fixed an issue with SpotX not loading when requireJS is used to instantiate a player.

v8.4

Ad Preloading and Player Error Standardization

It’s all too common for viewers to wait several seconds for video advertisements to load—if they load at all—and those that make it through often don’t return due to the slow load times. In JW 8.4, we introduce ad preloading, an optional setting which preloads ad breaks before they play. We’re committed to providing publishers and their viewers with a no-buffer video player, no matter what the setup.

This release also introduces new and improved error handling in the player. We have revamped error codes from the ground up to be more comprehensive, descriptive, and consistent. This will enable faster troubleshooting and programmatic handling of errors by developers. Error codes will now appear in the console with deep links to our new Error Reference documentation organized by category. Lastly, we are improving error messages shown in the player to be more friendly and informative to the viewer, which we will be rolling out in beta versions over the next few weeks before the release goes into production.

v8.4.6

Release Date: August 13, 2018

Fixes

  • Fixed an issue where closed captions were cut off in Android Chrome browsers for portrait and full-screen playback.

v8.4.4

Release Date: July 27, 2018

Fixes

Ads

  • Resolved a bug in the VAST ad plugin that arose in 8.4.3 where calling playAd() in on(‘beforePlay’) would cause the ad and content to play simultaneously.

v8.4.3

Release Date: July 25, 2018

Updates

Ads

  • Updated ad preloading functionality in the VAST ad plugin to include preloading the preroll of subsequent playlist items.
  • Added the configuration property ‘bidOnBreaks’ for Video Player Bidding to the VAST ad plugin.

Fixes

Core Player

  • Fixed an issue where incorrectly registering a plugin results in a setup error.
  • Fixed an issue in iOS Safari where the captions would not be scaled correctly when in fullscreen.
  • Fixed an issue In HLS streams where AAC segments with a timestamp of zero were considered to have no timestamp at all.

Ads

  • Fixed an issue with custom ad countdown macros where ‘xx’ would be incorrectly replaced with the countdown in cases where the macro is part of a word like ‘Hexx’.
  • Fixed an issue with Video Player Bidding with DFP mediation where multiple key-value pairs could get added erroneously.
  • Fixed an issue where the VAST ad plugin was not using the element of the VAST XML when provided to determine the ‘skipoffset’.
  • Fixed an issue with the VAST ad plugin on iOS Safari where toggling the mute state when using ‘vpaidcontrols:true’ sometimes had no effect.

v8.4.2

Release Date: July 11, 2018

Updates

Ads

  • For FreeWheel ad plugin, added ‘PVRN’, ‘VPRN’ values to the ad request for forecasting purposes.
  • For FreeWheel ad plugin, started passing ‘afid’, and ‘sfid’ values to the ad request for fallback purposes if the primary Asset ID and Site Section ID fail.

Fixes

Core Player

  • Fixed an issue with players embedded through an iframe where the controls did not fade out when the user moused away from the video via the bottom of the player.
  • Fixed an issue that would cause the playlist overlay to sometimes not resize correctly when the player size changes.
  • Fixed an issue where custom playback rates were being rounded to the nearest .25 increment, rather than to the nearest hundredth digit.
  • Fixed an issue where if the player was set up multiple times, it would reload javascript for a plugin that was already registered. We now ensure that individual plugins are only loaded and registered once. We now remove registered plugins that fail to load or instantiate (allowing new player setups to retry).

Ads

  • Fixed an issue with the IMA ad plugin where the pause and fullscreen buttons may be inactive for prerolls following the first playlist item.
  • Fixed an issue with the VAST ad plugin where certain VPAID ads might result in two new tabs being opened instead of a single tab when the user clicks the ad.

v8.4.1

Release Date: June 26, 2018

Fixes

  • Fixed an issue with IMA and poor connections where ‘play’ might be called before the ‘playlistItem’ event fires, which resulted in an error.
  • Fixed a bug where sharing a video through the player caused the shared links to 404 if the url did not already contain a parameter.

v8.4.0

Release Date: June 18, 2018

Updates

Core Player

  • New player error coding and classification system documented in new Error Reference doc.
  • Error codes now appear in the developer console with deep links to the Error Reference page.
  • Error code assignments map to new non-technical, viewer-friendly error messages displayed in the player.
  • Improved player error display to be responsive to screen width and message length.
  • Changed structure of error events. Refer to Error Reference.
  • Added support for entering or exiting full screen on Android devices when a user rotates their device.
  • Added JW Player custom parameters to links that are shared via the sharing menu, which makes it possible to track plays that result from sharing a video.

Accessibility

  • Documented our screen reader support in our Accessibility Reference.
  • Improved menu navigation to conform with accessibility standards; up and down arrows navigate items in a submenu, while tabbing selects different menus.
  • Added the ability to focus on the time slider (progress bar).
  • Added screen reader support to read out the current position when focused on the time slider or when seeking.
  • Added screen reader support to read out the volume when changed.

Ads

  • Created a new configuration property for VAST and IMA, preloadAds, which enables ad preloading for prerolls, midrolls, postrolls in the first playlist item.
  • Added a viewableImpression event to VAST and IMA based on the IAB definition of viewability, which states that a video must be 50% viewable for at least 2 seconds.
  • Re-added the fullscreen icon during ad playback at all breakpoints. This was previously removed to conserve controlbar space.
  • Now passing autoplay/mute status to DFP with VAST.
  • Improved behavior of the FreeWheel ad plugin with ad blockers by proceeding directly to content rather than waiting for a timeout.
  • Re-added the fullscreen icon to the ads controlbar for all breakpoints.
  • Added a new configuration property for IMA ‘bidOnBreaks’ for Video Player Bidding which allows for bidding on only the first X of the scheduled breaks to reduce latency.
  • Released full support for Google DAI.

Fixes

Core Player

  • Fixed an issue where the cursor would disappear if you set controls to false via setControls().

Accessibility

  • Fixed a bug causing the space and enter keys to not work with JAWS in IE 11.
  • Fixed an issue that allowed JAWS to focus on hidden elements in IE 11.
  • Fixed an issue preventing menus from closing by hitting the ESC key.

Ads

  • Fixed an issue with IMA where a blank ad schedule would erroneously throw a 21009 error.
  • Fixed an issue with certain VPAID creatives where the mute state of the creative (muted) didn’t match the mute state of the player controls (not muted), and required multiple taps of the mute button to get the mute state in sync.
  • Fixed an issue with VAST and the 'vpaidcontrols' configuration property where the mute button had no effect for certain VPAIDs.
  • Fixed an issue where the skip button would be visible even though the ad was too short to ever be able to use the skip button.

Known Ads Issue

  • When enabling ad preloading with IMA for click to play or autostart:viewable players, some VPAIDs incorrectly autostart without a user gesture on Firefox, IE 11, and Edge.

v8.3

Improving Startup Quality

For many publishers with premium or co-sponsored content, the blurry first few seconds of a video — before the player determines the viewer’s bandwidth and moves to a higher quality if network conditions allow — can negatively impact both viewer experience and brand integrity. In JW 8.3, the player solves this problem with intelligence by maintaining quality levels across both videos in a playlist and play sessions, providing a consistent playback experience as viewers consume more content. With a waterfall of fallbacks, including a new configuration option to provide an estimate for first-time viewers, this release takes a critical step toward ensuring that publishers no longer have to make a choice between quality and speed.

We’ve also added a feature under GDPR compliance for data transparency to assist customers whose viewers request access to their data. In order for JW Player to provide the data we collect, viewers must provide publishers with their Client ID. Publishers can instruct viewers to find their Client ID by right clicking (or long pressing on iOS and Android) on a JW Player running 8.3.0 or above, and selecting the “About this video” option from the menu. The viewer's Client ID appears in the lower right corner of the video information overlay.

v8.3.5

Release Date: June 5, 2018

Fixes

Ads

  • Resolved an issue with Google IMA and Facebook Audience Network (FAN) VPAIDs on iOS where, in certain situations, the ad might incorrectly error out instead of generating an impression.
  • Resolved an issue with Google IMA on iOS where certain ads might throw an ad error with click to play players depending on viewability.

v8.3.3

Release Date: May 21, 2018

Fixes

Core Player

  • Fixed an issue on Android Chrome where after the pre-roll, a player configured with a Widevine protected playlist item errors, displaying a "File could not be played message"

v8.3.2

Release Date: May 16, 2018

Updates

Core Player

  • Improved media notifications on Android by including poster images and publisher domain names.

Ads

  • Added a new ad error code (900 / 60007) that gets raised when there’s an attempt to load ads on Android 2.3, which is not supported.
  • Added creativeID from the VAST XML response to the VAST admanager’s adImpression/adError events.
  • For Video Player Bidding, segmented bidresponsetime by now also reporting the script loading time and the time between adBidRequest and adBidResponse.
  • Improved “Ad loading” messaging for the VAST admanager to only show when an actual ad is being loaded.
  • Improved reporting of Video Player Bidding impression tracking when the DFP mediation layer is used.
  • Added breakstart and breakend events to Google DAI.
  • Removed ad countdown and pod count messaging in Google DAI “live” scenarios to prevent incorrect messaging.

Fixes

Core Player

  • Fixed a bug preventing poster images from displaying during playback of audio-only streams with the audio/mp4 MIME type.
  • Fixed an accessibility issue in Firefox that allowed the video tag itself to be focusable.
  • Fixed an issue where setting up the player twice resulted in duplicate analytics pings being fired for certain events (eg. completes).

Ads

  • For FreeWheel, modified the default admanager URL (which loads when a publisher hasn’t specified their own) to load successfully over both HTTP and HTTPS.
  • Fixed an issue with the VAST admanager where certain preroll VPAID ads would incorrectly show the skip button when the vpaidcontrols config option was set.
  • Fixed an issue with SpotX Video Player Bidding where the startdelay parameter was being passed incorrectly for midrolls.
  • Fixed an issue where calling load() while the player is in the “Loading ad” state could cause infinite buffering in very low-bandwidth situations.
  • Fixed an issue with the VAST admanager where setting the offset for two ads where one is set to be pre and the other 0 would prevent the second ad from playing.
  • Fixed an issue with Google DAI on Safari where seeking past multiple unplayed midrolls could cause the player’s timeslider to stall or jump back and forth.

v8.3.0

Release Date: May 3, 2018

Updates

Core Player

  • Improved the playback experience by maintaining quality between videos in a playlist. The player starts subsequent videos in an embed with the quality that most closely matches the previous item based on bandwidth comparisons.
  • Improved the playback experience by preserving the viewer’s bandwidth estimation and using it to select an initial quality level when playback starts.
  • Added a new configuration option, defaultBandwidthEstimate, which sets an initial bandwidth estimate in bits for all viewers. To set the highest quality as an initial estimate, reference the highest bitrate from your manifest.
  • Improved the “Auto” quality label in the settings menu to also show the quality being played when “Auto” is selected.
  • Improved the experience of watching live streams that do not have a DVR window. Instead of the pause icon, which used to pause the stream and resume behind the live edge, the player now features a new stop icon, which resumes from the live edge when playback resumes. The player appears paused on the last frame watched. Note that for visual clarity, small players will display a pause icon in the center of the screen while exhibiting the new “stop” behavior. Via API, the pause method will achieve the behavior described here, while the stop method will stop playback and put the player in the idle state.
  • Live streams without a DVR window no longer get behind the live edge, and the live icon is no longer clickable to return to the live edge.
  • Added a new localization option, localization.stop for the new stop icon in live mode.
  • Added right click support via long press on iOS and Android devices. Long pressing displays the JW Player right click menu. The menu automatically fades out within three seconds if not interacted with.
  • In accordance with GDPR data transparency compliance, added a video information overlay accessible via an option About this video in the right click menu. The viewer’s Client ID is displayed in the lower right corner, which can be used to request data from JW Player.
  • Added a new localization, localization.videoInfo, which can be used to localize "About this video" text in the right click menu.

Ads

  • For Video Player Bidding, expanded the number of possible bidResults to include expanded error tracking.
  • For Video Player Bidding, added the priceInCents to the adImpression and adError events for all mediation layers.

Fixes

Core Player

  • Fixed an issue where DASH streams with large gaps at the beginning of the manifest did not play on IE11 and Edge.
  • Fixed an issue where HLS streams missing a frame in the first segment would not start playing with HLSjs.
  • Fixed an issue with 608 captions in HLS streams where the captions would flicker in and out with HLSjs.

Ads

  • Fixed an issue with the Google IMA plugin where second ad in a pod might not unpause after being paused.
  • Fixed an issue with the VAST ad plugin where error tracking pixels weren’t firing for all wrapped tags if only included at the root of the XML response.
  • Fixed an issue with the VAST plugin where content would display before a preroll ad if scheduling was done at the playlist item level.

v8.2

Better Handling of Browser Autoplay Policies

As browser autoplay policies evolve to create a better video experience for viewers, it has become increasingly challenging for publishers, especially those that monetize their content, to ensure consistency. Safari 11 was first to take a strong stance by giving viewers the power to prevent videos from starting automatically. In JW 8.1, we implemented functionality to pause playback instantly when the browser blocks an autoplaying video. With the impending release of Chrome 66 in April, we invested a lot of time in simplifying the expected behavior so that we can provide viewers the right feedback to know if and when they need to interact with the player to start playing, while also mitigating the impact on our publishers’ ability to monetize their content. In JW 8.2, the player will react to the combination of the browser’s restrictions and the publisher’s setup configuration by autoplaying with or without sound, or falling back to a click-to-play player.

v8.2.4

Release Date: April 24, 2018

Fixes

Ads

  • For IMA, fixed an issue with a mute-state incompatibility between Browser Autoplay Policies and Video Player Bidding, where autostart-muted ads might incorrectly fail to play even though the browser would allow it.

v8.2.3

Release Date: April 16, 2018

Updates

Ads

  • For Video Player Bidding, created a new mediation option when the SpotX bidder is in use ‘jwpspotx’ which allows SpotX to act as the primary adserver.
  • Updated the FreeWheel ad plugin to start sending video playback events to the adserver.
  • Created a new timeout config option for the IMA ad plugin ‘vastLoadTimeout’ and extended the default to 10 seconds from 5.

Fixes

Core Player

  • Fixed an issue preventing DASH streams from being cast from the idle state.

v8.2.2

Release Date: April 4, 2018

Updates

Core Player

  • We’re optimizing the click-to-play button to drive more plays for our publishers. Some customers may notice their play button is more stylized than before.
  • When the player is within range of the live edge, viewers will now see the video position at the end of the timeslider. Previously, a slight gap erroneously implied the viewer was not at the edge.

Ads

  • Created a new 'startOnSeek' ad rule. This can be used in conjunction with seek() in lieu of a play event to define a start position and begin playback. This prevents viewers from being bombarded with ads when starting content playback from somewhere other than the content’s beginning.
  • Expanded Video Player Bidding functionality to the VAST plugin. Video Player Bidding was initially only available for IMA plugin.
  • For Video Player Bidding, created a new mediation layer ‘JWPDFP’ that combines both existing mediation layers (JWP and DFP), allowing the SpotX bidder to take advantage of the benefits of both mediation layers.

Fixes

Core Player

  • Fixed an issue causing the recommendations shelf to appear over ads.
  • Fixed an issue causing the live icon to flicker on and off when a viewer falls behind the edge in a DVR/live stream.
  • Fixed an issue in IE and Edge where the stretching configuration option was not respected if set to a value other than “uniform.”
  • Fixed an issue with live videos causing the position in the control bar to change constantly within a few second range, which negatively impacted the viewer experience.
  • Fixed an issue with captions not working in 360 videos in Safari.
  • Fixed an issue causing the page to scroll to a random point when players embedded with an iframe were clicked using Safari on iOS.

Ads

  • Fixed an issue where the VAST [ERRORCODE] macro was not being automatically filled if present at the root of the XML rather than within the element in the InLine or Wrapper elements.

v8.2.0

Release Date: March 21, 2018

Updates

Core Player

  • Updated the player to check for browser-level autoplay restrictions.
  • Updated the player to autoplay with sound if possible, autoplay muted if possible when there are no ads, or autoplay muted ads if autoplayadsmuted: true is set. The player will fall back to click-to-play after exhausting all autoplay options.
  • Added the ability to start playback from a non-zero position. You can register seek as a function of the ready or playlistItem events, so that the player starts playing from a specific point.
  • Added support for DASH streams on desktop Safari. NOTE: DASH streams are not supported on iOS Safari, nor with Airplay on desktop devices.
  • Added user agent detection for UC browser, where previously it was reported as Chrome. UC browser can be detected using the getEnvironment() API.
  • Implemented licenseResponseFilter for DASH streams and Fairplay. These methods allow customers to modify or access responses from license requests. This is needed for license wrapping implementations.
  • Added a new API method, getCurrentTime(), which exposes the current time value of content. For on-demand streams, currentTime will be the same as the position. For live or DVR streams, the currentTime will not be modified based on duration or seekable range.
  • Improved the user experience on mobile devices by allowing the viewer to pause playback of videos that autostart muted without unmuting first.
  • Expanded media preloading capabilities to preload subsequent media before the current media ends. As is the case with preloading media that will play after an ad break, this behavior will only occur when the preload configuration option is set to metadata (default) or auto. Players with preload set to none won’t load content in the background.

Recommendations

  • Made the recommendations shelf the default display mode for related playlists. For more information, please see the configuration reference and the release notes for v8.1.10.
  • Improved accessibility for the recommendations shelf so that viewers can interact with it using a keyboard or screen reader. Viewers can use the left and right keys to paginate through the shelf and the escape key to close the shelf when not in fullscreen mode.

Ads

Google IMA

  • Passed the results of the autoplay restrictions check to the ad plugin using the two new fields in the IMA ad request, 'setAdWillAutoPlay' and 'setAdWillPlayMuted'. This is necessary for AdX/AdSesnse.
    FreeWheel
  • Added the adLoading parameter to the adError event.
  • Updated the requestTimeout configuration option to work.
  • Added the streamType: live configuration option for denoting live streams with FreeWheel ads.
  • Improved the user experience by making the player click-to-play when the browser suppresses autostart.

Fixes

Core Player

  • Fixed an issue causing the pause event to trigger twice when serving a mid-roll ad.
  • Fixed an issue preventing the controls from fading away if you mouse out of the player over the controls.
  • Fixed a bug with VTT captions reducing the horizontal space for captions, which drastically increased the number of lines of text per caption.
  • Fixed an issue where the player did not successfully cast playlists if the JSON file was greater than 56.2kb in size due to a memory restriction on chromecast devices

v8.1

Seamless Media Transitions

As JW Player continues to make strides to improve the viewing experience of video on the web, our goal is to bridge the gap in the quality of experience between the web and cable TV. Buffering is a reality of video on the web – we’re committed to making that a thing of the past. In 8.0, we improved our preloading so that videos now start instantly when the viewer clicks play. However, viewers still had to endure video buffering after watching a pre-roll ad. 8.1 introduces even smarter preloading, resulting in a seamless transition from ads (including mid-rolls) to media. In our preliminary tests, we’ve seen huge improvements in time to first frame, even on slower connections. The wait time for media to start playing after an ad goes from seconds in 8.0 to mere milliseconds in 8.1. You’re in for a treat with the upgrade to 8.1 and we can’t wait for your viewers to notice the difference.

v8.1.12

Release Date: March 8, 2018

Updates

Service release, no new features.

v8.1.11

Release Date: March 1, 2018

Fixes

Core Player

  • Fixed an issue causing style bleeding in recommended videos interfaces.

v8.1.10

Release Date: February 22, 2018

Updates

Core Player

  • Added the ability to configure when live streams time out. The new liveTimeout configuration option accepts a number. The default, undefined behavior is dependent upon segment length and differs slightly across providers. To configure a stream to never time out, set this value to 0.
  • Added the ability to modify headers mid-stream with a new licenseRequestFilter configuration option in Fairplay DRM blocks. This option already works with Widevine and Playready.

Recommendations

  • Added a new recommendations interface called Recommendations Shelf, which allows viewers to browse JW Recommended videos throughout the playback experience. This feature, available to all customers with a Recommendations entitlement, will provide more paths for engaging with content that is most relevant to your audiences, ultimately deepening engagement and powering additional monetization opportunities. To enable the shelf, include "displayMode": "shelf" within the related block in your setup configuration. The current overlay interface remains default behavior when displayMode is undefined or set to overlay.
  • Added a new localization option, localization.close to customize the text of the close button added in the recommendations shelf. The default text is “close.”
  • Updated the default localization.related text to “More videos.” This localization option affects the Recommendations Shelf button above the control bar in shelf mode, as well as the tooltip and the overlay title in overlay mode.
  • Updated the default discover icon in the control bar to improve discoverability.
  • Known issue: We’ll be making the new recommendations shelf fully accessible by keyboard in 8.2.0.

Fixes

Core Player

  • Fixed an issue causing single-variant audio streams to error very slowly. Streams now error within 30 seconds.
  • Added an ARIA label for the “Live” button, which was erroneously omitted from previous versions.
  • Fixed a bug that caused in some audio-only streams to not start in the hlsjs provider.
  • Fixed an uncaught type error when loading a Related playlist in conjunction with a manual playlist. Functionality was not affected.
  • Fixed an issue where autostarting JW Live streams that return a 404 did not display the fatal error after setting up, resulting in a blank screen.

v8.1.8

Release Date: February 16, 2018

Updates

Core Player

  • Added support for TTML captions with DASH streams.
  • Added a new localization option, localization.copied. The word “Copied” appears as default text whenever a viewer clicks on the link option in the sharing menu. This new option can be used to customize or translate that text.
  • Improved readability of the live/not live indicator. Instead of an SVG icon, the word “Live” is now plain text, which can be localized with localization.liveBroadcast.
  • Updated the default text for localization.liveBroadcast from “Live Broadcast” to “Live.”

Fixes

Core Player

  • Fixed an issue with DASH streams where the correctly labeled captions track did not work and an internal text track labeled “Shaka Player TextTrack” was being shown in the menu.
  • Improved the spacing between the current time and local time in Edge browsers.
  • Fixed an issue where the play button was not perfectly center-aligned at low breakpoints.
  • Fixed an issue where the play display icon appeared when transitioning between media instead of the buffer icon.

Known issues

  • DASH streams encoded with gaps may buffer indefinitely in IE and Edge.

v8.1.4

Release Date: February 12, 2018

Updates

Service release, no new features.

v8.1.2

Release Date: February 6, 2018

Updates

Service release, no new features.

v8.1.1

Release Date: Janaury 31, 2018

Updates

Core Player

  • Improved the user experience when the preload configuration option is set to metadata (default) or auto. Video content will now preload during ad playback, resulting in a seamless transition from pre-roll and mid-roll ads to the video content on most reliable connections. Players with preload set to none won’t load content in the background. The visual quality and buffer events still fire in the same order as they always have, but before the play attempt event, instead of after play.

Ads

  • Updated FreeWheel ad plugin to include URL request parameters noting the stream is live vs VOD.
  • Improved the IMA ads UI to account for Google ads with built-in skip buttons, countdowns, etc.
  • Modified and improved adimpression/aderror events to include the full list of wrapped tags.

Fixes

Core Player

  • Fixed an issue affecting DASH streams where a manual quality selection reverts to “auto” after a midroll ad.
  • Fixed a bug where chapter marker cue points were not correctly aligned on the timeslider.
  • Fixed a bug that broke the error state layout when a video’s description was too long.
  • Fixed an issue where multiple players embedded on the same page would all have the same sharing embed code.
  • Fixed incorrect reported user agent detection for Edge 14 on Windows phones.
  • Fixed an issue with the addButton API where an erroneous undefined class was added in the DOM when the optional class parameter was not set.
  • Fixed a bug causing the Next Up overlay to flicker when the cursor remains hovered over it.
  • Fixed broken fullscreen functionality when a JW Player container div has a numeric div ID.
  • Fixed an issue where the fullscreen button tooltip would appear clipped by the edge of the player if the fullscreen localization text (localization.fullscreen) was too long.
  • Fixed a problem with 2G connections where the player showed a network error if setup did not complete within 25 seconds. Now, the player will show a timeout error if setup does not complete within 30 seconds.
  • Fixed an issue where 360 videos could not render in VR mode if included in JW Platform-hosted playlists. Now, all 360 videos in a single or multi-item playlist will play as expected.

Ads

  • Fixed an issue with incorrect order of wrapper tags reported in adImpression/adError events. Specifically ‘tag’ field now has the last tag that resulted in impression/error and ‘wrappedTags’ array has all preceding tags.
  • Added ‘wrapperAdSystem’ array to Impression/Error events that reports ad system for all wrapper tags, but the last one, that goes into ‘adsystem’ (same pattern as above).
  • Fixed an issue with the VAST plugin where empty VMAP responses could result in infinite buffering for autostart players.

v8.0

Introducing JW8

JW Player 8 is our fastest and easiest-to-use player to date. This major release debuts a completely redesigned, mobile-optimized user interface that can easily be customized to brand your player. JW8 features smart content preloading and a smaller embed script, so viewers never see a buffer wheel and experience faster page loads. To continue to offer publishers industry-leading support, we now officially support Facebook Webview and VAST 4, and have deprecated Flash.

v8.0.13

Release Date: January 17, 2018

Fixes

Core Player

  • Fixed an issue with DRM streams using FairPlay, where skipping to the next playlist item resulted in a fatal error.

v8.0.11

Release Date: December 18, 2017

Fixes

Core Player

  • Fixed an issue in the Google Analytics Pro plugin where older types of GA embeds were not working.

v8.0.10

Release Date: December 14, 2017

Updates

Core Player

  • Added support for the most recent Google Analytics embed type, gtag.js. Older types of embeds are still supported.
  • The player now marks events sent to Google Analytics nonInteraction: true if they were not manual viewer interactions. This enhancement increases bounce rate accuracy.
  • Improved the design and interaction of the discovery and playlist overlay in small players, making it our most accessible overlay yet. The overlay now supports swipe interactions and keyboard shortcuts, making it easy to navigate between items. You can page through the list of items either by swiping left or right on touch devices or using the keyboard’s left or right arrows. The overlay can be closed using the escape key. Finally, you can tab through all the elements in the overlay and interact with them using the enter key.
  • Improved the user experience with new Discover and Playlist headings, which provide context for the discover and playlist overlays. The headings and the tooltips for the overlay’s icon in the control bar can be customized in a setup block with localization.related and localization.playlist.
  • Improved the autoplay experience on mobile by showing controls when playback starts. Previously, viewers could not control the video until they unmuted the video by tapping an icon in the lower right corner of the screen. Now, the mute icon will still appear in the corner when controls fade away, but tapping on the screen brings up the controls immediately.

Ads

  • Added the ability to localize the “Loading Ad” message for IMA and FreeWheel plugins.
  • Added the ability to set the number of allowable redirects in IMA above the default for cases like header bidding.
  • For FreeWheel, added a new configuration option customadunitname that allows for specifying the SLAU query parameter for each ad break.

Fixes

Core Player

  • Fixed a bug where DRM protected content could not play after non-DRM protected items when using .load().
  • Fixed an issue where live streams would not fall back to a backup stream when the first variant could no longer be played.
  • Fixed a bug causing content to scale improperly on Edge 16 with the HTML5 provider.
  • Fixed an issue causing some page styles to bleed into the playlist overlay.
  • Fixed a bug where the poster image would not display on audio-only playlist items.
  • Fixed an issue in HLSjs causing a loop when parsing null characters in ID3.

Ads

  • Fixed an issue with the VAST plugin where the player could hang when a VPAID JS tag returned a Flash creative when using HLS
  • Fixed a bug in the VAST plugin where the error pixel might not fire if no ad response was received
  • Resolved an issue where controls=false was being overridden when certain VPAIDs ended
  • Fixed an issue with the VAST plugin where skipping multiple midrolls using %s rather than specific offsets could cause playback to start from the beginning.

v8.0.5

Release Date: November 29, 2017

Updates

Core Player

  • Added a callback, onXhrOpen, which can be used to set custom XHR headers in HLSjs for AES-protected HLS streams. The callback gets executed after an XMLHTTPRequest is initialized and before the request is sent. withCredentials is unaffected by this change. If configured, it gets set before onXhrOpen is called. Refer to our configuration reference for implementation details.

Ads

  • Fixed an issue with the VAST plugin where the player could hang when a VPAID JS tag returned a now Flash creative when using HLS.
  • Fixed a bug in the VAST plugin where the error pixel might not fire if no ad response was received.
  • Resolved an issue where controls=false was being ignored when certain VPAIDs ended.
  • Fixed an issue with the VAST plugin where skipping multiple midrolls set using %s rather than specific offsets could cause playback to start from the beginning.

v8.0.4

Release Date: November 16, 2017

Updates

Core Player

  • Expanded HLSjs usage to Android Chrome, where it is now the default for HLS playback. This makes the HLS experience more feature rich and includes support for 608 and in-manifest VTT captions, as well as improved playback stability and support. HLS.js usage can be disabled by setting hlsjsdefault to false, which will result in the player using native Android HLS playback.
  • Improved our Discover recommendations engine by reducing the likelihood of a viewer seeing a repeat of videos they’ve already seen either by choice or via auto-advance. Items that are manually clicked will not be recommended again for 10 minutes, and items that are automatically advanced will be excluded for one hour.

Ads

  • Updated the requestTimeout configuration option to apply to the IMAad plugin, where it previously only applied to VAST.

Fixes

Core Player

  • Fixed an issue where some captions did not appear properly center-aligned.
  • Fixed a bug where audio-only videos did not display the poster image if set to autostart.
  • Fixed a bug where the poster image would not be visible when calling load().
  • Fixed an issue causing playback to stall when an empty child manifest is selected. After a failed attempt to play a quality, the player now will remove the quality option from the quality menu.
  • Fixed a bug causing the colors in 360 videos to appear inverted on iOS devices.

Ads

  • Fixed an issue with autostarted players when Safari 11’s “Never autoplay” setting is enabled. Ads now correctly play after user interaction.
  • Fixed an issue where the buffer icon would display during IMA fullslot ads.
  • Fixed an issue where the IMA timeout aderror was not firing correctly in certain scenarios.

v8.0.1

Release Date: November 8, 2017

Updates

Core Player

  • All player editions using JW8 now support all HLS functionality, including AES encryption and 608 captions. DRM support remains an Enterprise-only feature.
  • To reduce clutter and avoid confusion, the JW Player build number has been removed from the right click menu. It was previously displayed for all non-production versioned players.

Fixes

Core Player

  • Fixed an issue where VTT Japanese and Korean subtitles in HLS streams did not display in Chrome.
  • Fixed an issue where certain HLS streams stalled and could not recover quickly when the quality menu was set to auto.
  • Fixed a bug where control bar-only mode players were missing the live icon during live streams and did not display control bar-positioned logos, if configured.
  • Fixed a bug where the right click menu would appear outside of the player when right clicking on a menu item or center display icon.
  • Lowered the threshold for when the max volume icon would display in the control bar to 75% volume, instead of 100%.
  • Fixed an issue where setting a window color for 608 captions did not apply the style to the entire window, but rather only to the right of the captions. The player’s renderer is now used in all browsers except Safari. This gives us more granular control of the way captions are displayed. If you prefer to continue using native rendering in Chrome, you can do so by, setting renderCaptionsNatively to true in your player configuration.
  • Fixed a bug where there was no visual feedback that the player was buffering after seeking when using Safari on iOS devices.

Ads

  • Fixed an issue where the controls would never hide during content playback after the ad ended when using vpaidcontrols:true.
  • Fixed an issue where VAST “progress” tracking pixels weren’t firing.
  • Fixed a timing issue with VAST events - they now correctly fire the “started” event when the VPAID AdVideoStart event fires, rather than firing “started” when we get the impression event from the VPAID.

v8.0.0

Release Date: October 18, 2017

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 by play(), 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 pattern JWPLAYER_*.
  • Deprecated the ability to toggle the state simply by calling play() or pause(). This change makes play and pause behavior more predictable in the API. Going forward, calling play() 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, where playbackRateControls 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 new skin.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.

v7.12

Playback Rate Controls

Designed with publishers of education and sports media in mind, JW Player 7.12.0 introduces a new configuration option to enable playback rate controls. When enabled, a tooltip menu in the control bar gives viewers the ability to control the playback speed of the video. Publishers can choose to show our pre-set rates or to configure custom values between 0.25x and 4x. Developers can also use the new API getter, setter and event listener to control the playbackRate. Check out the creative possibilities in our demo. Note that manipulating the playback rate requires the presence of a video element and, as such, is not supported when the Flash provider is being used for playback.

This release also includes native caption and subtitle support for casting. Be sure to check the full release notes below to review a variety of new methods, configuration options, and events that enhance the developer capabilities of using JW Player.

v7.12.13

Release Date: February 28, 2018

Updates

Core Player

  • Added support for the most recent Google Analytics embed type, gtag.js. Older types of embeds are still supported.
  • The player now marks events sent to Google Analytics nonInteraction: true if they were not manual viewer interactions. This enhancement increases bounce rate accuracy.

Fixes

Core Player

  • Fixed a bug causing in-manifest VTT captions to not render on iOS.

v7.12.11

Release Date: November 2, 2017

Fixes

Core Player

  • Fixed an issue where some foreign language characters in embedded subtitle tracks weren't being decoded correctly.

v7.12.10

Release Date: October 27, 2017

Fixes

Core Player

  • Fixed issues with playback pausing in Safari 11 when you click on the player.
  • Fixed an issue where seek events were not being fired in fullscreen on iOS devices.

Ads

  • Fixed an issue that paused VAST pre-rolls in click-to-play players in Safari 11.
  • Fixed an issue where some muted VAST ads and subsequent content started unmuted.
  • Fixed an issue where content might not start after certain VPAID ads were skipped

v7.12.8

Release Date: September 14, 2017

Updates

Advertising

  • Added support for Skippable Ads on iOS, with the caveat that ads cannot be displayed in the device's native fullscreen. Viewers encountering an ad in fullscreen will be forced out and will have to manually re-enter fullscreen. Note: there is a known issue with this functionality with IMA in Facebook webview that the IMA team has identified and is aiming to patch in an upcoming release.

Fixes

Core Player

  • Fixed an issue where 608/708 captions failed to render for DVR streams in Firefox.

Advertising

  • Fixed an issue with IMA where the player might never go to content when the ad tag returned an error on iPhone.
  • Fixed an issue where VPAID ads might contribute to inconsistent mute behavior with the IMA plugin.

v7.12.6

Release Date: August 18, 2017

Fixes

Core Player

  • Fixed an issue where live DVR streams would always play from the live edge after an ad break instead of resuming from the position the stream was at before ad playback.

v7.12.5

Release Date: August 17, 2017

Fixes

Core Player

  • Fix an issue where a DASH stream with one captions track displayed two tracks, one of which did not work.
  • Fixed an issue where live DVR streams would play from the beginning after an ad break instead of resuming from the live edge.

v7.12.4

Release Date: August 9, 2017

Fixes

Core Player

  • Fixed an issue where Akamai-hosted live streams would freeze mid-stream in Chrome.

Ads

  • Fixed an issue with VPAID tracking pixels not firing when the VPAID itself wasn’t firing them.
  • Fixed an issue with the IMA plugin where the adplay event would occasionally fire twice.

v7.12.3

Release Date: July 27, 2017

Fixes

Core Player

  • Fixed an issue where PlayReady DRM does not work with Shaka 2.1.1+ in IE11.
  • Fixed a bug where vpaidcontrols: true does not show the control bar when hovering over the creative.

v7.12.2

Release Date: July 12, 2017

Updates

Ads

  • Added clickThroughURL parameter to the adImpression event for the VAST plugin for parity with the IMA plugin.
  • Added config option custParams to the adBreak block for the VAST plugin for parity with the IMA plugin.
  • For the VAST plugin, updated the on(‘adSchedule’) event to display all schedules, not just schedules within a VMAP.
  • Updated the VAST plugin’s ad event order to be consistent with the IMA plugin and more representative of the VAST/VPAID specs.
  • Added support for the SpotX ad_mute=1 URL parameter with the IMA plugin.
  • Added support for VAST macros including [CACHEBUSTING], [ASSETURI], and [TIMESTAMP]

Fixes

Core Player

  • Fixed an issue where videos would start from the beginning when resuming playback after a midroll ad.
  • Fixed a bug causing duplicate captions cues to be displayed in HLS streams after a preroll or midroll ad.
  • Fixed an issue in Firefox where keyboard command shortcuts did not work.

Ads

  • Fixed an issue with the IMA plugin where setting up a player’s adschedule with a postroll before a preroll could cause video content to display before the preroll.
  • Fixed an issue where non-linear VPAIDs might be pushed off the bottom of the player view.
  • Fixed an issue where adtime event would fire before adimpression on iOS

v7.12.1

Release Date: June 29, 2017

Updates

Ads

  • Added support for custom license request filters with DASH streams using Widevine or PlayReady.
  • Shaka provider has been updated to version 2.1.4.

v7.12.0

Release Date: June 29, 2017

Updates

Core Player

  • Added the playbackRateControls configuration option to enable the playback rate menu in the controlbar. This allows viewers to control the video’s playback speed. Publishers may use default or custom speed values. Read more in our Configuration Reference documentation. When playing HLS streams on Android Chrome or using Flash, the menu will be hidden due to unsupported functionality.
  • Added setPlaybackRate and getPlaybackRate API methods and a playbackRateChanged event listener. Read more in our JavaScript API Reference documentation. Note that this is not supported in Flash or Android Chrome with HLS streams.
  • Added support for embedded and sideloaded VTT tracks in the default Chromecast receiver. Captions style configuration options are also applied to the receiver. VTT tracks must be loaded from the same domain as the media.
  • Set the <video> element’s title attribute so that the media title displays on iOS and Android lock screens during playback.
  • Updated 403 error copy to “You do not have permission to access this content.”
  • Exposed the PROGRAM-DATE-TIME from HLS manifests in the meta event.
  • Improved manual quality switching in DASH streams so that when a viewer chooses a higher quality, the switch happens immediately. If the viewer chooses a lower quality, the existing buffer is played, then the quality switch occurs.
  • Added a new API method, setConfig, to set multiple properties at once. The following properties are supported: repeat, autostart, mute, and volume.
  • Added HLSjs debug output to the player’s debug logs. This is automatically enabled when jwplayer.debug = true.
  • Added the viewable event, making it easier to control the user experience based on the player’s visibility. Previously, developers had to rely on the viewable property in other events (eg. time, play) to know when the players is above the fold in the active tab.
  • Expanded HLS.js usage to Edge. This significantly improves the viewing experience over the native playback of HLS streams. Users can expect to see a reduction in artifacts, better captions display, and support for captions styling.
  • Improved the user experience of the sharing overlay. It’s now less intrusive at larger player sizes, allowing playback to continue while the viewer makes a selection from the newly redesigned sharing menu.
  • Added support for multi-track captions in DASH streams, allowing viewers to select any of the captions tracks specified in a DASH manifest.

Ads

  • Updated the adError event to note not just the original tag supplied to the player, but all tags in a wrapped ad chain including the creative that errored
  • Updated the handling of the creativeTimeout config option to address all mediafiles, not just VPAIDs
    Improved mapping of FreeWheel AdManager events to JW Player events
  • Added a configuration option to allow a publisher to supply their own FreeWheel AdManager URL

Fixes

Core Player

  • Fixed a problem where 360 video HLS streams did not upshift in quality.
  • Fixed a bug that caused an error in Chrome when DASH streams contained embedded VTT files larger * than 125 KB.
  • Fixed a bug that caused an error in Safari when resize() is called without specifying width and height.

Ads

  • Cleaned up console logging in the VAST plugin for certain JS VPAID events
  • Added extra logic to prevent ads from playing over content with IMA, specifically when an autostart player is launched in a non-active browser tab

v7.11

Chromeless Player

To optimize player performance, the UI is no longer packaged as part of the core player javascript in JW Player 7.11.0. This decreases player load and setup time, especially when using controls:false, which ultimately saves bandwidth and eliminates rendering of elements that are never used.

JW 7.11 also has some visual updates to the discovery overlay that improve performance and usability. We have also extended HLS in HTML5 to IE 11 on Windows 8 and higher.

v7.11.3

Release Date: June 5, 2017

Updates

Core Player

  • Exposed serverCertificateUrl for Widevine DRM to handle Chrome 59 requesting multiple certificates for each key request to the CDM.

Fixes

Core Player

  • Fixed a bug where the player exited fullscreen mode between playlist items.
  • Fixed an issue with captions not showing in audio-only HLS streams in some browsers.
  • Fixed an issue where the player did not upshift to the highest bitrate available given the width of the player and the viewer's bandwidth.

Ads

  • Improved handling of VMAP tag requests erroring out when the tag 404s
  • For iOS with IMA, added additional checks to ensure content does not start before ads play

v7.11.2

Release Date: May 24, 2017

Updates

Ads

  • Improved VPAID 2 resizing in Vast plugin.

Fixes

Core Player

  • Fixed a bug where HLS streams with 6-second segments that were configured with preload: metadata and autostart: true would start playback at the second segment.

Ads

  • Improved handling of click events when a non-linear VPAID2 ad is visible.
  • Fixed a situation where a non-linear VPAID2 would not move up when the controlbar became visible.

v7.11.1

Release Date: May 17, 2017

Fixes

Core Player

  • Fixed an issue where calling .resize() without a valid width and height caused the player to have its height set to 0.
  • Fixed an issue where side-loaded VTT captions in DASH streams disappear when a video is replayed.
  • Fixed a bug where the cursor does not disappear when controls disappear during playback.

Ads

  • Fixed an issue in Freewheel where content on(‘complete’) would fire twice.
  • Fixed an issue where Google IMA pre-rolls do not play on iOS when preload: 'none'.
  • Fixed an issue with Google IMA in iOS where pre-roll ads intermittently load and time out when autostarting.
  • Fixed an issue with VPAID non-linear overlay ads where the overlay creative moves up when the player is hovered over when vpaidcontrols: true.
  • Rolled back a fix from JW 7.10.5 for Google IMA where iOS force-exited fullscreen during ads and prevented users from entering/re-entering during ads. The fix is no longer necessary because it was a response to an issue that was rolled back in Google’s IMA SDK.

v7.11.0

Release Date: May 10, 2017

Updates

Core Player

  • Moved player controls to its own script to be managed as its own module, or excluded to create a chromeless player, and updated the API accordingly.
  • Improved controlbar state transitions in the Seven skin by fading elements’ visibility.
  • Added functionality that seamlessly switches the controlbar UI when a manifest changes from live to DVR to VOD.
  • Changed the tooltip for the related playlist overlay to say “Discover” instead of “Related,” and updated its icon.
  • Added functionality that automatically displays the related playlist overlay after a video is paused for seven seconds.
  • Added ARIA labels to all buttons to be fully 508 compliant.
  • Updated captions support in Firefox and Internet Explorer to allow more styling control.
  • Improved captions rendering in IE11 and Firefox.

Fixes

Core Player

  • Fixed an issue where the Flash plugin failed to load an HLS stream in IE11 in audio-only mode.
  • Fixed an issue where a manifest with no levels does not throw a level error and buffers infinitely.
  • Fixed an issue where PlayAd withCredentials results in minDvrWindow exception flooding the console.
  • Fixed an issue where a live stream would incorrectly report a negative duration.

Ads

  • Fixed an issue where ads would start muted on iOS when the preload config option was set to none.

v7.10

DASH Streaming Support and Viewability API

JW Player 7.10 supports more DASH streams and features likes DVR windowed live streams, multiple audio tracks, and improved subtitles. 7.10 also adds a viewability api method that you can use to get the viewability of the player or listen to events to determine if the player was viewable during that event.

v7.10.7

Release Date: April 19, 2017

Fixes

Core Player

  • Fixed an issue with DASH streams not starting unless the user tried to seek
  • Fixed an issue where the Flash plugin failed to load in IE11 when trying to play audio-only HLS streams
    Updated the initially selected audio track in DASH streams to be the first language track when a default is not set
  • Fixed the labeling of 608 captions tracks in HLS streams to use the NAME parameter from the stream or fall back to “Unknown CC” when the language or label is unknown

Ads

  • Fixed an issue where the player would not fallback to supported ad mediafiles after encountering an unsupported VPAID mediafile
  • Fixed an issue where the VMAP breakstart event would not fire in Firefox and IE11
  • Fixed an issue where a nonlinear VPAID 2 would not correctly fire the adImpression event
  • Fixed an issue where the playAd() API call was not taking the vpaidmode property into account

v7.10.5

Release Date: April 12, 2017

Updates

Ads

  • Created a new on(‘adschedule’) event that displays elements of a parsed VMAP prior to ad playback, specifically the schedule of ads that should play.
  • Updated the on(‘adimpression’) event with information from a parsed VMAP that can be tied back to the on(‘adschedule’) event
  • Enabled the IMA config option “setLocale” for skip button language localization via “locale”: “de” in the advertising block. Two-letter language codes should be used.
  • Added a config option custParams to the advertising block for VAST. This allows passing custom parameters to individual ad breaks.

Fixes

Core Player

  • Fixed an issue on the Edge browser where trying to remove the player using jwplayer().remove() would not successfully remove the player for DASH streams with embedded VTT tracks and casting enabled

Ads

  • Fixed an issue on iPhone with IMA where, if in fullscreen, the ad audio could be heard behind the paused content and exiting fullscreen would allow the ad to be viewed. This change was to force-exit fullscreen during ads and prevent users from entering/re-entering during ads.
  • Fixed an issue with IMA where manually changing playlist items from a video with a postroll to a video with a preroll would cause the player to stall.

v7.10.4

Release Date: April 4, 2017

Fixes

Service release, no new features

v7.10.2

Release Date: March 27, 2017

Fixes

  • Fixed an issue where cookies were not being sent when withCredentials is set with a cookie file
  • Fixed an issue where the player would not display on setup if the player element was not in the DOM
  • Fixed mishandling of Flash VPAID clickthrough
  • Fixed an issue where calling jwplayer().setCaptions({}); would not reset the window color or window opacity

v7.10.1

Release Date: March 22, 2017

Updates

Streaming

  • Added ability to display language with captions and audio tracks with DASH
  • Added support for DVR with DASH
  • Added support for multiple audio tracks with DASH
  • Added bitrate to quality labels with DASH to differentiate between levels with the same height but different bitrate
  • Added support for custom quality labels
  • Made general improvements to DASH streaming
  • Made general improvements to HLS streaming
  • Improved handling of Live stream completion by showing the end state

Flash Version

  • JW Player 7.10.1 requires Flash 18 or higher. Previous versions required 11.2 or higher. The change allows us to restore hardware accelerated video playback for HLS with Flash with minimal effort.
  • This fixes various issues with DVR streams and IE11 memory usage. Flash Plugin 25 is the latest version. Flash Plugin 18 is the last version to receive LTS security patches. Enforcing this requirement ensures greater security on sites that use our player.
  • Players on systems with Flash 11.2-17.x will no longer be able to use Flash. "primary: flash" will be ignored on these systems and html5 playback will be required.

Viewability

  • Added viewability information to all events coming from the player API.
  • Added a getViewable() method that will return 0 if the player is less than 50% viewable or 1 if it is greater than 50%.
  • Added config option “autostart”: “viewable” which starts playback on desktop devices when the player appears in view rather than on page load or via user click.

UI

  • Added config option “nextUpDisplay”: false to disable the “Next Up” tooltip
  • Added support for timeslider thumbstrips on mobile
  • Improved default styling of captions

Core Player

  • Improved handling of VMAP breakstart/breakend events
  • Added support for autoplay muted on iOS Chrome

Fixes

  • Fixed an issue where DVR stream might not start from the Live edge
  • Changed IMA’s enablePreloading functionality to opt-in rather than on by default due to Google not adequately supporting VPAIDs
  • Fixed an issue where the player would still request manifests after the player was stopped
  • Fixed an issue where sideloaded captions tracks did not display when in-manifest subtitle tracks exist in an HLS manifest.
  • Fixed an intermittent issue where an HLS stream would freeze during playback
  • Fixed an issue where embedded VTT captions were not rendering in some browsers when using DASH
  • Fixed an issue where CSS on the page could bleed into the rightclick and quality menus
  • Fixed an issue where Live multi-audio HLS streams could freeze
  • Fixed an issue that caused HLS streams to crash when switching playlist items, where the new playlist item has fewer quality levels
  • Fixed an issue where a DASH stream with an embedded VTT file wouldn’t display captions
  • Normalized levels API properties across all providers
  • Fixed an issue where the timeslider scrubber could exhibit odd slingshot-like behavior when scrubbing
  • Fixed an issue where embedded VTT captions were not being styled correctly in some cases
  • Fixed an issue where Fairplay Streaming enabled streams were not playing over AirPlay
  • Fixed an issue where players were not autostarting in the Facebook webview browser on iOS
  • Fixed an issue where ID3 would be truncated when parsed in the HTML5 player
  • Improved handling of Flash streaming on IE11 on Windows 7 to reduce stuttering
  • Fixed an issue where a DVR stream would crash when using Flash on Windows with IE11

v7.9

Mobile UI and 360 Video

In JW 7.9, the UI has been updated to embrace small player sizes on mobile and desktop. Additionally, the Casting feature has been overhauled to handle both Google’s Chromecast and Apple’s Airplay. Lastly, support for playback of 360 Video has been added - no additional plugin required.

JW 7.9 no longer uses the custom receiver application hosted by JW Player. Instead, once casting is enabled the player will connect to the default receiver application hosted by Google. Because of this, you no longer need to register an application ID with Google and all existing setups will function correctly.

v7.9.3

Release Date: February 21, 2017

Fixes

  • Fixed ad plugin issues when using RequireJS.
  • Fixed an issue when using Flash where playlist switching via the API caused the video audio to play during the preroll.
  • Reduced console errors in Safari when the player is embedded inside of an iframe.
  • Improved handling of cookies when “withCredentials = true” with HLS streams.
  • Fixed an issue where VOD streams could incorrectly display as Live in Chrome.
  • Fixed an issue with the setCaptions API where it was not correctly changing the font size of the captions.
  • Fixed an issue where certain HLS streams might not begin playback.
  • Fixed an issue where the controlbar being visible would bump captions too high.
  • Fixed an issue where Vimeo HLS streams would not play.

v7.9.1

Release Date: February 8, 2017

Fixes

  • Fixed several issues with HLS where midrolls could case the stream to restart from the beginning or freeze on a black screen and prevent playback from resuming.
  • Fixed an issue where some DVR streams were starting from the beginning and not Live edge.
  • Resolved an issue in Edge where stopping an HLS stream programmatically could result in an error.
  • Fixed issues with the load() API that caused errors in IE11 and Edge.

v7.9.0

Release Date: February 2, 2017

Updates

UI

  • Improved usability of controls at small player sizes:
    • Moved the timeslider above (instead of inline) the control bar buttons to make the timeslider more functional and reduce clutter in the control bar.
    • Moved the Play/Pause, Rewind, and Next buttons onto the player view.
    • Moved dock buttons closer to the top right corner.
    • Updated the controlbar during ad playback to have a fixed height and fit ad text in a single line.
    • Removed the video description text that was visible before media playback starts.
    • Display a countdown instead of the current time and duration at player sizes below 320px.
  • Added a configuration option “timeSliderAbove: true” that moves the timeslider above the control bar buttons at all player sizes.
  • Updated player controls on mobile so that users can tap on the view to hide/show the controls while paused to facilitate taking screenshots of the content being watched.
  • Overhauled premium skins to provide better consistency.

Casting

  • AirPlay is now supported in Safari and iOS from within the Player.
  • Cast configuration options have been removed from the Dashboard.
  • Non VP9 DASH streams can be cast to Cast enabled devices.

Ads

  • Added configuration option “vpaidcontrols: true” for VPAID ads to force the controlbar to show.

Streaming

  • Added support for Azure’s PlayReady AES functionality.
  • Performance improvements to HLS in HTML5.
  • Added support for playback of 360 Video. Both magic window and VR modes are supported when streaming a spherical 360-degree video.
  • Updated FreeWheel slot-end event handling.

Fixes

  • Fixed firing of VMAP breakstart tracking event.
  • Fixed an issue with the handling of VPAID wrapper clickthrough.
  • Fixed an issue where adcomplete was firing on one ad in an ad pod on skip in certain situations.
  • Fixed issues around DVR playback and starting from the Live point.
  • Fixed an HLS playback stutter issue which occurred in streams that defined unusually short segments.
  • Fixed an issue with ad pods with both VPAIDs and Vast linear ads where all pod items were not being played.
  • Fixed an issue with HLS live streams where an empty child manifest would crash the player.
  • Fixed an issue with playing IMA ad content via the API.
  • Added better error handling for situations where IMA returns an empty xml.
  • Fixed an issue where an IMA skippable ad was not skippable if immediately preceded by a VPAID.
  • Fixed an issue that caused “preload: none” to break IMA ads.
  • Fixed an issue where firstframe was firing before playback started with “preload:auto”
  • Fixed an issue where the VisualQuality event did not return the index that corresponds with the quality level in getQualityLevels.
  • Added configuration option to advertising block for IMA's "enablePreloading" setting. "enablePreloading = false" disables ad preloading and resolves issues with back-to-back VPAIDs in pods. VPAIDs are not fully supported in IMA when using "enablePreloading = true".

v7.8

HLS in HTML5 by Default

In JW Player 7.8 HLS will be played in HTML5 as default in Chrome, Firefox, Safari, and Edge without the need to set a separate configuration. This update comes on the heels of Chrome updating to turn all Flash into click-to-play. JW 7.8 also adds support for autoplay on mobile, including a new interface element to unmute autostarted videos on mobile, as well as a FreeWheel advertising plugin.

Please Note: Since the player will now be rendering HLS streams in HTML5 in most browsers, we suggest that you make sure the CORS headers on the domains hosting your streams are set up properly to allow your domain access. Otherwise, your HLS streams may fail to play. Please see our Cross-domain File Loading support article for more information.

v7.8.7

Release Date: January 4, 2017

Fixes

  • Updated HLS in HTML5 to restrict maxium quality chosen in adaptive playback to be based on the player width and height. This reduces bandwidth and improves system performance.

v7.8.6

Release Date: December 21, 2016

Fixes

  • Fixed a syncing issue with HLSv4 VTT subtitle tracks and discontinuities.
  • Fixed an intermittent issue with duplicate HLS 608 captions.

v7.8.5

Release Date: December 20, 2016

Note that 7.8.5 was never promoted to production and all of these fixes are wrapped into 7.8.6.

Fixes

  • Improved accessibility for Next Up Close button by adding an Aria label.
  • The API calls setVolume() and getMute() now work correctly when the player is muted for autoplay on mobile.
  • Fixed an issue with HLS 608 captions truncating captions over 32 characters.
  • Fixed an issue where sideloaded VTT captions were not displaying after prerolls.

v7.8.4

Release Date: December 16, 2016

Fixes

  • Fixed an issue where preroll ads on iOS played with Google IMA would pause and stall when preload was set to none.
  • Aligned captions to correct time with streams that had ads stitched from Uplynk.
  • Returned the embed code to the Sharing overlay for player sizes that can fit it.
  • Fixed an issue with ad time events not firing between midrolls with FreeWheel.
  • Added functionality to play only the second midroll if a viewer skips past two midrolls with FreeWheel.

v7.8.3

Release Date: December 8, 2016

Note that 7.8.3 was never promoted to production and all of these fixes are wrapped into 7.8.4.

Fixes

  • Fixed an issue in HLS where gaps caused by segments not starting with keyframes was causing the stream to jump ahead.
  • Fixed an issue in HLS where gaps were caused by #EXT-INF numbers not having a leading digit (having fragment durations less than one second).
  • Updated logic regarding VPAID ads to not pause on click-through so VPAIDs without native controls don’t get stuck in a pause state.
  • Fixed an issue with IMA ads and playlists where moving to the next playlist item via the Next button or Next Up Overlay would prevent ads from playing on that playlist item and subsequent ones.
  • Fixed an issue where ads clicked on Android could not be resumed via the play display icon, only the controlbar.
  • Fixed an issue with switching playlists via the API when using FreeWheel.
  • Fixed an issue where streams with discontinuities were not always getting proper VisualQuality events.
  • Fixed an issue where the VisualQuality event was misreporting height and width on a level change.
  • Added beta MP3 support to HLS streaming.

v7.8.2

Release Date: December 3, 2016

Fixes

  • Fixed intermittent tab crashes in Chrome when Flash is selected as the primary mode of playback.
  • Fixes the accuracy of the time slider in Android Chrome when the viewport is zoomed.
  • Seeking outside the buffer in an HLS stream now properly updates the state to buffering.
  • Fixed cases where audio tracks did not show up for certain HLS v4 manifests.
  • Fixed parsing of HLS manifests containing sub-second durations starting with decimal points.

v7.8.1

Release Date: November 30, 2016

Updates

Streaming

  • Added failover support to load the player via HTML5 when Flash is chosen as the primary setting but is blocked or not available
  • Added support for multiple audio track renditions using #EXT-X-MEDIA and TYPE equal to AUDIO in HTML5.
  • Added support for subtitles in HTTP Live Streaming using WebVTT with #EXT-X-MEDIA and TYPE equal to SUBTITLES in HTML5
  • Improved time to switch to a higher quality.
  • Updated UI to show bitrate when multiple adaptive qualities with the same width are present.

FreeWheel HTML5 Integration

  • Created built in FreeWheel Ad Manager for HTML5.
  • Added support for all primary use cases around ad formats, pre/mid/post-roll slots, analytics, Javascript creatives (Flash creatives are not supported).

Mobile Autoplay and UI

  • Added support for inline autoplay while muted on iOS and Android
  • Added mute/unmute button to controlbar on mobile
  • Provided the configuration autoplayadsmuted:true to allow ads to autoplay muted on mobile
  • Updated sharing overlay for improved usability at smaller player sizes

Sharing Overlay

  • Created small player and mobile-friendly overlay that scales based on player size
  • Removed video title that was previously being truncated for most title lengths
  • Removed Iframe/embed icon and text from overlay to reduce clutter
  • Removed URL text to reduce clutter in favor of a button that copies the URL

Fixes

  • Fixed display of accented characters with 608 captions
  • Better handling of aspect ratios with HLS streams

v7.7

Next Up and Discovery Mode

JW Player 7.7 has a new interface for displaying playlist content and a new flow for transitioning into discovery mode to showcase recommended content. The tile layout introduced in JW 7.6 will now also be used to display curated playlist content, replacing the visual playlist in the controlbar. After the last playlist item, if there are JW Platform powered recommendations, the UI will transition seamlessly into discovery mode which continuously recommends new videos to help viewers discover new content.

This release also enhances the controlbar UI with a new default rewind 10 second element, a new “Next Up” button which shows a tooltip for the next video to be played when hovered over, and the option for the Next Up element to display before the next video begins.

Note: JW Player 7.7 removes support for mp3 audio in HLS HTML5. HLS streams should use AAC audio instead.

v7.7.6

Release Date: November 2, 2016

Fixes

  • Fixed stability of HLS streaming in HTML5

v7.7.4

Release Date: October 28, 2016

Updates

Player UI

  • Adjusted player breakpoints to optimize experience for small players
  • Scaled and adjusted padding for dock buttons at small player sizes
  • Made a change to truncate controlbar text instead of adjusting height to accommodate multiple rows
  • Adjusted margins around premium skins at small player sizes to maximize usable space
  • Next Up overlay is hidden at smaller player sizes
  • Removed watermark from trial edition

Ads

  • Support forceNonLinearFullSlot config in IMA

v7.7.3

Release Date: October 20, 2016

Fixes

HLS HTML5

  • Fixed an issue in HLS where streams that had the same resolution but different bitrates were filtered out as redundant fallback streams. HD menu will now display these streams and their respective bitrate.

v7.7.2

Release Date: October 18, 2016

Fixes

HLS HTML5

  • Fixed an issue where certain audio streams containing a final short AAC segment were not going to a “complete” state.
  • Fixed an issue in Safari where on(‘meta’) was not outputting ID3 metadata after advertisements.
  • Fixed an issue where adjacent keyframes could cause stalls if the sample duration of the audio was longer than 2 keyframes.
  • Fixed an issue where switching qualities multiple times in a non-self instantiating stream could cause stalls.
  • Fixed an issue in Firefox where 608/708 captions would not appear with DVR streams.
  • Fixed an issue in Google IMA where setting “mute” configuration to true would play audio on certain ads for a split-second.

v7.7.1

Release Date: October 10, 2016

Fixes

HLS HTML5

  • Fixed an issue with live streams with inconsistent gaps in encoding that would desync and fail to play.
  • Fixed audio sync issues with live streams
  • Fixed an issue where HLS streams with a short final segment would not play the last segment

Discovery Overlay

  • Fixed an issue where additional pause events were firing when an item was chosen from the playlist overlay
  • Fixed an issue with discovery overlay where unplayed items were incorrectly marked as played

Captions

  • Fixed an issue in Firefox where HLS 708 captions were displaying in the bottom-left region
  • Fixed an issue in Firefox where sideloaded captions were not selectable when used in combination with 608 captions
  • Fixed an issue in Safari where embedded 608/708 captions were not available after a linear ad

DRM

  • Fixed an issue in Safari where Fairplay DRM was not triggering a player error when a keyerror was fired
  • Fixed an issue in Firefox where replaying a DRM DASH stream would not play ads

v7.7.0

Release Date: October 4, 2016

Updates

Streaming and DRM

  • H.264 video and aac audio encoded HLS streams are now supported in HTML5 in Firefox
  • Updated to a new DASH library that will start faster as well upswitch qualities quicker
  • Multi-period streams are now supported
  • Support for custom functions when requesting key and certificates for Apple FairPlay Streaming
  • Added the ability to set custom HTTP headers for Widevine and PlayReady key requests

Playlist Overlay and Next Up

  • Added the ability to flip through pages of feeds in both curated playlist and discovery mode within the Next Up video overlay
  • New configuration options to set localization text for Next Up and Playlist overlay title
  • New Next Up tooltip will show the playlist item or the next recommended item
  • Updated the icon used for related dock items to be consistent with playlists
  • Added a nextupoffset that can be used to trigger a moment in the video to display the Next Up item. The default value is 10 seconds before the item ends.

Ads

  • No longer using IMA 3 Flash SDK, all IMA ads will render using the HTML5 IMA SDK

Core Player

  • Improved compatibility with RequireJS
  • When the player errors, a viewer can now access the playlist overlay and navigate to new content
  • Ability to set the minimum configurable length for when DVR controls are enabled
  • Removed previous button from controlbar
  • Created a new 30 second seek back icon and controlbar element
  • Right-click menu will automatically close after 3 seconds
  • MP3 audio is no longer supported in HLS HTML5:
    • TS files that include video and mp3 audio will have audio removed
    • Segmented MP3 files and TS files that use the mp3 audio codec will not play

Fixes

  • Fixed an issue with unmarked discontinuities in HLS streams causing the player to hang
  • Fixed player API to not trigger pause when seeking is happening
  • Fixed multiple issues with PlayReady streams not playing
  • Fixed ads being skippable in an ad pod before the allotted skipoffset was reached
  • Fixed HTML5 HLS not broadcasting stalled when it is stalled.

v7.6

Next Up Overlay for Recommended Content

JW Player 7.6 has a mobile optimized design for displaying recommended content during and after a video ends. This new overlay is called “Next Up” and retains all of the functionality the related overlay. Next Up pairs seamlessly with feeds from JW Platform to allow your viewers to continue watching and discovering great content.

v7.6.1

Release Date: August 29, 2016

Fixes

  • VPAID ads can now be used inside of ad pods if they are sequenced in following patterns: (1) The pod starts with a VPAID creative and can be followed by multiple VPAID units, (2) The pod can end switch from VPAID to standard linear ad, (3) The pod cannot switch from linear ad to a VPAID creative
  • Fixed an issue where captions would need to be re-enabled after a preroll
  • VMAP requests will initially use withCredentials=true and fall back to withCredentials=false
  • Added support for embedded 608 captions in HLS streams for Microsoft Edge
  • Fixed multiple issues with timing and appearance of 608 captions after discontinuities in an HLS stream
  • Fixed captions in live streams turning off after pausing and resuming the stream
  • Fixed an issue where side-loaded tracks were not loading in IE9
  • Fixed an issue where next up related item was repeated instead of cycling to a new video
  • Updated style for video titles wrapping in related video overlay
  • Nan/Nan no longer appears as the duration and current time if the player takes an extended time to set up

v7.6.0

Release Date: August 15, 2016

Updates

  • Updated design for showing recommended and related content

Fixes

  • Fixed issue in Google IMA where adTime was not being returned in HTML5

v7.5

DRM Compatibility in Firefox and Safari

JW Player 7.5 adds DRM compatibility for two additional browsers (Firefox and Safari Desktop) as well as improvements to captions positioning, handling, and styling. Aria integration improves accessibility by adding support for screen readers. Finally, we've exposed additional tracking information via our API, and made VMAP ad scheduling more robust.

v7.5.2

Release Date: August 4, 2016

Fixes

  • Captions will no longer move when controls are disabled and player is moused over
  • DFXP captions will now be read correctly when using colons to separate seconds and frames
  • Player will now prioritize sequenced ads within an ad buffet
  • Native captions no longer display twice when using thumbnails with HTML5 Provider
  • Player will now display multiple captions that use the same timestamp
  • 608 captions should now wrap correctly in IE
  • DFXP/SRT captions should now wrap correctly in all browsers
  • Fixed issue where background color styles could incorrectly be applied to captions

v7.5.0

Release Date: July 26, 2016

Updates

DRM and Streaming Improvements

  • withCredentials can now be added to HLS HTML5 manifest requests by including “withCredentials”: true to a playlist item
  • Added support for redundant HLS streams in HLS HTML5
  • Preload options now supported in HLS HTML5
  • Widevine DRM now functional in Firefox 47+
  • Fairplay DRM now functional in Safari Desktop
  • Various fixes/improvements to Playready DRM
  • Increased speed of Dash quality upswitching

Ads

  • Support for ad tag macros with VMAP ad schedule URLs
  • Different VMAPs can be used on individual playlist items
  • CreativeView tracking pixels now returned with adCompanions API event
  • Ad Impression will now return the mediafile type as creative type
  • Information about ad wrappers will now be exposed with adImpression event

Captions Refactor + Accessibility

  • VTT positions now supported in Flash and HTML5
  • Required caption polyfills will be loaded on-the-fly when required (Based on browser support)
  • “C” keyboard shortcut will now toggle captions display
  • Change caption appearance/style on the fly with new setCaptions() API
  • Support for embedded 708 Captions (In HLS HTML5)
  • Support for VTT positions
  • Improved screen reader support with Aria implementation (Credit to francoismassart)

Core Player

  • Providers will now be loaded separately only when required
  • New default "Seven" Skin
  • CC button will show active color whenever captions are not off
  • Skinning model improvements/cleanup
  • Adaptive streaming qualities now ordered in API and menus based on bandwidth
  • A single ad error will no longer error out an entire ad pod

Fixes

  • HLS JS now correctly returns mpegts data with ‘time’ event
  • Cursor will now hide with controls in HTML5 mode
  • If within a certain threshold, posters will snap to the full player size
  • Fixed issue with VPAID 2 resizing while toggling fullscreen
  • Player now correctly obeys stretching options in fullscreen Flash
  • VPAID 2 ad will no longer display control bar with Google IMA plugin
  • Audio HLS streams will now properly play with captions
  • Mailto and Download links should no longer affect playback
  • Ad pods will now fire correct complete events
  • Improved 608 caption handling with discontinuity periods in Flash
  • Improved segment error handling in HLS HTML5
  • jwplayer.defaults now correctly sets advertising block to all players on page
  • Default 8px margin no longer added to body of VPAID 2 iFrames
  • AES key URLs are now parsed correctly when additional quotes were used

v7.4

HLS in HTML5

HLS in HTML5 support in JW Player is currently only for Chrome 34 and above. We recommend updating to the latest version of Chrome to get the most out of HLS. Specifically support for High Efficiency Advanced Audio Codec (HE-AAC) was only introduced in Chrome 50.

v7.4.4

Release Date: June 21, 2016

Fixes

  • HLS JS - Tokenized child manifests were not being parsed properly when url search params contained slashes
  • Added support for JW Platform JSON feeds in related plugin

v7.4.3

Release Date: May 25, 2016

Fixes

  • Audio mode with Shaka is now supported
  • adImpression now returns the mediaFile URL of the chosen creative
  • HLS HTML5 - Player would occasionally stall on quality upswitches
  • HLS HTML5 - Multiple forward seeks could stall playback
  • HLS HTML5 - M3U8 manifests with capital letters were not handled correctly
  • getDuration() returned duration of the previous playist item, if called before metadata was loaded
  • load() was not choosing the correct provider when changing playlist items or loading media via API
  • CSS list item styles could affect right click menu styling
  • Player volume was not persisting on page reloads
  • Stopping and replaying in HTML5 could cause an error

v7.4.2

Release Date: May 11, 2016

Fixes

  • Added hlshtml configuration option to control use of HLS HTML5

v7.4.1

Release Date: May 6, 2016

Fixes

  • Caption styling will now work with native HTML5 tracks in Chrome Desktop
    • When rendering captions in Chrome natively, "fontSize" in the "captions" block will not be obeyed, due to font scaling
  • Changed how player fonts are loaded to prevent false positives with certain firewalls
  • Progressive live streams should now change states correctly
  • Google IMA ad schedules should now play properly
  • Fixed an issue in IE11/Firefox where captions may display during ads
  • “Default” sideloaded captions should now display in Safari automatically

v7.4.0

Release Date: April 25, 2016

Updates

HLS in HTML5

  • Adaptive bitrate switching for Live, DVR and VOD streams
  • Extensive support for streams with discontinuities
  • 608 embedded captions
  • Playback AES encrypted streams over HTTP and HTTPS
  • AES tokens
  • ID3 timed metadata
  • Fast, frame accurate seeking
  • Audio only streams with MP3 or AAC
  • MPEG 2 Layer 3 and MPEG 1 Layer 3 for MP3 is supported
  • HE-AAC in Chrome 50+
  • H.264 main and baseline profiles
  • High profile is dependent on hardware
Not yet functional
  • Multi-track audio
  • Embedded WebVTT captions
  • Redundant CDN switching

Verified Encoders and CDNs

  • Akamai
  • Edgecast
  • Fastly
  • Zencoder
  • Amazon Web Services
  • Wowza
  • Azure
  • Unified Streaming

Core Player

  • Google IMA ad tags will automatically get duration and video title added to the request url for more enhanced ad targeting.
  • WebVTT captions are rendered using the native <track> element in Chrome.
    • Note: Caption styling from player setup is not yet supported with HTML5 video in Chrome. This will be released with JW 7.5.
  • DASH streams will now play in FireFox 45 and up. Still no reliable Safari support.
  • Shaka Provider has been updated to version 1.6.5

Fixes

  • Using the API to trigger captions was not updating UI correctly.
  • Relative urls were not working in FireFox.
  • Mobile chrome was sending an additional play event.
  • Closed-captions no longer appear during ad playback.
  • Fixed an issue that could cause Google IMA ads to play behind content

v7.3

DRM and Fullscreen Captions on iOS

JW Player 7.3 offers a variety of improvements and bugfixes. Exclusively on iOS devices, we now utilize the native HTML5 tracks element, allowing for fullscreen captions on iOS devices. Additional DRM options have also been added, along with other improvements and changes.

v7.3.6

Release Date: April 1, 2016

Fixes

  • Fixed an HLS Flash issue where artifacts could appear after discontinuity breaks

v7.3.5

Release Date: March 18, 2016

Fixes

  • TXXX Metadata will now appear properly with Flash provider
  • Captions in audio mode will now render above the control bar

v7.3.4

Release Date: February 25, 2016

Fixes

  • Fixed issue where certain video streams were interpreted as audio-only in iOS
  • Fixed issue where thumbnail VTTs were appearing as captions in iOS

v7.3.3

Release Date: February 24, 2016

Fixes

  • Fixed iOS issue with playlists when preload was set to 'none'.

v7.3.2

Release Date: February 22, 2016

Fixes

  • Fixed issue with captions and advertising on iOS
  • Captions now display properly on IE 10
  • Ads on IE 10 should now function correctly

v7.3.1

Release Date: February 16, 2016

Fixes

  • Visual Quality API will now function on iOS
  • Flash loading errors will now provide more accurate information
  • VAST Flash companions now display properly on Firefox
  • Improved Chromecast reliability with mixed playlists
  • 608 Captions will now work on DVR streams in Flash
  • 608 Captions should now toggle correctly on iOS for live streams
  • Fixed regression with audio player fading during playback
  • Corrected regression where DRM streams required ‘customData’
  • Fixed regression with poster images not loading inside of playlists

v7.3.0

Release Date: February 1, 2016

Updates

PlayReady DRM Support

  • PlayReady DRM now supported on IE11/Edge browsers for Win 8.1+
  • Clearkey DRM now functions with DASH

HTML5 HLS Safari Improvements

  • ID3 timed metadata can now be accessed with the on('meta') listener
  • HLS DVR streams can now be viewed and controlled on JW Player controlbar
  • HLS embedded captions can now be controlled with JW Player control bar
  • Native HTML5 caption tracks are now used for iOS devices, allowing for fullscreen subtitles.
  • Multiple audio tracks can now be accessed in Safari.

Ads

  • Ads rendered with Google IMA SDK now use JW Player control bar UI

Core Player

  • Player supports playlists in JSON file format
  • Custom logo is now a CSS-styled div element
  • New on('adBlock') API call to detect when an adblocker is installed on a viewer's browser
  • skipoffset can now be applied on a per-adbreak basis
  • Logo position options from JW6 have been restored (bottom-left, bottom-right, top-left, top-right)
  • Margins can also be specified
  • When highlighted, the player’s border color is now handled by browser styling
  • DASH streams will now use representation width pixel value as default label method
  • Small player UI now includes playlist navigation
  • Related overlay shows longer titles + larger sized thumbnails
  • Player will no longer encode urls and expects to be given a properly formatted URL for external assets.
  • In live HLS streams, if JW Player detects an empty chunklist of a certain quality, it will automatically attempt to switch qualities.
  • Non-linear fullslot ad creatives in IMA HTML5 and Flash can now be scheduled at any time during video playback.
  • New API event and getter for detecting if there is an ad blocker on the page.
  • JW Player will pass videoSlotCanAutoPlay in initAd for VPAID 2.0 creatives.
  • Seeking past multiple midrolls will only trigger and play the last midroll.

Fixes

  • QoE events are now properly accounting for preroll advertising on mobile devices
  • Cuepoint text styling has been improved
  • Seeking to the live portion of a DVR stream will now properly account for buffer
  • 608 captions now wrap correctly
  • RTMP streams will no longer restart when midroll ads are viewed
  • Hiding controls will now work properly when dock buttons are configured
  • Scrubbing after a final playlist completes no longer triggers playback of first playlist item
  • Control bar no longer appears between playlist items
  • Fixed an issue where JW Player was sending a flash plugin in error in an inactive tab of Chrome.
  • Audio only HLS streams now show poster image instead of black viewport.
  • Captions are no longer displayed over ads
  • Fixed an issue where the load method was unable to reload the same playlist.
  • JW Player no longer resizes during a Casting session.
  • Fixed an issue where JW Player was not skipping over non-playble media formats in a VAST response.
  • VPAID 2.0 creatives were not properly getting a mute property.

v7.2

Preloading and Sharing/Related Plugin Skinning

JW Player 7.2 features a variety of exciting new features and updates to your video experiences. We’ve modernized our Sharing and Related plugins to coincide with our JW7 skinning principles. In addition, JW Player now supports using preload with its media. This allows the player to gather playback information about media prior to playback and may improve time to first frame.

In addition, we’ve fixed many pesky bugs, improving experiences for both viewers and publishers.

v7.2.4

Release Date: December 16, 2015

Fixes

  • VAST flash creatives will now be properly ignored when player renders in HTML5
  • Fixed “Cannot set property 'blocking' of null” VPAID console error
  • Player now renders correctly if browser cookies are blocked
  • Player now renders correctly in certain older browser versions
    • Fixes “JSON.stringify cannot serialize cyclic structures” error

v7.2.3

Release Date: December 7, 2015

Fixes

  • Fixed issues with scrolling and Chrome throttling Flash.
  • Due to publisher feedback, when Chrome throttles Flash, JW Player will no longer sends an error event.
  • Fixed overlap between Logos and Related/Sharing close icon.
  • Fixed a regression with pseudo streaming.
  • Fixed on(‘adComplete’) event behavior with Flash VPAID creatives.
  • Improved right click overlay to be less prone to styling conflicts
  • Fixed manual quality toggling in Firefox.

v7.2.0

Release Date: November 18, 2015

Updates

Sharing Plugin

  • CSS-based design
  • New API to triggers and hides display as well as showing which networks get clicked.
  • Add your own custom social networks. Default networks include - Facebook, Twitter, Pinterest, Email, Tumblr, Google Plus, Reddit, LinkedIn
  • CSS-based design with responsive Grid layout
  • Automatic Related Playback with configurable countdown timer and message.
  • Added support for related feeds in JSON file format
  • New API to triggers and hide display as well as show which video gets watched.

Support for Content Preload

  • Provides faster video startup by preloading media metadata, parsing manifest on page load, and/or starting to download the actual media.
  • Default value is none.

Core Player

  • Right click customizations are now part of Free Edition and have an updated design.
  • When seeking with DVR, we now show a tooltip displaying the time.
  • HLS AES Key request frequency decreased.
  • dash configuration no longer needed to play MPEG-DASH streams.
  • DASH provider updated to Shaka 1.5.1.
  • PRIV ID3 metadata will now be exposed in HLS streams.
  • On mobile, display icon will appear on pause and tapping video area will now toggle playback.
  • play() and pause() now work for VPAID 2 JS creatives.
  • Custom logos will no longer hide with controls set to false.
  • Settings are no longer saving via Cookies. JW Player now uses local storage.
  • DASH sources will not attempt to play on non-chrome or edge browsers
  • Increased setup timeout from 10 to 30 seconds
  • Adjusted the placement of captions to react to controlbar being shown.
  • Updated Audio mode behavior to not get throttled by Chrome power saving.

Fixes

  • Player should now respond to touch events properly on iOS 7.
  • ID3 Metadata was not synching to the correct timestamp in HLS.
  • ID3 WXXX fields were not parsed correctly.
  • Multiple Youtube players on a single page will now play properly.
  • Youtube videos will now play properly on Android devices.
  • VPAID 2 Prerolls now work properly on Android devices
  • Dash live streams will display correct live controlbar UX.
  • Errors will now be properly displayed when title or description are hidden
  • Fixed resume behavior after Google IMA midroll.
  • Improved dash playback experience on Android Chrome.
  • Fixed an issue where the API was not firing on('seeked') events in Flash
  • Improved HLS performance for certain streams
  • Fixed issue with thumbnails not disappearing when moused over
  • Fixed on(‘pause’) event not firing correctly in iOS Fullscreen
  • Fixed on('beforePlay') event not firing correctly in iOS
  • Flash audio content can now be initiated when blocked in Chrome
  • Fixed an issue where androidhls was not being honored inside of a playlist
  • Fixed playback of HLS on Chromecast when the primary source is DASH. (DASH is not supported on Chromecast.)
  • Fixed an issue with clicking on flash ads in FireFox on OSX.
  • Fixed playback content not resuming after mid-roll ad-pods.

v7.1

VPAID 2.0 JavaScript Creatives and Mobile Control Bar

JW Player 7.1.0 is our first major feature update to JW7. This new version offers new UI changes and stability fixes. For advertising users, 7.1.0 allows Interactive VPAID 2.0 JavaScript creatives to be used on in HTML5 video players. This release also changes the behavior to the control bar when it is rendered either smaller than 300 px wide or when the interface elements get cluttered.

v7.1.4

Release Date: October 7, 2015

Fixes

  • VPAID 2.0 JavaScript creatives will render even when Flash is used as the main content video provider. Priority of creative choice is given to the order that they appear in the VAST response.
  • When the player is rendering in Flash mode, SWF-based VPAID 1.0 ads will play if they are listed as the first or only creative source.
  • Flash Throttling detection for Chrome.
  • Controls now fade properly even without user interaction
  • Unknown CC track was appearing in captions menu when 608 captions and WebVTT captions were part of an HLS stream.
  • Api call getVisualQuality() is now returning correct value instead of undefined.
  • Ad complete API is now firing correctly for Flash VPAID ad creatives.
  • Better handling of a Flash exception that occurs when calling setup on a bad flash embed.
  • Certain VPAID 2.0 JavaScript creatives were showing JW Player controls instead of the controls that came with the creative.
  • When Flash was blocked or not able to load the player would show a buffering icon, it now shows the native browser UI instead of JW Player UI until Flash is started.
  • When using Autoplay, player would not resumed correctly after Chrome begins Power Save throttling.
  • Fixed support for WebVTT captions in HLS live streams that were trailing behind timecodes.

v7.1.0

Release Date: September 16, 2015

Updates

VPAID 2.0

HTML5/JavaScript Creatives will render on the following desktop browsers when the JW Player is using an HTML5 video provider.
|Supported Browsers|
|--|
|Chrome|
|Safari|
|FireFox|
|Opera|
*Internet Explorer is not yet supported.
*Chrome on Android is not yet supported
Fullscreen iOS browsers will play VPAID 2.0 creatives but will not have interactive elements due to no native fullscreen API support. Chrome on Android devices is not yet supported.
Fullscreen iOS browsers will play VPAID 2.0 creatives but will not have interactive elements due to a lack of native fullscreen API support.

Small Player UI/UX

Devices with a smaller viewing area will now see a more mobile-friendly control bar UI. Font size has been increased and secondary control bar elements have been relocated to an overflow menu.

Core Player

  • on(‘adStarted’) event added to listen for VPAID adStarted event.
  • on(‘adImpression’) is fired when the VPAID ad impression event is fired instead of the adStarted event.
  • Apostrophes are now accepted in image file names.

Fixes

  • Youtube videos will now correctly begin when our play button is touched on mobile devices.
  • Long lists of captions will now be properly selectable in overlay menu.
  • Improved menu visibility behavior when options are selected.
  • Fixed player behavior when certain HTTP/HTTPS files were combined.
  • Bug fixes and improvements with updated DASH provider.

v7.0

Introducing JW7

See our JW6 to JW7 Migration FAQ for assistance with your migration.

v7.0.3

Release Date: September 1, 2015

Fixes

  • Changed provider logic to render based on provider availability.
  • Fixed touch events on Windows 10 devices to show controls appropriately.
  • Fixed certain livestreams with 608 captions to display the captions at correct times.
  • Fixed a display issue with poster images in audio only players.
  • Fixed multi-line WebVTT captions that were not rendering.
  • Fixed support for DISCONTINUITY-SEQUENCE in HLS.
  • Fixed an HLS stream that would not play due to targetduration being incorrectly set to a negative value.

v7.0.2

Release Date: August 26, 2015

Fixes

  • Chromecast functionality has been re-added and is now available for Premium users. Note: Advertising functions are no longer available while casting
  • vpaidmode has been added for Google IMA VPAID 2 configuration to allow for friendly iframes.
  • Because JW7 controls are not rendered in Flash, stagevideo configuration is no longer needed and has been removed.
  • play() and pause() will now control ad playback with our VAST plugin
  • Ad skip button will now fully inherit skin styles
  • Continuing improvements to player file size and performance
  • Fixed issue with relative paths with our Flash provider
  • Player errors will now differentiate between a missing, invalid, or expired key
  • Corrected poster behavior with audio files
  • Fixed issue with multiple embedded players sharing plugins
  • Vapor skin should now display correctly on Firefox for Windows
  • Fixed titles not appearing correctly with related plugin
  • subscribe, securetoken and bufferlength have been re-added as RTMP config options.

v7.0.1

Release Date: July 20, 2015

Fixes

  • displaytitle has been re-added as a configuration option
  • displaydescription can be used to toggle the display of a file’s description field
  • visualplaylist has been add as a configuration option. The default value is true, setting this to false will remove the visual playlist from the controlbar
  • Improved replay icon appearance in seven skin.
  • Player skins are now loaded via CDN instead of being built directly into the player
  • Removed legacy GA events
  • Custom providers can now be implemented in Premium edition players
  • Added support for Akamai HDS provider. Contact Akamai for the latest version.
  • Clicking “Live” will bring you to the Live position in a DVR stream
  • Updated DASH support streams with startNumber with values of 0
  • HLS is now enabled by default for Android devices. To turn HLS off set androidhls:false
  • Hovering over the player in HTML5 shows mouseover cursor.
  • Corrected buffer display prior to ad playback
  • Improved ad schedule handling
  • Removed unstyled icon appearances during player setup
  • More reliable handling of ad errors

Release Date: July 20, 2015

Updates

Ads

  • New on('adRequest') event is triggered when an ad is requested through VAST. This does not work with Google IMA ads.
  • JW Player 7 will intelligently choose VAST creatives based on player size. This means that smaller player sizes will load smaller video files.
  • JW Player will pick the best VAST Ad creative based on the size of the player when the request was made.

API Updates

  • New on('event') method to attach event handlers to a player instance.
  • New off('event') method to remove event handlers that are attached to a player instance.
  • New once('event') method to add one or more event handlers to a selected player instance. This handler can only be triggered once per element.
  • New trigger('event') method to trigger all events bound to the selected player instance.
  • New on('all') as an argument to listen to all events triggered.
  • New getProvider() method to find out which media provider is currently being used to render video.
  • All time events are reported to the full precision available and are no longer trimmed to three decimal places.
  • play events only fire once.
  • Original DOM container will be restored when removing player.

Quality of Experience API

  • New event called firstFrame triggered when the first frame of a video is played.
  • New event called seeked triggered when playback resumes after seeking
  • Built in Quality of Experience API that contains firstFrame, the total time for a player to set up, as well as the total time spent loading, paused, playing and idle.
  • New on('visualQuality') event triggered when the visual quality of a video changes during playback. This only works for HLS media files and contains the bitrate, width of the player, and the reason why the quality change happened.
  • Use getVisualQuality() to get the quality of the video currently playing.

CSS Skinning Model

  • All JW Player 6 skins have been rebuilt in CSS and are included within the player.
  • Set the name of the your custom skin within JW Player embed configuration to apply custom styles to the player.
  • Use inactive, active, and background configuration options to quickly set the color styles to any skin.
  • Any JW7 setup that uses a premium skin name from JW6 will automatically get the CSS version applied.
  • All icons in JW7 are built using a font. See docs on creating fonts.
    More information can be found in our following articles:
  • Using JW Player Skins
  • Building JW Player Skins
  • JW Player CSS Reference

MPEG-DASH Support

  • Stream Live and VOD in HTML5 in modern browsers with MPEG-DASH. See Using DASH Streaming for full list of supported features. Available in Premium Editions only.
  • Protect your content with Widevine DRM in Chrome. Available in Enterprise and Ads Editions only.

Core Player

  • All embeds require a valid license key to work.
  • All interface elements are rendered in HTML regardless of media provider. Flash media playback will get HTML controls.
  • JW Player will dynamically change media providers between playlist items for optimal video playback.
  • You can disable all cookies by setting cookies:”false” in player embed settings.
  • Flash cookies are no longer set by the player for storing any player states between sessions.
  • Adobe Sitecatalyst built in integration has been removed in favor of creating API level integrations.
  • Analytics.js is the only supported method of Google Analytics usage.
  • The player will timeout and fire a setup error if it takes longer than 10 seconds to load.
  • Download fallback has been removed
  • Minimum version of Adobe Flash Player is 11.2
  • YouTube will only render in HTML5.
  • Semantic naming of player versions and plugins. Expect faster releases!

Known Issues and Upcoming Features

  • Due to JW7's new skinning model, IE8 is not officially supported with JW7.
  • Chromecast functionality is not currently functioning. Expect this soon.
  • Logo can only be positioned in the top right corner.
  • Using Advertising and DASH may cause issues. HLS is highly recommended if you intend on monetizing your content.
    ** See also JW6 to JW7 Migration FAQ **

v6.12

UX Enhancements

The release improves functionality, performance, and UX in a few different ways, with features including improved adaptive heuristics for HLS, HLS playback now supported on Chromecast, updated UX in the Chromecast Receiver application, key-value pair replacement for Google IMA ad requests, and support for Microsoft HLS Azure Clearkey + Playready AES tokenization.

Due to the launch of JW Player 7 in July of 2015, JW Player 6 is no longer being updated. Please use the latest release for any bug fixes and feature enhancements.

Google IMA Patch

Release Date: June 1, 2015

Accounting for Google's recent IMA SDK changes, a patch to our Google IMA advertising plugin was pushed on June 1, 2015. Therefore, JW Player 6.12 or higher must be used to serve HTML5 ads with our Google IMA plugin.

In addition to the above changes, the following features and improvements have been added:

  • Improved ad scheduling, allowing for the use of ad rules and VMAP schedules within Google IMA.
  • Added support for nonlinear creatives in HTML5 mode for non-iPhone devices.
  • Improved timing for video prerolls, preventing content from being played back prior to advertising.
  • playAd() API call will work in HTML5 mode when using Google IMA.

v6.12.4

Release Date: April 6, 2015

Bug Fixes

  • Added support for HLS WebVTT captions with MPEGTS offsets to ensure closed captions appear when they should.
  • Updated the pause behavior during livestreams to be a pause instead of a stop.
  • Fixed a visual stutter in HLS playback due to AAC parsing of multi-audio track streams.
  • Fixed an issue where a failed ad tag was stopping video playback to resume.
  • Fixed an issue where some HLS streams would play in the background while ads were playing.
  • Fixed an issue with players using RTMP as a media source and autostart with prerolls, the RTMP stream did not resume after the ad ended.
  • Fixed an issue with players not rendering correctly when css padding and border were styled inline on the player element.

v6.12.0

Core Player

  • Key value pair variable replacement support in HTML5 and Flash for Google IMA ad requests.
  • The text for advertising cuepoints can now be customized.

Chromecast

  • The following HLS v3 streams can now be played on Chromecast -
    • AES Encrypted streams
    • Live and DVR Streams
    • VOD streams
  • Control playback and volume directly from the Google Cast extension.
  • The receiver application will disconnect after 20 minutes in an idle state instead of ?.

Bug Fixes

  • Fixed a regression with using onReady() to trigger play() in Flash.
  • Fixed an issue for VPAID ad playback that was not sized correctly when using logo position bottom-right.
  • Added support for autostart with a VMAP ad schedule.
  • Fixed the display play button in HTML5 to correctly display hover states.
  • Removed a console error for VPAID ads that was not affecting ad playback.
  • Fixed controlbar fading issue when using SMIL manifests.
  • Fixed an issue with Google IMA tags not refreshing SCOR and COR values between playlist items.
  • Fixed an issue where the player being embedded in a form causes a postback on mobile.
  • Fixed an issue where play() being set onReady() caused infinite buffering on mobile devices.
  • Fixed an issue where some HLS streams would freeze when entering/exiting fullscreen on Windows FireFox.
  • Fixed an issue where IE11 YouTube HTML5 mode would not show any controls.

v6.11

HLS Protocol, GA Plugin, and Casting

The release improves functionality, performance, and UX in a few different ways, with features including: Support for HLS Protocol Version 6 features, a new model for sending events to Google Analytics with the built in plugin, and casting mp4 videos from a Flash Player via our Chromecast integration.

New Features

HLS Changes

  • Support for HLS Protocol 6 Draft version 13 features:
    • Multiple audio track renditions using #EXT-X-MEDIA with TYPE equal to AUDIO
    • Subtitles in HTTP Live Streaming using WebVTT with #EXT-X-MEDIA with TYPE equal to SUBTITLES
  • Flash player will detect timed metadata in ID3 format when embedded in the MPEG-2 transport stream and bubble up in the onMeta() API event
  • When the #EXT-X-PROGRAM-DATE-TIME tag is present, onMeta() will fire when the applicable segment plays.
  • The JW Player will automatically select an audio track based on system language
  • Improved delivery of 608 caption payload
  • Ability to seek within the buffer without having to rebuffer
  • Ability to re-seek while media is buffering
  • DVR sliding control bar appears once the available length is 2 minutes instead of 1 minute.

HLS v5 features not supported

  • Sample-AES decryption
  • iFrame thumbnail tracks
  • byterange requests
  • Any timed metadata that is an image.

Chromecast

  • Casting controls are now available when JW Player renders in Flash to play mp4 videos.
  • The Cast icon won’t show when source is not playable on the receiver application.
  • The Cast icons have been updated for design compliance.

Updates and Enhancements

  • IE9 is now only supported in Flash, HTML5 support has been removed.
  • net proxy connection type can be set for rtmps connections
  • Poster image will not be loaded when autostart:true, improving player startup speed.
  • webkit-playsinline was added as an attribute of the video tag that JW Player uses when rendered on iOS devices.

Bug Fixes

  • Fixed setuperror not firing in certain situations when setting up the player in Flash.
  • Fixed fullscreen button in Internet Explorer.
  • Fixed an issue where failed VPAID were breaking waterfalling to other VAST ads.
  • When an ad is paused in Android Chrome, clicking it no longer opens clickthrough target but resumes playback.
  • Fixed the volume slider for ad playback in Flash.
  • Fixed tag variable replacement item-duration was not getting replaced for mid or post rolls.
  • Fixed using .play() after an ad was watched in Flash.
  • Fixed an issue with autostart being broken for providers.
  • Fixed a crossdomain loading issue with VPAID ads.

v6.10

Chromecast Support

This feature release contains brand new functionality specific to JW Player Ads and Enterprise editions of JW Player.

New Features

Chromecast Support

  • Cast videos from Chrome on iOS using built in casting controls.
  • Control closed captions with the JW Player support. Includes FCC caption styling support.
  • Setting up the player for Chromecast requires publishers to configure their application with JW Player Chromecast receiver URL.

Advertising

  • Schedule ads per playlist item instead of having a global schedule for an entire playlist.
  • Schedule ads in content more accurately using a new format - hh:mm:ss.mmm.
  • The ads control bar no longer blocks content during ad playback. It fades away after the ad starts playing.
  • Waterfalling between ad tags is now even easier with built in support. You can now pass in multiple ads into an advertising block as well as into the playAd() API to fall back to multiple ad tags.
  • Support for the updated Googima IMA API* (HTML5 support dropped in prior versions)

Fixes

  • Fixed a bug setting up Youtube in HTML5 mode.
  • VMAP should support VASTAdData as well as VASTData.
  • Fixed an issue where VPAID ad creatives were taking up more space than defined.

v6.9

Keyboard Shortcuts, YouTube HTML5, Google Universal Analytics, and Chromecast

JW Player 6.9 has many new features and updates that are available in all editions - keyboard shortcuts and YouTube HTML5 support. Google Universal Analytics is now supported while maintaining support for older formats. The Enterprise edition has turnkey integration with Google Chromecast. Along with these updates many of your favorite bugs have been squashed.

New Features

Core Player

  • Support for Google Universal Analytics in the built in GA plugin. Maintains support for older data models.
  • JW Player will now supports YouTube HTML5 chromeless player! This allows HTML5 YouTube videos to played in the JW Player on mobile and desktop!
  • Keyboard shortcuts! JW Player can now be controlled with simple keyboard controls in both Flash and HTML5. Tab into the player and use space to begin playback, arrow keys to seek and adjust volume, and the ability quickly and enter/exit fullscreen.
  • Second precise seeking in HLS. When seeking in an HLS stream, instead of seeking to the beginning of a fragment you can seek directly to a second.
  • On Android Chrome fullscreen video playback is customizable with JW Player skins.

Advertising

  • onAdPlay() - API call to determine when ad is played, returns the adtag, the position of the ad if it is in an adpod, and the state it is moving from which would be PLAYING or PAUSED.
  • onAdPause() api event for when an ad is paused.
  • Time slider cues no longer show for non-linear ads.
  • onAdImpression contains AdTitle attribute from VAST.
  • Clicking on a VPAID ad no longer forces a pause of video playback. Pausing of video playback on click is left to the VPAID creative.
  • playAd() for googima in flash

Beta Support for Chromecast

  • Enterprise and Ads customers can cast mp4 content to a JW Player Chromecast Receiver application with a seamless integration.
  • Supports linear VAST advertising.
  • Has support for basic customization and branding of the receiver application.

Updates and Enhancements

  • onMeta returns ID3 metadata for the current fragment playing of an AAC HLS audio stream.
  • JW Player now supports AES decryption of high quality HD HLS streams. The player decrypts and plays encrypted HD content 6x faster than previously, making it possible to stream high quality protected content.
  • JW Player recognizes HLS from Azure without any additional configuration.
  • JW Player would sometimes fail to load if it could not reach the CDN where external plugins were hosted. The player will now start up even if certain plugins can’t be loaded.
  • Updated FullScreen usage to comply with deprecated browser API calls.
  • Updated the Twitter logo in the sharing plugin to comply with brand standards.

Bug Fixes

  • Fixed 608 captions becoming out of sync after a seek action.
  • Fixed iPad controls appearing after exiting playback when more than one video is played (Playlists, ads).
  • Fixed for VPAID ads taking up the entire player including the visual playlist and not just the player window.
  • Fix seek issue when clicking on time slider marker for ads.
  • Certain VAST calls were being cached for playlists. This caching no longer happens.
  • Fixed an issue where VTT captions were overflowing instead of line breaking.
  • Fixed logos were not showing when autostart:true was set.
  • Fixed an alignment issue with full screen video playback in Safari.
  • Fixed playback alignment in HLS with exact fit in full screen.
  • Fixed advertising playback in HTML5 when a VAST response had no MediaFile.
  • Fixed labels for multiple source files were not formatted correctly.
  • VPAID 1.1 tags that were having issues playing back because of a missing getVPAID method. The player will play these types of VPAID tags.

v6.8

VAST 3.0 and VMAP Support, Pro Skins, and FCC Compliance

JW Player 6.8 brings major updates to advertising with support of VAST 3.0 and VMAP specifications. Next, the player includes fully Redesigned Pro Skins, and support for FCC Compliant captions styling.

Release Date: February 6, 2014

New Features

  • VAST 3.0 Compliance, including:
    • Skippable ads
    • Ad Podding
    • Progress & skip trackers
    • Compliant error codes
    • Wrapper parsing updates
  • VMAP 1.0 compliance: able to parse ad schedules from a VMAP tag.
  • Newly designed and imagined Pro skins (8 in total).
  • FCC Captions Compliance by supporting further customization of caption styling options.
  • HTML5 video renders up to 4x faster.
  • Ability to extract ID3 metadata from RTMP streams.

Updates and Enhancements

  • Mid-roll ad markers now display on the timeslider.
  • Audio only mp3 creatives play in the JW Player.
  • Volume API calls work with VPAID ads.
  • Improved HLS Adaptive switching algorithm that provides less buffering and more viewing.
  • Customizable ad skip countdown message.
  • Volume slider thumb no longer disappears when at zero volume.
  • Improved click tracking on VAST 1.0 tags to reflect wrapped tags.
  • API updates to determine which ads are currently playing, skipped, and completed.

Bug Fixes

  • onresize() was not firing correctly in HTML5, this now fires when the player is resized.
  • Removed hd toggle that appeared in the ad playback control bar.
  • Fixed hd/cc toggle in flash mode that made it so a viewer could not tell if the HD was on or off.
  • Fixed playback issues with certain VPAID ad tags that used adparameters.
  • Fixed positioning issues with certain DFP nonlinear overlay takeover ads.
  • Fixed timeslider thumbnails that were not formatted correclty when using multiple sprites in Flash.
  • Fixed an issue with Adobe SiteCatalyst where extra information was being pinged.
  • YouTube iframe fallback on iOS 7 is now formatted correctly.