Latest Releases JW Player JW Platform iOS SDK Android SDK


FreeWheel improvements and more!

iOS 3.10 is packed with some great updates! We have exposed HLS #EXT-X-DATERANGE tags that can be used to indicate when there are temporal breaks in a live stream—great for ad stitching. Speaking of advertising, we upgraded and made improvements to our FreeWheel ad client. And those who are looking for more customization, you can now add and remove buttons with custom callbacks in your iOS app.


Release Date: February 20, 2020 (Build 112)


  • Fixed an issue where players using a JWAdRule.timeBetweenAds configuration with the VAST ad client will oscillate between player states when there is an empty VMAP mid-roll slot


Release Date: February 6, 2020 (Build 111)


  • Exposed additional date-range metadata items that might be included in an HLS #EXT-X-DATERANGE tag


  • Fixed an issue where the playerView disappears when switching to fullscreen mode in projects that are supporting multiple windows
  • Fixed an issue where serializing specific date-range metadata to JSON would cause a crash
  • Fixed an issue where players that have the license key entered programmatically crash when their app is upgraded from iOS SDK version 3.8 to a newer version


Release Date: January 30, 2020 (Build 110)


  • Extended FreeWheel ad support to include versions 6.15.0 - 6.32.0
  • Added support for playlist-level configuration of FreeWheel where the JWFreewheelConfig can now be nested within an individual JWPlaylistItem. Use case descriptions and a code sample can be found here
  • Added ability for pauseAd method in JWPlayerController to be called when using the FreeWheel and Google IMA ad clients
  • Added addButton() and removeButton() API methods allowing developers the ability to add or remove custom player buttons to the player control bar. When new buttons are added via the addButton() API method, they can call back to developers' custom native code
  • Added getPlaylistItem() and getPlaylist() API methods allowing developers to get the current playlist or playlist item from a player instance
  • Added date-range metadata type found in JWMetaEventmetadata). The date-range metadata event fires when playback enters the section of an HLS stream tagged with #EXT-X-DATERANGE. Note: #EXT-X-DATERANGE support requires iOS 9.3+


  • Fixed an issue where default controls are misplaced when the playerView intersects the notch in iPhone X+ devices
  • Fixed an issue where the player does not recover when a Google IMA exclusion rule is in the ad pre-roll slot
  • Fixed an issue where tapping the screen while an ad is buffering causes the player UI to stop responding until the ad creative timeout fires and the main content resumes playback
  • Fixed an issue where calling pause() in onBuffer does not pause the playback
  • Fixed an issue where some VPAID ad tags return an "invalid XML" error