Latest Releases JW Player JW Platform iOS SDK Android SDK

v3.9

ExoPlayer upgrade

3.9.0

Release Date: November 15, 2019 (Build 81)

Update

  • Upgraded ExoPlayer dependency to version 2.10.6
  • Exposed Freewheel adBreakStart, adBreakEnd, and adViewableImpression events

Fixes

  • Fixed issue where calling pauseAd() when using Google IMA did not pause ads
  • Fixed issue where creating a new player during playback crashes the app

v3.8

Google IMA Library Update and New Friendly Ad Obstruction API

We have created a new Friendly Ad Obstruction API class that can be used to ensure ad viewability is properly calculated by the Open Measurement SDK when using Google IMA.

3.8.0

Release Date: October 16, 2019 (Build 78)

Update

  • Upgraded to Google IMA Android version 3.11.3
  • Added JWFriendlyAdObstructions API class to replace the now deprecated JWExperimentalAPI class that enables the registration of video controls that overlay the media element. Typically, these video controls are considered obstructions and reduce the viewability rate calculated by the Open Measurement SDK. More information on how to use the JWFriendlyAdObstructions API can be found here
  • Expose the adId parameter in the AdImpressionEvent for Google IMA
  • 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()

Fix

  • Fixed an issue where changing quality levels would pause playback in fullscreen if using multiple MediaSources as pseudo quality levels.

v3.7

Version 3.7.0

3.7.1

Release Date: September 25, 2019 (Build 77)

Fixes

  • Fixed issue where an IllegalStateException is thrown after a video plays 128 times or more

3.7.0

Release Date: August 16, 2019 (Build 76)

Updates

  • Exposed nextupOffsetPercentage property which allows the next up overlay to be displayed 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. When the nextupOffsetPercentage is set, it overrides nextupOffset

v3.6

Enhanced Fullscreen Handling

Our latest Android 3.6.0 release adds more flexibility to our Android SDK with enhanced fullscreen handling. The JWPlayerView now automatically detects if it is running in a RecyclerView or not and uses the appropriate handler to ensure a seamless fullscreen user experience.

3.6.0

Release Date: June 20, 2019 (Build 73)

Updates

  • Improved Android fullscreen handling for RecyclerView and non-RecyclerView configurations. The JWPlayerView will detect whether or not it is running a RecyclerView and will use the appropriate handler allowing for a seamless fullscreen user experience.
  • Upgraded SDK to use JW Player 8.8.6

Known Issue

  • Freewheel ads may restart when user enters or leaves fullscreen mode during playback. This does not cause multiple Freewheel ad impression pings to be sent and will not affect ad reporting.

v3.5

Chromecast Improvements

Enjoy a new and improved Chromecast experience in Android 3.5! We have migrated to the latest Google Cast library unleashing more customizable options. See our Chromecast documentation for implementation details.

v3.5.2

Release Date: May 21, 2019 (Build 72)

Fixes

  • Fixed an issue where developer is unable to disable fullscreen on rotation when using JWSupportFragment.
  • Fixed an issue where SharingPluginEvents are not available for use.

v3.5.1

Release Date: April 29, 2019 (Build 71)

Updates

  • Added a new "Experimental API" class that enables the registration of video controls that overlay the media element. Typically, these video controls are considered obstructions and reduce the viewability rate calculated by the Open Measurement SDK. Learn more about Google IMA’s Open Measurement SDK integration and how to register video controls overlay obstructions here.
  • Improved JW Player expired license user experience by adding an error message notification and halting player setup or playback
  • Added onWarning callback for non-fatal error debugging or troubleshooting purposes.

Fixes

  • Fixed issue where video content restarts from the beginning after ad playback if two midrolls are scheduled for the same time position.
  • Fixed issue where video is shortly displayed before IMA VMAP preroll in playlist.
  • Fixed issue where Google IMA ads play with sound when the advertising player configuration is set to mute.
  • Fixed issue where the app crashes if related items file is not found.
  • Fixed issue where players with Chromecast buttons using Fragments lose connection to a casting session.
  • Fixed issue where the title and image are not available for playlists with related videos during a casting session.
  • Fixed issue where the parent video is casted when the user selects a related video.
  • Fixed issue where audio plays on the sender app when the casting session starts and a VAST or Freewheel ad is already in progress.

Known Issue

  • Intermittently Freewheel pre-roll VPAID ads continue to load after ad completion and prevent video playback to start. This issue will be fixed in the next Android release.

v3.5.0

Release Date: Mar 14, 2019 (Build 70)

Updates

  • Upgraded SDK to use JW Player 8.7.3
  • Upgraded to Google IMA version 3.10.6 which includes IAB’s Open Measurement SDK that enables third-party viewability and verification measurement for ads served to mobile and desktop environments.
  • Migrated the Chromecast implementation to the latest Google Cast library (version 16.1.2). Please refer to the Chromecast documentation for implementation details.

Fixes

  • Fixed an issue where some VPAID ads continue playing in background after having been skipped
  • Fixed an issue where spinner shows during content playback after VPAID ad
  • Fixed issue where player controls do not automatically hide during video playback if user clicks the pause button and then the play button after the completion of a VPAID ad
  • Fixed an issue where onAdComplete event does not fire for FreeWheel VPAID ads
  • Fixed an issue where onPause event does not fire on Android 5.1 if playback is interrupted by external actions such as phone call
  • Fixed an issue where a playlist with IMA VMAP would not switch to next items automatically
  • Fixed issue that prevents localized error messages
  • Fixed an issue where onAdRequest does not fire for the first ad instance starting from the second ad pod or when inline IMA VMAP ads are used
  • Fixed an issue where ad instances within one ad pod are missing controls when configured using IMA VMAP
  • Fixed an issue where only one onAdRequest fires for an IMA VMAP ad pod with multiple instances
  • Fixed an issue where the replay button shows before IMA VMAP post-roll
  • Fixed an issue where FreeWheel ad with relative offset plays as a pre-roll for the second playlist item or after video replay
  • Fixed an issue where AdRequestEvent does not have an offset parameter when ad is manually requested during video playback
  • Fixed an issue where callbacks fire only for the first ad instance in an ad pod

v3.4

Version 3.4

v3.4.3

Feb 11, 2019 (Build 69)

Fixes

  • Fixed an issue where the player buffers infinitely if there is an ad error received for IMA pre-roll

v3.4.2

Release Date: Jan 22, 2019 (Build 68)

Updates

  • Added support for Developer license

v3.4.1

Release Date: Jan 08, 2019 (Build 67)

Fixes

  • Fixed an issue where the player would not enter fullscreen mode, if a device has Chrome 71+

v3.4.0

Release Date: Jan 03, 2019 (Build 66)

Features

  • Upgraded SDK to use JW Player 8.6.3
  • Changed base protocol to https:// to improve security of the SDK. Please ensure that your content and ads are delivered through HTTPS.
  • Seeked position was added to onSeeked() event, so that the actual position can be retrieved
  • Upgraded IMA dependency to 3.9.4

Enhancements

  • The SDK now can be used with multi-window mode. Check this page out for more details

Fixes

  • Fixed an issue where IMA pre-roll is delayed on the second playlist item
  • Fixed an issue where some VPAID ads show a white screen instead of ad content
  • Fixed an issue where casting is unstable in some cases
  • Fixed an issue where the player autostarts when onPause() lifecycle event is called
  • Fixed an issue where the player shows the first frame of a content before IMA VMAP pre-roll.
  • Fixed an issue where forced switching playlist items with VAST mid-rolls causes playlist items to be missed
  • Fixed an issue where the app crashes with casting is stopped
  • Fixed an issue where wrong captions are shown during casting
  • Fixed an issue where the player buffers infinitely if a non-buffered MP4 stream with configured FreeWheel pre-roll starts playing
  • Fixed an issue where player background is draggable as a result of a long press on it
  • Fixed an issue where no controls are present to switch on/off 608 captions
  • Fixed an issue where playback starts from the very beginning if seek action occurred for paused video with IMA preroll
  • Fixed an issue where 'xx' in custom message for FreeWheel ad is not replaced with countdown
  • Fixed an issue where the CC button appears on the first player setup when a stream has no captions defined
  • Fixed an issue where VAST ad with built-in skip offset can be skipped before the end of countdown
  • Fixed an issue where the player cannot detect when video has captions in the manifest
  • Fixed an issue where the IMA ad request disrupts video playback
  • Fixed an issue where IMA VMAP with bad tag (invalid video url) breaks playback
  • Fixed an issue where the player would report a positive duration in case of DVR streams
  • Fixed an issue where the player's UI shifts up in case of connectivity issue
  • Fixed an issue where clicking through VAST ad before its full loading makes player work in background
  • Fixed an issue where VAST VMAP has no mid-roll ad points on seek bar
  • Fixed an issue where video with configured FreeWheel ad cannot be played for the second time.

v3.3

Version 3.3

v3.3.0

Release Date: Nov 29, 2018 (Build 65)

Updates

  • Added the ability to set custom parameters to FreeWheel and IMA ad configurations, so that publishers can target their campaigns better. Please refer to the FreeWheel and IMA sections for the examples of usage.
  • Added the ability to customize Look-Ahead HLS buffer time. Please refer to this section for the example.
  • Introduced a separate version of the SDK for Amazon tablets. The ExoPlayer is replaced with its Amazon fork. It can be accessed through Maven. Please refer to the Amazon section for more details.

Fixes

  • Fixed an issue where the player fails to seek forward if seek performed during IMA ad request
  • Fixed an issue where RelatedPluginEvents.OnRelatedCloseListener cannot be imported
  • Fixed an issue where IMA preroll causes endless buffering if playback is started before an MP4 video started buffering.
  • Fixed an issue where the player overlaps cue points for IMA mid-rolls with the relative offset for playlists
  • Fixed an issue where Ad Duration displays 6## instead of actual data in case of VAST mid-roll
  • Fixed an issue where the player crashes if its size is 0 and VPAID ad is loaded
  • Fixed an issue where getDuration() and getPosition() return -.001 for live streams
  • Fixed an issue where a pre-roll shows incorrect duration in case of using startOnSeek

v3.2

Version 3.2

v3.2.2

Release Date: Oct 24, 2018 (Build 63)

Fixes

  • Fixed an issue where closed captions are partially hidden when controls are hidden
  • Fixed an issue where certain VPAID 2.0 ads persist until the 3rd playlist item
  • Fixed an issue where IMA post-roll ad causes abnormal playlist behavior
  • Fixed an issue where mid-roll ad does not play when controls are hidden or set to false
  • Fixed an issue where the player fails to seek forward if call to seek happens during IMA ad request

v3.2.1

Release Date: Sep 19, 2018 (Build 61)

Bug Fixes

  • Fixed an issue where onErrorListener() does not invoke after the player stops and idles

v3.2.0

Release Date: Sep 07, 2018 (Build 60)

Updates

  • Added pitch correction for variable rate playback
  • Added a toggle that allows developers to place the player either on a SurfaceView or TextureView. For more details please refer to our developer guide

Enhancements

  • Updated ExoPlayer to version 2.8.2

Fixes

  • Fixed a potential vulnerability in the SSL Error Handler
  • Fixed an issue where captions would not adjust position after the control bar was hidden
  • Fixed an issue where IMA mid-roll ad pods would freeze playback after a clickthrough
  • Fixed an issue where the player would end playback in 'idle' state instead of 'complete' state
  • Fixed an issue where an 'Unknown' caption label would be shown in captions menu
  • Fixed an issue where setMute(true) would not work
  • Fixed an issue where the player would infer MediaType from the original URL in the case of a 302 redirect
  • Fixed an HLS playback issue where STATE_READY wasn't called due to different instances of DefaultBandWidthMeter

v3.1

Version 3.1

v3.1.0

Release Date: Jul 22, 2018 (Build 58)

Updates

  • As another step towards parity between SDK and the web player we have added the ability set up custom playback rates for your media. Please refer to the sample in this documentation section.

Fixes

  • Fixed some memory leaks
  • Fixed an issue where finalize() wouldn't trigger when an IMA ad was skipped
  • Fixed an issue where the fullscreen button was missing during FreeWheel ad playback
  • Fixed an issue where playback controls would disappear for audio-only streams
  • Fixed an issue where the HD menu button would appear even if the stream had one quality level
  • Fixed an issue where configuration Livestream + Preroll would return null
  • Fixed an issue where playback controls would appear for FreeWheel VPAID ads
  • Fixed an issue where onAdTime() would be invoked continuously after an ad was skipped
  • Fixed an issue where the "Learn More" button and Ad Message would be delayed six seconds into the ad
  • Fixed an issue where live HLS stream would stop because of an error after some time
  • Fixed an issue where seek controls were missing for DVR-enabled live streams
  • Fixed an issue where ad breaks wouldn't be shown on the seek bar until the first one is played
  • Fixed an issue where a clickthrough action would be auto-triggered on Android 4.x devices

v3.0

Version 3.0

v3.0.0

Release Date: Jun 18, 2018 (Build 53)

We are excited to announce JW Player SDK 3.0 for Android. This release updates the SDK to JW8 and leverages its new UI & UX, optimization, and advertising enhancements to engage your audiences intelligently and monetize your content. In the coming months we will deploy more JW8 features into the JW Player SDKs for iOS & Android, so stay tuned!

Please refer to this important 3.x migration guide for Android to update your current application from version 2.x to 3.x. This guide includes important information about API changes, new features & callbacks, and will help your team with the transition process.

You may use Maven to update to SDK 3.x, or you can download the SDK 3 packages and new 3.x license keys from the Publish -> Tools section of your JW Player Dashboard. Please note that version 3 of the SDKs are available to our Enterprise edition customers, and require new license keys because 2.x license keys will not work.

Updates

  • Support for new advertising rules, including timeBetweenAds, startOnSeek, frequency, and startOn. Please refer to our Ad Rules Reference for details on how to use them.

v2.9

Version 2.9.0

v2.9.2

Release Date: Aug 14, 2018 (Build 2)

Fixes

  • Fixed an issue where MediaType wouldn't be recognized in case of a redirect
  • Fixed an issue where the player would freeze due to ad timeout errors from the IMA SDK
  • Fixed an issue where the player would sometimes crash when loading the next playlist item
  • Fixed an issue where OnAdError wouldn't fire with VMAP ads
  • Fixed an issue where VPAID controls were not appearing

v2.9.1

Release Date: Jun 28, 2018 (Build 1)

Updates

Fixes

  • Fixed an issue where the HD menu button would appear even if the stream had one quality level
  • Fixed an issue where the fullscreen button was missing during FreeWheel ad playback
  • Fixed an issue where playback controls would appear for FreeWheel VPAID ads
  • Fixed an issue where playback controls would disappear for audio-only streams
  • Fixed an issue where "Live Broadcasting" message was displayed while static video was buffering upon replay
  • Fixed an issue where seek controls were missing for DVR-enabled live streams
  • Fixed some memory leaks
  • Fixed an issue where finalize() wouldn't trigger when an IMA ad was skipped
  • Fixed an issue where onAdTime() would be invoked continuously after an ad was skipped
  • Fixed an issue where onError() would be erroneously invoked when the player was setting up
  • Fixed an issue where the "Learn More" button and Ad Message would be delayed six seconds into the ad
  • Fixed an issue where a clickthrough action would be auto-triggered on Android 4.x devices

v2.9.0

Release Date: May 29, 2018 (Build 47)

Updates

  • We have integrated support for the FreeWheel ad-serving platform. Configure your FreeWheel Ad Manager settings in our new FreeWheel ad client to serve pre-rolls and mid-rolls with other features such as ad-skip and ad-click. Please refer to the new FreeWheel advertising section in our developer guide documentation to get started.

v2.8

Version 2.8.0

v2.8.3

May 19, 2018 (Build 46)

Fixes

  • Fixed an issue where IMA midrolls would play immediately after a preroll

v2.8.2

Release Date: April 24, 2018 (Build 44)

Fixes

  • Fixed an issue where HLS live streams didn't play if stream type was absent in the URL

v2.8.1

Release Date: Mar 20, 2018 (Build 43)

Updates

  • Updated Google IMA library to version 3.8.2 and Play Services to 11.8.0. Please don't forget to update the dependencies in your project if you import the AAR file directly instead of using Maven.

Fixes

  • Fixed an IMA ad client issue where the app would crash when loading the second playlist item if using a VMAP
  • Fixed an issue where calling getPosition() after an ad completed (media resumed), would return the ad position instead of the media position.
  • Fixed an issue where the app would crash on devices using API Level 18 and lower
  • Fixed an issue that blocked custom headers from being set correctly

v2.8.0

Release Date: Feb 22, 2018 (Build 42)

Updates

  • Updating from ExoPlayer v1 to v2. Please refer to the Migration Guide for details and instructions to update to this version.