Skip to content

Releases: jwplayer/jwplayer-sdk-documentation

New Features

10 Jun 15:53
c155d76
Compare
Choose a tag to compare

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.

3.0.0

Release Date: Jun 18, 2018 (Build 53)

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.

Version 2.9.0

10 Jun 15:23
c155d76
Compare
Choose a tag to compare

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

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

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.

Version 2.8.0

10 Jun 15:21
c155d76
Compare
Choose a tag to compare

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.

New WebView Handling

10 Jun 17:55
90ca292
Compare
Choose a tag to compare

We have migrated to WKWebView, the latest iOS webkit, which fulfills Apple’s webview requirements. In the process of this migration, we implemented structural changes that have improved overall playback performance as well.

v3.5.1

Release Date: May 30, 2019 (Build 93)

Fixes

  • Fixed an offline playback issue where only the first playlist item successfully plays in locally stored playlists and all subsequent playlist items fail to play.
  • Fixed a lockscreen issue where the play/pause buttons in the lockscreen control center flicker for less than 1 second when pressed when the device is locked.
  • Fixed an issue where sometimes when the device is locked, the elapsed playback time does not display in the lockscreen control center time slider.

Known Issue

  • During Freewheel ad playback, user cannot use play or pause in lockscreen control center when device is locked.

v3.5.0

Release Date: May 14, 2019 (Build 92)

Update

Fixes

  • Fixed an issue where lockscreen controls do not appear when the device is locked during playback.
  • Fixed an issue where VAST ads don't redirect to the advertisment's link when clicked.

Known Issue

  • When device is locked, the play/pause buttons in the lockscreen control center flickers for less than 1 second when pressed. This will be fixed in a later iOS release.
  • Sometimes when the device is locked, the elapsed playback time does not display in the lockscreen control center time slider. This will be fixed in a later iOS release.

Version 2.7.0

06 Jun 21:19
90ca292
Compare
Choose a tag to compare

Version 2.7.13

Feb 15, 2018 (Build 38)

Fixes

  • Fixed an issue where the app would crash if exiting the activity during IMA setup
  • Fixed a typo in the naming of removeOnAdScheduleListener method. Please update your code accordingly when updating to this version

Version 2.7.12

Release Date: Feb 06, 2018 (Build 37)

Fixes

  • Fixed an issue where the two-letter language codes specified in the HLS manifest for audio tracks were not being displayed correctly

Version 2.7.11

Release Date: Jan 23, 2018 (Build 33)

Updates

  • Added synchronization and improved thread handling when a player is created and destroyed in rapid succession

Fixes

  • Fixed an issue where the app would crash for multitrack live streams

Version 2.7.10 (Build 32 - Jan 09, 2018)

Fixes

  • Fixed an issue where an IMA VMAP ad error would autostart the player

Version 2.7.9

Release Date: Dec 11, 2017 (Build 31)

Fixes

  • Fixed an issue where livestream with large DVR windows takes too long to load
  • Fixed an issue where setControls would not persist after a call to load()
  • Fixed an issue where valid VMAP schedules would block content playback when using Google IMA

Version 2.7.8

Release Date: Nov 17, 2017 (Build 28)

Fixes

  • Fixed an issue where navigating from one activity to a new activity (using a different player), then returning back to the first activity would freeze the player
  • Fixed an issue where the two letter language code in the manifest of the AudioTrack objects was not being returned
  • Fixed an issue where the timeSliderAbove UI of the controlbar would not stay consistent when exiting fullscreen mode
  • Fixed an issue where finishing an activity from onSetupError could crash the app. Equivalent to pressing back when the player encountered a setup error
  • Fixed an issue where the HD Button was not visible even though multiple sources had been configured
  • Fixed an issue where backgrounding the app caused in-manifest captions to appear twice in the caption menu
  • Fixed an issue where Quality and AudioTrack selectors would disappear in fullscreen
  • Fixed an issue where changing the visual quality from a paused state after device lock could crash the app
  • Fixed an issue Where programmatically instantiating another JWPlayerView could break the controls and other Web resources of the first player

Version 2.7.7

Release Date: Oct 09, 2017 (Build 26)

Updates

  • HTTP Headers can now be updated midstream without reloading the player. Useful for updating expired AES key tokens passed in the HTTP Authorization request header without interrupting AES Encrypted HLS playback

Fixes

  • Fixed an issue where the player would hang if the IMA pre-roll was empty
  • Fixed an issue where onAdError would get triggered repeatedly if an IMA mid-roll fails
  • Fixed an issue where HTTP Headers were missing from audio chunk requests

Version 2.7.6

Release Date: Sep 15, 2017 (Build 24)

Features

  • onAdImpression: now includes click-through URL parameter

Updates

  • Upgraded SDK to use JW Player 7.12.6

Fixes

  • Fixed a regression issue where defaultImpression for VAST did not fire
  • Fixed a regression issue with onAdImpression firing in VAST ads

Version 2.7.5

Release Date: Jul 21, 2017 (Build 23)

Updates

  • Upgraded SDK to use JW Player 7.12.1

Fixes

  • Fixed an issue where setting up the player with IMA ads a number of times consecutively, would eventually cause the player to crash

Version 2.7.4

Release Date: Jun 23, 2017 (Build 22)

Updates

  • Upgraded SDK to use JW Player 7.11.3

Fixes

  • Fixed an issue where onControlBarVisible callback was not firing when in paused state and display was being toggled
  • Fixed an issue where double tapping the player while playing an ad would cause an exception

Version 2.7.3

Release Date: May 08, 2017 (Build 19)

Fixes

  • Fixed an issue where quality levels were sometimes available before jwplayer.js was in a playing state resulting in the HD button not appearing
  • Fixed an issue where OnControlbarVisibilityChanged fired when the player was in a buffering state
  • Fixed an issue where an HLS VOD duration displayed as live following an IMA ad
  • Fixed an issue where onAdError was not thrown when loading an ad with 0 duration, resulting in an indefinite loading state
  • Fixed an issue where getQualityLevels() and onLevels() callbacks were not consistently returning data
  • Fixed an issue where timeSliderAbove was not behaving correctly due to inconsistent casing

Version 2.7.2

Release Date: Apr 27, 2017 (Build 18)

Fixes

  • Fixed an issue where playback was broken in Android 4.x devices. OnControlBarVisibilityListener will not be supported at this time on any 4.x Android version that doesn't support MutationObserver.

Version 2.7.1

Release Date: Apr 10, 2017 (Build 16)

Features

  • New onAdSchedule callback for the VAST ad client that provides detailed information of a VMAP ad schedule.

Enhancements

  • Upgraded SDK to use JW Player 7.10.4
  • onAdImpression now includes VMAP ad schedule details

Fixes

  • Fixed an issue where VMAP breakstart/breakend callbacks would not fire when no ad source was present
  • Fixed an issue where setting autostart to true was not enabling autostart
  • Fixed an issue where the first frame of media would play for a split-second before the start of an IMA pre-roll ad
  • Fixed an issue where the player would become unresponsive after seeking to the end and letting the media complete.
  • Fixed an issue where an improperly formed IMA ad would cause a crash instead of throwing an error.

v2.7.0

Release Date: Feb 23, 2017 (Build 15)

New Features

  • Added support for "preload" where media is preloaded after the player is setup but before the play button is pressed. This allows JW Player to fetch media information prior to playback and enhances perceived performance by users
  • Added onControlBarVisible callback that indicates when the player control bar's visibility changes. Sync your custom UI elements to display & hide with the player control bar
  • Added localization of Casting error messages

Fixes

  • Fixed an issue where double-clicking on an ad with a click-through URL would cause a crash

Enhancements

  • Upgraded to Cast Companion Library 2.9.1

Version 2.6.0

06 Jun 14:00
90ca292
Compare
Choose a tag to compare

v2.6.3

Release Date: Dec 09, 2016 (Build 14)

New Features

  • Various error message strings can now be localized to a preferred language
  • Added API methods to pause and resume IMA ad playback

Fixes

  • Improved memory consistency in various classes, this should resolve intermittent NullPointerExceptions
  • Fixed a NullPointerException when sending player error analytics
  • Fixed an issue where JWPlayerView.getPlaylist() would return null when JWPlayerView.getConfig().getPlaylist() would return the correct playlist before setup
  • Fixed an app crash when tyring to cast a stream with WebVTT thumbnails
  • Fixed the subtitle button showing up for streams that did not contain any cues
  • Fixed an exception that would be thrown when using a timecode (00:30:00.000) with the IMA ad client
  • Fixed a NullPointerException in the toJSON() method of Ad Source

Enhancements

  • The SDK now logs an error message when it encounters an invalid SSL certificate, for example when requesting a VAST creative.

v2.6.2

Release Date: Jan 27, 2017 (Build 12)

Enhancements

  • Upgraded SDK to use JW Player 7.8.7

v2.6.1

Release Date: Dec 21, 2016 (Build 11)

Fixes

  • Fixed an issue where the SDK would crash on Android 7.1.1 if the Chromecast module was not added as a dependency
  • Fixed an issue where ImaAdvertising or ImaVMAPAdvertising instances without an associated ImaSdkSettings instance would cause a crash

v2.6.0

Release Date: Dec 09, 2016 (Build 7)

Important Note!

The JW Player SDK for Android is now distributed as several modules, to reduce the size of your application you will only need to import the modules you are using in your project. Please note the updated configuration instructions here:

You will also need to change the xmlns entry in your layout XMLs if you are using our custom attributes, as described here

New Features

  • Modularized JW SDK: choose only the modules you want and leave the rest. Optimize the JW SDK to your needs
  • Added Google IMA ad UI text localization support to display your preferred language
  • VPAID 2.0 ad support in ad pods using the VAST client
  • Added onAdCompanion() callback for VAST client that returns companion ad data

Enhancements

  • Upgraded SDK to use JW Player 7.8
  • General improvements to SDK player UI
  • Upgraded Google IMA version to 3.4.0

Fixes

  • Fixed an issue where the WindowOpenHandler interface used by setWindowOpenHandler() was obfuscated
  • Fixed a race condition that caused the playAd() API call to malfunction when called shortly after playback has begun
  • Fixed an issue where 302 redirects would fail when an HttpResponseCache was being used

Version 2.5.0

06 Jun 13:56
90ca292
Compare
Choose a tag to compare

v2.5.3

Release Date: Build 164 (Nov 15, 2016)

Fixes

  • Fixed an issue where onAdRequest(AdRequestEvent) would not fire on calls to playAd() for IMA

Enhancements

  • Improved the efficiency of the SDKs initial setup process
  • Replaced dependency on CastCompanionLibrary submodule with jCenter dependency
  • Upgraded Chromecast to support Google Cast Companion Library version 2.8.4

v2.5.2

Release Date: Oct 24, 2016 (Build 163)

Fixes

  • Fixed an issue where custom HTTP Headers were missing after media resumed after playing a Google IMA ad
  • Fixed an issue where ad events were not firing when calling playAd()
  • Fixed an issue where copying a Captions object would throw a null pointer exception if isDefault was not defined
  • Fixed an issue where configuring setBackgroundAudio(true), during onCreate() would result in a null pointer exception
  • Addressed an issue where the media would freeze when background audio was enabled and the user would lock, then unlock the screen
  • Fixed an issue where onFirstFrame() reported the correct time-to-first-frame (TtFF) except when an IMA preroll was scheduled

v2.5.1

Release Date: Oct 05, 2016 (Build 162)

Fixes

  • Fixed an issue where IMA Midrolls were not playing when scheduled through an AdSchedule

v2.5.0

Release Date: Sep 14, 2016 ((Build 161)

New Features

  • Added support for Related Feeds player setup options
  • Added support for custom HTTP headers for video streams (including signed cookies or tokens)
  • onAdError message for both VAST and IMA mode now specifies if the ad was unreachable (404) or if the ad tag was empty and can differentiate between the two
  • PlayAd() is now supported for AdSource.IMA
  • Added JWPlayerView.setLicenseKey() to support the ability to set the player license key programmatically instead of in the manifest
  • Added PlaylistItem.mediaId to allow developers to specify the JW Media ID for an externally hosted media file in the JW Platform in order to track analytics for that video

Enhancements

  • Removed READ_EXTERNAL_STORAGE permission from the SDK manifest. Developers must add this themselves to support local file playback
  • Added OnErrorListenerV2, improved version of onError which includes the Exception object that was thrown along with the error message
  • Upgraded IMA version to 3.3.2
  • Addressed an issue where Android 4.3 does not support WOFF fonts, which leads to missing player control icons so we now ship TTF fonts
  • New and updated callbacks events (eg. onBufferChange) for parity with HTML5 player
  • Added WindowOpenHandler in JWPlayerView to support the ability to handle an Ad Clickthru event with the ad's clickthru URL

Fixes

  • Fixed a nullpointer issue when killing and restarting the app while connected to Chromecast
  • Fixed an issue in Android 4.1 and 4.3 where if a landscape layout is set, the application would crash on orientation changes from rotating the device.
  • Fixed an issue where PlayerConfig.fromJson() would not populate VmapAdvertising objects
  • Fixed an issue where the SDK would crash when the user pressed back during IMA ad playback

Version 2.4

05 Jun 21:59
90ca292
Compare
Choose a tag to compare

v2.4.3

Release Date: Aug 23, 2016 (Build 160)

Bug Fixes

  • Fixed an issue with HLS in-manifest subtitle tracks where the "Name" label was not being displayed properly

v.2.4.2

Release Date: Aug 17, 2016 (Build 159)

Fixes

  • Fixed an issue where unsupported/incompatible ad creative file types were not being ignored (e.g. Flash ads)
  • Fixed an issue where a selected audio track didn't persist after an ad break
  • Fixed an issue where player skins defaulted to Seven skin colors unless explicitly overidden
  • Fixed an issue where onAdTime() for the Google IMA ad client was not reported in milliseconds and firing frequency was low
  • Fixed an issue where midroll ads were requested right after the previous ad had finished rather than at the time of the next ad break

v2.4.1

Release Date: Jul 13, 2016 (Build 158)

Fixes

  • Fixed an IMA issue where a mid-roll would play after the post-roll and sometimes end in a black screen
  • Fixed an issue with setMute() where it wasn't in effect prior to playback and would unmute during ads
  • Fixed an issue where ad clickthrough would not trigger and onAdClick() would not fire if controls were set to false
  • Fixed an issue where seek() could not be called before playback began
  • Fixed an issue where locally hosted poster images wouldn't load
  • Fixed an issue where PlayerConfig.setFile() would not work with locally hosted videos
  • Fixed an issue where JWPlayerView.getPosition() would not be up-to-date when onSeeked() is fired

v2.4.0

Release Date: Jun 29, 2016 (Build 156)

New Features

  • Free, Premium, and Platinum license editions are now supported
  • Ad impression limits are now checked when ad playback is requested in order to prevent ad impression overage charges

Fixes

  • Fixed a bug where the captions button would not show up on some streams with 608 captions

Version 2.3

05 Jun 21:58
90ca292
Compare
Choose a tag to compare

Many new features.

v2.3.0

Release Date: Jun 20, 2016 (Build 155)

New Features

  • VPAID 2.0 support
  • Widevine DRM decryption
  • HLS multiple track audio support
  • Player stretching option support (uniform, fill, exact fit, none)
  • Mute/unmute player instance
  • Start playback of a specific playlist item - playlistItem(int index)
  • New onVisualQuality() callback event fired when visual quality changes

Fixes

  • Fixed an issue where logo position and logo margin were not set using PlayerConfig
  • Fixed an issue where skin enum option was missing from PlayerConfig builder
  • Fixed an inconsistency where player.seek() parameter was accepting an int value instead of long

Version 2.2

05 Jun 21:55
90ca292
Compare
Choose a tag to compare

v2.2.2

Release Date: May 10, 2016 (Build 150)

Fixes

  • Fixed an issue where the SDK would crash if the containing Activity finished during an IMA ad request
  • Fixed an issue where IMA midrolls would not play if a postroll was defined
  • Fixed an issue where discontinuities would result in a frozen or black screen

v2.2.1

Release Date: Apr 25, 2016 (Build 149)

New Features

  • Audio Playback in Background
  • Full-Playlist IMA Ad Schedules
  • Added cookie support, including ability to play HLS streams using Akamai's SecureHD HD Token Authorization

Fixes

  • Fixed an issue where IMA prerolls wouldn't play during a live stream
  • Fixed an issue where HLS streams would show up as DVR after an IMA ad played
  • Fixed an issue where the SDK would crash after a postroll if an IMA ad had been defined with a percentage offset
  • Fixed an issue where pressing reply after an bad IMA (e.g. empty VAST) would result in a doubled UI
  • Fixed an issue where seeking ahead past midroll ads would force all ads to play instead of the last one
  • Fixed an issue where the player would not initialize when it had been instantiated with a PlayerConfig containing a playlist
  • Fixed an issue where HLS streams that did not contain 'm3u8' in the URL would not play
  • Fixed an issue where IMA VMAP postrolls would not play in a playlist except for the last playlist item

v2.2.0

Release Date: Apr 08, 2016 (Build 148)

New Features

  • DVR for Live Streams in HLS
  • CEA-608 Captions in HLS
  • In-Manifest WebVTT subtitles in HLS & MPEG-DASH
  • VAST 3.0 Non-Linear Ads

Fixes

  • Fixed an issue where the poster image in audio-only playlists did not remain on screen
  • Fixed an issue related to loading new media during an IMA ad break
  • Fixed an issue where finishing an activity before initialization is done results in a phantom player playing in background.
  • Fixed an issue where controls(false) still allowed the loading spinner to show and the captions to shift position for a controlbar that is not there.
  • Fixed an issue where the replay button would rotate after playing an IMA postroll.