Join the mailing list and receive release announcements for the Native SDKs:
- Sign up to the Brightcove Native Player SDKs mailing list
- The posts in the channel are for historical purposes. Signing up will add you to the email list for SDK releases.
Current release
Version 9.2.2
04 Oct 2024
SDK Changes:
- Fixed a problem where the video frames were not displayed after the SDK switched from playing CSAI ads.
Previous releases
Version 9.2.1
19 Sep 2024
SDK Changes:
- Fixes an issue where the current position view is not properly updated when manually seeking.
- Addresses an unexpected view stacking behavior that could occur if a caption cue had less than 250ms of its remaining duration in the current second of playback.
- Fixes a problem where Generic Stream Concurrency is not completely stopped once the setStreamConcurrencyEnabled(false) is called.
- Two new methods were added to enable and disable stream concurrency: enableStreamConcurrency() or disableStreamConcurrency(). Side note, stream concurrency cannot be initiated after the video started to play.
- Deprecated the method setStreamConcurrencyEnabled(boolean) in the BaseVideoView class. Instead use enableStreamConcurrency() or disableStreamConcurrency() from the same class.
SSAI Plugin Changes:
- Fixes a problem where seeking within the player's progress bar would lead to an unexpected replay of midroll ads.
- Fixes a crash while using custom controllers and SSAI.
- Fixes a formatting exception when the Tracking Events return an invalid URI.
Version 9.2.0
07 Aug 2024
SDK Changes:
- Fixes a problem where caption language re-selection was not working after the initial selection and after SSAI ads.
- Fixes an issue where seeking to the extreme end of a player could prevent a video's captions from being displayed when replaying the video.
ExoPlayer Changes:
- Fixes an issue where some live streams could not be played.
SSAI Plugin Changes:
- Builds the CAPTION_SOURCES Video Object from the TimedTextURL Extensions if they are present in the Brightcove VMAP.
Version 9.1.0
18 Jul 2024
SDK Changes:
- Added support for the Brightcove Interactivity functionality. Please check the official documentation for more details.
Version 9.0.0
01 Jul 2024
New plugin release:
- The new Playback-Notification plugin helps in background playback. See the Android: Background Playback documentation for more details.
SDK Changes:
- Address a policy change in the Google Play Store regarding foreground services usage. For more details, read the Android SDK v9.0 Migration Guide documentation.
- Adding support for the use of bumper videos with the SDK.
Version 8.4.4
12 Jun 2024
SDK Changes:
- Fixes a regression where enabling captions from the Settings screen would fail.
- Adds support for the EBU+TTML caption type.
Version 8.4.3
22 May 2024
SDK Changes:
- Fix a regression where only one caption was displayed from several that have the same timestamp.
Version 8.4.2
13 May 2024
SDK Changes:
- Fix for a regression where descriptive audio track items for DASH video were not displayed as expected in the Audio Track Selection menu
- Set custom read and connect timeouts for catalog requests through the HttpRequestConfig class
- Implement better handling of exceptions in Generic Stream Concurrency and in the PlaybackNotification
- Fix for a regression when disabling captions from the Settings screen fails
- Support for display MP4-Encapsulated VTT captions.
IMA Changes:
- Fix for a crash when tapping back button or closing the screen in ad playback
- Improvements to Ad Insights reporting for ad errors, audible duration (for muted and partially-muted ads) and video resumption after mid-roll ad pods
- Upgrade the IMA library to v3.33.0. It fixes the issue where ad clickthroughs using the Learn more button and the companion ad will not open a new page in Android API version 30 and higher.
SSAI Changes:
- Fix for a regression where a mid-roll is repeatedly played for every seek after it was crossed.
Version 8.4.1
05 February 2024
SDK Changes:
- Changed the startup flag on the MediaPlaybackService to START_STICKY to improve foreground service performance.
ExoPlayer Changes:
- Fixed an issue with seeking and navigation in the Brightcove notification.
Version 8.4.0
17 January 2024
SDK Changes:
- Support for Android 14 is added with this version of the Brightcove Native SDK for Android.
- With this version of the Brightcove Native SDK for Android, Android OS versions 6 and 7 are moved to Passive Support. Please refer to the Android SDK support pages for more information on support levels.
- Adds support functionality that allows users to zoom in and out of a video while it is playing.
- Fixes an issue where the player was not destroyed when a fragment was destroyed.
- Remove unnecessary code that could cause a potential bug in the LoadImageTask class.
ExoPlayer Changes:
- Adds support for overriding ExoPlayer's default connect and read timeout settings.
Freewheel Plugin Changes:
- Fixes an issue that could produce a crash during ad playback.
IMA Plugin Changes:
- The IMA plugin now offers a function to clear some internal and external objects used by the plugin.
OfflinePlayback Changes:
- Improved download queue functionality now gracefully handles individual download failures, ensuring uninterrupted progression of remaining downloads.
SSAI Plugin Changes:
- Fixes an issue where ad stitched positions were returned for ad and linear start events with incorrect values.
Version 8.3.0
08 December 2023
SDK Changes:
- Fixes a regression issue where the Fast Backward button showed the wrong icon on TV devices.
- Fixes an issue where the fast-forward button could not be set with a custom icon.
- Fixes a crash issue on Android 14 devices with BroadcastReceiver and Foreground Service.
- Video.findHighQualitySource now favors HTTPS, ensuring safer downloads and ClearText restriction compliance.
- Prioritize HTTPS URLs, enhancing security and compatibility in restricted ClearText environments.
ExoPlayer Changes:
- The Brightcove Native Player SDK for Android now supports ExoPlayer 2.19.1. Please refer to the ExoPlayer release notes for information on ExoPlayer changes since 2.17.1, particularly for TrackSelectionOverride changes made in ExoPlayer 2.18.0.
- Fixes an issue where the Play and Pause button on Android TV remotes did not work as expected.
- Fixes an issue where the notification shows the title instead of the description.
Cast Plugin Changes:
- The Cast plugin is updated to use the latest Brightcove Cast receiver app.
IMA Plugin Changes:
- The Google IMA SDK dependency has been upgraded to 3.31.0. This upgrade fixes a crash in Android 14 related to this library.
Offline Playback Changes:
- Fixes an issue where a clear text source could be selected by the OfflineCatalog, and improves source selection.
- Fixes incorrect error handling when downloading offline videos.
- Enhanced error handling in DownloadManager to prevent stalls and improve notification management.
SSAI Plugin Changes:
- Included ProGuard consumer files to retain essential IAB parser classes when minification is enabled.
Version 8.2.3
27 September 2023
ExoPlayer 2.17.1
SDK Changes:
- Adds support for Player ID, Player Name, and Application ID Analytics fields. Note that these fields are optional; if a value is not supplied, an empty or placeholder value will not be sent.
- Improves null checking when adding videos or playlists to a player.
- Fixes an issue where a preroll ad was played twice when added using cue points.
- Fixes an issue with customizing the Captions, Rewind, Fast Forward, and Audio Tracks buttons.
Offline Plugin Changes:
- Selects https source URL by default for offline playback.
SSAI Plugin Changes:
- Fixes an issue with the Play/Pause button state after seeking through midroll ads.
- Improves null checking when adding videos or playlists to a player.
- Fixes an issue where a NullPointerException would be thrown when using the SSAIComponent class constructor: SSAIComponent(@NonNull Context context, @NonNull BaseVideoView baseVideoView, int connectTimeout, int readTimeout)
- Fixes an issue where the adDataReady event was emitted after adding the video to the view. This fix restores the order of emitted events in previous SDK versions.
- Fixes an issue with rewind behavior when the player’s playhead position is 0.
Version 8.2.2
25 August 2023
ExoPlayer 2.17.1
SSAI Plugin Changes:
- Fixes an issue where midroll ads would replay after seeking backwards through content
Version 8.2.1
15 August 2023
ExoPlayer 2.17.1
SDK Changes:
- Improvements and minor bug fixes to Ad Insights.
- Fix playback issues for Dolby Atmos media on unsupported devices. Also emit an error event when a video with only Atmos-capable audio is attempted to load on a device without Atmos decoder support.
- Fixes an issue where captions languages could be emitted with an empty language list for SSAI videos.
ExoPlayer Changes
- Fixes an issue where destroying the player on garbage-collecting the playback Object could result in a crash on TV platforms.
Version 8.2.0
21 July 2023
ExoPlayer 2.17.1
SDK Changes:
- Improvements to handling captions; fix formatted offline caption playback.
- Use the language label set in Brightcove Video Cloud when showing the dialog for available captions.
- Fix a NullPointerException when playback is using Generic Stream Concurrency and the device goes offline.
- Adds support for Brightcove Ad Insights analytics
Version 8.1.1
12 May 2023
ExoPlayer 2.17.1
SDK Changes:
- Changes the datatype of the Video.Fields.ODRM_PLAYBACK_ALLOWED Video property to return a Boolean. To access this property, please cast it to Boolean.
ExoPlayer Changes:
- Fixes an issue where the COMPLETED event could be emitted on clearing a video from a playlist without completing playback.
Offline Playback Plugin Changes:
- Fixes an issue where CuePoints were not being configured for offline videos due to a ClassCastException.
- Fixes an issue where Poster Images were not being configured for offline videos due to a ClassCastException.
- Adds support for Custom Fields in the OfflineVideo properties map
- Adds support for Tags in the OfflineVideo properties map
Version 8.1.0
28 March 2023
ExoPlayer 2.17.1
SDK Changes:
- Change the data type of the Analytics
rebuffering_seconds
parameter from an integer to a float - With the
rebuffering_seconds
value changed to a float, the Analyticsrebuffering_count
will be incremented forrebuffering_seconds
values of less than one second - Fixes an issue where rebuffering at player startup time was reported to Analytics as a player stall
- Fixes an issue where a player would continue playing automatically after being paused when in a stalled state
- Adds support for tags in the Video object
IMA Plugin Changes:
- Adds support for SpringServe macros to the IMA Plugin for the Brightcove Native SDK for Android
SSAI Plugin Changes:
- Adds Open Measurement (OM) SDK support to the SSAI Plugin for Brightcove Native SDK for Android
- Fixes post-roll analytic events when the VMAP duration is greater than the video's actual duration
Version 8.0.1
15 March 2023
ExoPlayer 2.17.1
SDK Changes:
- Fixes an issue where transitions between videos in playlists could stretch the video display outside of the original bounds of the player display.
- Fixes an issue where transitioning to Player-In-Player (PiP) mode while the video was playing would load the PiP player in paused mode.
- Fixes an issue that would cause the
ShutterViewController
to hide between video loading and ad playback. - Fixes an issue that would prevent the
ShutterViewController
from hiding on detection of an ad error.
ExoPlayer Changes:
- Fixes an issue in
ExoMediaPlayback
where transitions between videos in playlists could prevent pre-roll ads from playing on subsequent videos.
SSAI Plugin Changes:
- Adds support for setting custom read and connect timeouts in the
SSAIComponent
andSSAIVideoProcessor
.
Version 8.0.0
11 January 2023
ExoPlayer 2.17.1
This major release of the Brightcove Native SDK for Android contains significant behavioral changes. For details, see the The Native SDK for Android Release 8.0.0 document.
SDK Changes:
- With this version of the Brightcove Native SDK for Android,foreground and background playback of audio-only content is supported.
- The
MediaPlayback
interface abstracts playback from theVideoView
to support continuous playback of audio-only media. TheMediaPlayback
communicates playback state to the notification and theVideoView
. - Support for an ongoing foreground service for continuous playback.
- Improves loading playlists and pre-buffering media for a smoother end-user experience.
ExoPlayer Changes:
- Added a media-style notification with customizable playback controls from the notification shade and lockscreen. This
BrightcoveNotification
class connects playback with a foreground service.
Version 7.1.4
16 November 2022
ExoPlayer 2.17.1
Cast Plugin Changes:
- Adds support for the Brightcove Cast Receiver emeHeaders
CustomData
object.
Version 7.1.3
27 October 2022
ExoPlayer 2.17.1
SDK Changes:
- Fixes an issue where for some playback analytics metrics requests, a
video_duration
request parameter would not be included. - Fixes an issue with support for Live HLSe with License Keys Protection.
Version 7.1.2
30 September 2022
ExoPlayer 2.17.1
SDK Changes:
- Added support for Dolby Atmos audio. Since not all Android devices support playback with this format, it is recommended that content be transcoded to produce stereo as well as Dolby Atmos audio variants. For details, see the Dolby Atmos Audio document.
ExoPlayer Changes:
- Added support for Dub and Description DASH role values.
Version 7.1.1
1 September 2022
ExoPlayer 2.17.1
SDK Changes:
- Fixes a performance issue that could occur when loading larger size closed captions.
ExoPlayer Changes:
- Adds setter and getter methods for the
allowChunklessPreparation
property ExoPlayer'sHLSMediaSource.Factory
. With Exoplayer 2.17.0, the default value of this property was changed fromfalse
totrue
, which had the unintended side effect of turning off display of 608/708 captions if they were present in HLS content. If your HLS content includes 608/708 captions, use theExoPlayerVideoDisplayComponent
'ssetAllowHlsChunklessPreparation(false)
to disable HLS chunkless preparation in ExoPlayer'sHLSMediaSource.Factory
, which will restore display of 608/708 captions.
Version 7.1.0
22 August 2022
ExoPlayer 2.17.1
SDK Changes:
- Adds support for an encryption Source property with HLSe Live streams.
- Improves response handling for Generic Stream Concurrency connections.
- Fixes an issue where a null or missing duration returned for a remote
live video created in the VideoCloud Studio, would result in a
VideoParserException
. - Adds a Generic Stream Concurrency (GSC) EventType,
GSC_HEARTBEAT_STOPPED
.
ExoPlayer Changes:
- Provides setter and getter methods in
ExoPlayerVideoDisplayComponent
for theDefaultRenderersFactory
. - In the
TrackSelectorHelper
class,applySelectionOverride(int, SelectionOverrideCreator)
is deprecated. Please useapplyTrackSelectionOverrides(int, TrackSelectionOverrideCreator)
instead. - Fixes the callbacks to retrieve metadata of the media during playback.
SSAI Plugin Changes:
- This release of the Brightcove Native SDK for Android is the final release to use the Brightcove IAB Android Library as an external dependency. Future SDK releases will include the IAB Android Library as an integration in the SSAI plugin.
- Fixes a parsing issue with
BrightcoveDebug
elements that have self-closing tags. - With this release, Live DRM with SSAI is supported.
Version 7.0.1
6 July 2022
ExoPlayer 2.17.1
SDK Changes:
- With this release of the Brightcove Native SDK for Android, MediaPlayer is no longer supported for content playback.
- The Brightcove Native SDK for Android is now compatible with Android 12.
- The Brightcove Native SDK for Android now supports playback of Low-Latency HLS live streams.
ExoPlayer Changes:
The Brightcove Native Player SDK for Android now supports ExoPlayer 2.17.1. Please note the following breaking changes with this upgrade:
- This version of ExoPlayer requires Java 11 and Gradle 7.4.
- The
DrmSession <T extends ExoMediaCrypto></T>
interface no longer requires a parameter. -
The
ExoPlayerDrmSessionManager <T extends ExoMediaCrypto></T>
interface no longer requires a parameter. - In the
TrackSelectorHelper
class, the methodupdateTracksSelectionArray(@Nullable TrackSelectionArray trackSelections)
is deprecated and replaced withupdateTracksGroupInfos(@Nullable ImmutableList <TracksInfo.TrackGroupInfo> trackGroupInfos)
. - In the
MediaSourceUtil
class, the methodfindRenditionUrl(@NonNull HlsMasterPlaylist hlsMasterPlaylist, int trackType, @NonNull Format format)
is deprecated and is replaced withfindRenditionUrl(@NonNull HlsMultivariantPlaylist hlsMasterPlaylist, int trackType, @NonNull Format format)
. - In the
ExoAdPlayer
class, the constructor requires a StyledPlayerView instead of a PlayerView. - The
DashAudioTrackSelector
class is now deprecated and replaced withExoPlayerVideoDisplayComponent*.setPeakBitrate(int)*
. - The
DashPeakBitRateTrackSelector
class is now deprecated and replaced withExoPlayerVideoDisplayComponent*.setPeakBitrate(int)*
. - The
HLSPeakBitrateTrackSelector
class is now deprecated and replaced withExoPlayerVideoDisplayComponent*.setPeakBitrate(int)*.
Cast Plugin Changes:
- ExoPlayer Cast Extension support updated to 2.17.1
- In the
GoogleCastComponent
class, the methodsloadItems(MediaQueueItem, int)
andaddItems(MediaQueueItem)
now returnvoid
instead ofPendingResult
RemoteMediaClient.MediaChannelResult>
.
Fixes an issue when casting Remote DRM videos, where the Cast sender was sending an unexpected CustomData field to the Brightcove Cast Receiver app.
IMA Plugin:
- The Google IMA SDK dependency has been upgraded to 3.27.0. This upgrade includes support for Android 12.
Pulse Plugin:
- Pulse SDK support updated to 2.5.20.3.0
SSAI Plugin Changes:
- The
SSAIComponent
now supports use of the Brightcove VideoCloud VMAP XML object itself as a source. To use a VideoCloud VMAP XML object as a source, callprocessVideo(String vmapXmlString)
in theSSAIComponent
class.
Version 6.18.6
14 June 2022
ExoPlayer 2.14.2
SDK Changes:
- Fixes a threading issue in the
Catalog
class, which resulted in a requirement in SDK version 6.18.5 that theCatalog
must be defined and instantiated only from the Player's main thread. From version 6.18.6 onwards, theCatalog
must still be defined within thePlayer Activity
class, but instantiation can be called from other threads. Please refer to the Brightcove Android SDK Sample Apps for examples in defining and instantiating theCatalog
. - Updates the GSON dependency version from 2.8.5 to 2.8.9 in response to a CVE report (CVE-2022-25647) about a possible vulnerability in some classes, none of which are used by the Brightcove SDK.
ExoPlayer Changes:
- Fixes an issue where a seeking in a paused player would cause the seekbar's scrubber to fail to update its progress when playback was resumed.
- Fixes an issue with Short Manifest TTLs where the Multi-Session DRM
setting was not re-applied when the video was refreshed after its manifest
timestamp
expired.
Version 6.18.5
27 May 2022
ExoPlayer 2.14.2
SDK Changes:
- Adds support for Short Manifest TTLs.
- IMPORTANT: Using this SDK version requires the Catalog
and
HttpRequestConfig
objects to be instantiated on the player's main thread (in itsonCreate
method). Note that these objects can be defined either globally (which is preferred) or in theonCreate
method. Please refer to the BasicSsaiSampleApp for an example of a locally defined and instantiated objects, and the VideoViewListSampleApp for an example of globally defined and locally instantiated objects. Please also note that this is a requirement independent of the use of the Short Manifest TTLs feature.
SSAI Plugin Changes:
- Adds support for Short Manifest TTLs.
Version 6.18.4
20 May 2022
ExoPlayer 2.14.2
SDK Changes:
- Fixes an issue where a crash could occur if an account not configured for Generic Stream Concurrency (GSC) were to attempt to play content in a player that is configured for GSC.
- Improves GSC error handling in cases where invalid or expired tokens might be used in attempting to play content.
Version 6.18.3
6 May 2022
ExoPlayer 2.14.2
SDK Changes:
- Fixes an Accessibility issue where when the seekbar has focus, the video
progress percentage is constantly read by the
TalkBack
system. - Fixes an Accessibility issue where double-tapping the video view would focus on the seekbar, and cause an unexpected seek into the video.
ExoPlayer Changes:
ExoPlayerVideoDisplayComponent
now provides a getter method that returns the current instance of theWidevineMediaDrmCallback
, or an empty instance if it needs to be created.
Thumbnail Plugin Changes:
- Fixes an issue where Playlists with a mix of Video Cloud and remote videos would cause a thumbnail from the last-played Video Cloud video to be displayed when selecting a remote video.
Version 6.18.2
24 Mar 2022
ExoPlayer 2.14.2
SDK Changes:
- Fixed an issue where
video_engagement
Analytics events for remote VOD videos could have avideo_seconds_viewed
parameter instead of the expected range parameter. - Fixed player button click listeners when using custom drawables.
- Fixed an issue where a call to
NumberUtil.safeLongToInt
might crash when its input is too large. Now, when the input can not be safely converted, the method returnsInteger.MIN_VALUE
with an explanatory message.
ExoPlayer Changes:
- Fixed an issue where with mixed playlists with DRM and Clear content, playback failed if a Clear video is loaded after playing a DRM video.
- Added support for setting the
multiSession
property (required for key rotation) when creating theDefaultDrmSessionManager
in ExoPlayer.
Version 6.18.1
26 Jan 2022
ExoPlayer 2.14.2
ExoPlayer Changes:
- Added a check to address a crash that could occur if the ExoPlayer
instance becomes null and
getCurrentManifest()
is called in theExoPlayerVideoDisplayComponent
.
Version 6.18.0
21 Dec 2021
ExoPlayer 2.14.2
SDK Changes:
- IMPORTANT: Support for integer data types in player,
content and event properties is deprecated in the following areas of
content and ad playback:
- Playhead position, for VOD and Live playback
Video duration
SSAI Plugin Changes:
- With this release, the SSAI plugin has been refactored to better support playback and seeking use cases.
Fixes an issue where seeking in a paused player over ads could load the wrong player controls.
For a complete description of the behavioral and API-level changes to this
plugin, see the SSAI
Plugin Changes with Android SDK v6.18.0 support document.
Version 6.17.3
10 Dec 2021
ExoPlayer 2.14.2
SDK Changes:
- Fixes a Generic Stream Concurrency (GSC) issue where the second heartbeat request would follow the first request 30 seconds later, instead of the account-configured frequency.
- Improvements to GSC heartbeat request functionality during Player Activity, Player Fragment and Picture-In-Picture lifecycle events, as well as retries on heartbeat request failures.
Version 6.17.2
19 Nov 2021
ExoPlayer 2.14.2
SDK Changes:
- This version adds support for Generic Stream Concurrency (GSC). Please refer to the Brightcove Support Pages for more information.
-
Limitations
- Chromecast is not supported in this version. Support for Chromecast will be included in a future release of the SDK.
-
Known Issues
- When sending requests to the GSC heartbeat service, the second request will follow the first request 30 seconds later, instead of at the frequency set for the account. This issue only occurs on the second heartbeat request, does not affect playback, and will be addressed in a future release of the SDK.
Version 6.17.1
14 Oct 2021
ExoPlayer 2.14.2
ExoPlayer Changes:
- Fixed an issue with overly verbose logging from the
ExoPlayerVideoDisplayComponent
Version 6.17.0
8 Oct 2021
ExoPlayer 2.14.2
SDK Changes:
- The Brightcove Native SDK for Android now supports Android 11
ExoPlayer Changes:
-
The Brightcove Native SDK for Android now supports ExoPlayer 2.14.2. Please note the following changes:
-
In the
ExoPlayerVideoDisplayComponent
class thegetBrightcoveDrmSession() : BrightcoveDrmSession
method has been deprecated. Instead please useExoPlayerDrmSessionManager
. SeeExoPlayerVideoDisplayComponent:getExoPlayerDrmSessionManager(): ExoPlayerDrmSessionManage
-
In the
ExoPlayerVideoDisplayComponent
class, in theInfoListener
subclass, the methodonDecoderInitialized(AnalyticsListener.EventTime eventTime, int trackType, String decoderName,long initializationDurationMs)
has been deprecated. Instead, please useonAudioDecoderInitialized(AnalyticsListener.EventTime eventTime, String decoderName, long initializationDurationMs) : void
and/oronVideoDecoderInitialized(AnalyticsListener.EventTime eventTime, String decoderName, long initializationDurationMs) : void
-
The constructor for the
ExoPlayerDrmSessionManager
class has been deprecated. Instead, use theExoPlayerDrmSessionManager.Builder
-
The constructor for the
OfflineLicenseManager
class has been deprecated. TheOfflineLicenseManager
now uses the Builder pattern. SeeOfflineLicenseManager.Builder
-
In the class
BrightcoveSegmentTemplate
, the methodgetSegmentCount(long periodDurationUs)
has been deprecated. Instead, please usegetSegmentCountLong(long periodDurationUs)
- This ExoPlayer version requires that any instance of the ExoPlayer
must be created and accessed in the main thread, so any access to the
ExoPlayerVideoDisplayComponent.getExoPlayer
method or direct access to any ExoPlayer method must be on the main thread as well. Version 6.16.6
-
Version 6.16.6
4 Oct 2021
ExoPlayer 2 v2.10.8
SDK Changes:
- Improves the
video_seconds_viewed
measurement invideo_engagement
events sent to the Brightcove Analytics back-end
ExoPlayer Changes:
- Fixes an issue where a device could go to sleep during ad playback
Version 6.16.5
23 Aug 2021
ExoPlayer 2 v2.10.8
SDK Changes:
- Improved support for 608/708 captions that have a language attribute
- Emit a
DID_SET_VIDEO_STILL_ERROR
event when a video's poster image can not be loaded
ExoPlayer Changes:
- Emit an
AD_ERROR
error event if ad loading is interrupted, or if the ExoAdPlayer or its context are null
Offline Playback Plugin Changes:
- Fixed a problem where backgrounding or exiting the app could cause offline content to fail to play
Version 6.16.4
4 Aug 2021
ExoPlayer 2 v2.10.8
Offline Playback Changes:
- Fixed an issue where some image files would not download successfully
Version 6.16.3
1 July 2021
ExoPlayer 2 v2.10.8
SDK Changes:
- Adds support for Forensic Watermarking. For details, see the Forensic Watermarking with Native SDKs document.
- Updated the
VideoUtils
class to add a utility method to remove the sidecar caption sources from the Video object - Fixed an issue where the
video_duration
URL parameter was not included in requests to Brightcove’s Analytics back-end for reporting
Cast Plugin Changes:
- Added support for setting a URL to a custom player for the Cast receiver app. Please refer to the Android SDK Support Documentation for more information
-
Added support for sending selected caption and audio track information to a Cast receiver
Offline Playback Changes:
-
Added support for setting properties in the
AbstractOfflineCatalog
class. Offline Catalog properties can be set in two ways:- As a
Map<String, String>
of key/value pairs using thesetProperties(Map<String, String>)
method - Through the
getProperties().put(key, value)
method
- As a
- Added support for creating custom
NotificationChannels
in theDownloadManager
class. Please refer to the Android SDK Support Documentation for more information
Version 6.16.2
10 May 2021
ExoPlayer 2 v2.10.8
SDK Changes:
- Fixed an issue where text tracks with the kind
subtitles
were not being parsed or displayed - Fixed an issue where text tracks that have the
position
attribute with the additionalline-left
orline-right
attribute were not being parsed or displayed
ExoPlayer 2 Changes:
- Fixed an issue where an incorrect index could be used to get the current selected audio language
Omniture Plugin Changes:
- Fixed an issue where the heartbeat would continue after the player was destroyed
SSAI Plugin Changes:
-
Added parsing support for nested VAST and VMAP Extension elements
-
Added parsing support for VAST
AdVerification
elements
Version 6.16.1
12 Jan 2021
ExoPlayer 2 v2.10.8
SDK Changes:
- Improved Video Engagement reporting for SSAI VOD videos.
- The
DashWidevineAuthorizer
class is deprecated. Please use theWidevineAuthorizer
class instead.
IMA Plugin Changes:
- The Google IMA SDK has been updated to version 3.21.1.
- Improved support for skippable ads, and fixed an issue where skippable ads might not exit cleanly, and ad audio might be heard after resuming content playback.
- Fixed an issue with setting mime types for ads, where user-supplied mime types were not being set by the plugin's Builder.
-
Added plugin Builder convenience methods for:
- Setting ad mime types in the
AdsRenderingSettings
object - seeBuilder.setMimeTypes(List
) : void - Setting the ad video load timeout in the
AdsRenderingSettings
object - seeBuilder.setLoadVideoTimeout(int) : void
- Setting debug mode in the
ImaSdkSettings
object - seeBuilder.setDebugMode(boolean) : void
- Setting ad mime types in the
- Please note:
These convenience methods are member methods in the
AdsRenderingSettings
andImaSdkSettings
Google IMA SDK objects. When called through the Builder directly, these methods will configure theAdsRenderingSettings
andImaSdkSettings
objects that are created by default in the Builder.If you decide to create custom
AdsRenderingSettings
andImaSdkSettings
Google IMA SDK objects for use in the IMA plugin, you can call those objects' methods directly:AdsRenderingSettings.setMimeTypes(List
) : void AdsRenderingSettings.setLoadVideoTimeout(int) : void
ImaSdkSettings.setDebugMode(boolean) : void
SSAI Plugin Changes:
- Added support for Live SSAI streams that are created as remote Video objects.
Version 6.16.0
14 Oct 2020
ExoPlayer 2 v2.10.8
Cast Plugin Changes:
- The Cast plugin has been redesigned and now supports the Brightcove Cast Receiver v2.0.
-
Please refer to the Brightcove Android Native SDK documentation, and the Brightcove Android Native SDK sample apps, for more information and code samples.
Version 6.15.1
22 Sep 2020
ExoPlayer 2 v2.10.8
SDK Changes:
-
The Brightcove Native SDK for Android now supports Arabic (RTL) language in player controls and UI labels.
-
Please note: While the Arabic language (RTL) text is supported, only left-to-right (LTR) player control layouts are currently supported.
-
Fixed an issue where certain
video_view
andvideo_engagement
Analytics event parameters could include non-Western Arabic numerals for the following parameters:video_view
:start_time_ms
load_time_ms
video_engagement
:range
video_seconds_viewed
Cast Plugin Changes:
- The Cast plugin now supports Arabic (RTL) text in cast controls and UI labels.
-
Please note that Arabic language support does not extend to the displays (video elapsed time and duration) in the Cast expanded controller.
-
Displaying these components is controlled by the Google Cast API.
Offline Playback Plugin Changes:
-
The Offline Playback plugin now supports Arabic (RTL) text in UI labels.
Pulse Plugin Changes:
- The Pulse plugin now supports Arabic (RTL) text in Ad controls and UI labels.
SSAI Plugin Changes:
- The SSAI plugin now supports Arabic (RTL) text in Ad controls and UI labels.
Version 6.15.0
25 Aug 2020
ExoPlayer 2 v2.10.8
SDK Changes:
-
Implemented additional null checking for caption URIs
ExoPlayer Changes:
-
Fixed a regression in the
ExoPlayerVideoDisplayComponent setPeakBitrate()
method where the specified bitrate would be ignored, and the highest bitrate selected instead.
IMA Plugin Changes:
-
The Google IMA SDK has been updated to version 3.19.4. Some of the changes include:
-
SdkFactory.createAdDisplayContainer()
is deprecated -
AdDisplayContainer.setPlayer(VideoAdPlayer)
is deprecated -
AdDisplayContainer.setAdContainer(ViewGroup)
is deprecated -
AdsRequest.setAdDisplayContainer(AdDisplayContainer)
is removedFor the full list of changes, please refer to the Google IMA Android SDK release history.
-
-
The
GoogleIMAComponent
now uses a Builder for its construction. -
The IMA plugin automatically creates the
AdDisplayContainer
using theBrightcoveVideoView
by default.You may provide an
AdDisplayContainerFactory
to theGoogleIMAComponent.Builder
to provide your ownAdDisplayContainer
. -
The following methods were deprecated in the
GoogleIMAVideoAdPlayer
class:-
playAd(). Use playAd(AdMediaInfo)
instead -
loadAd(String). Use loadAd(AdMediaInfo, AdPodInfo)
instead -
stopAd(). Use stopAd(AdMediaInfo)
instead -
resumeAd(). Use playAd(AdMediaInfo)
instead -
pauseAd(). Use pauseAd(AdMediaInfo)
instead
-
-
Fixed an issue where the IMA plugin was not emitting the
AD_PAUSED/AD_RESUME
events when callingGoogleIMAVideoAdPlayer.pauseAd
andGoogleIMAVideoAdPlayer.resumeAd
, respectively.For more information, please visit the Brightcove Android SDK Overview in the Brightcove Support site.
VMAP Plugin changes:
- The deprecated VMAP plugin has been removed from the Brightcove Native SDK for Android. For VMAP ad delivery, please continue to use the IMA plugin.
OnceUx Plugin Changes:
- The deprecated OnceUx plugin has been removed from the Brightcove Native SDK for Android. Please use the SSAI plugin instead.
Version 6.14.1
7 Aug 2020
ExoPlayer 2 v2.10.8
SSAI Plugin Changes:
-
Fixes an issue where the
CustomClick
element would fail to parse. -
Fixes an issue in parsing the VAST Extension element.
Version 6.14.0
8 Jul 2020
ExoPlayer 2 v2.10.8
SDK Changes:
-
Improved integration with Android TalkBack (and Samsung Voice Assistant).
-
The
VideoParser
will now ignore any DRM source that does not contain Widevine key systems. -
Fixed an issue where the
VideoParser
would fail to parse a Thumbnail VTT Source that does not contain the bandwidth property. -
Fixed an issue on Android TV platforms where the Player Options button would fail to display after Server-Side Ad Insertion ad breaks completed.
IMA Plugin Changes:
-
ExoPlayer is now used for Ad playback instead of MediaPlayer.
Version 6.13.3
21 May 2020
ExoPlayer 2 v2.10.8
SDK Changes:
-
Improved rendering of ruby text in sidecar closed captions. A similar improvement for in-manifest captions is forthcoming.
Cast Plugin Changes:
-
Fixed a problem where the the activity was not released as expected when the Chromecast plugin is used.
IMA Plugin Changes:
-
Added support for Audience Segment (Ad) Targeting, whereby key/value pairs are added to the ad tag URL's cust_params parameter.
SSAI Plugin Changes:
-
Added support for Audience Segment (Ad) Targeting, whereby key/value pairs are added to the VMAP Source URL.
-
Fixed a problem where an empty or malformed URL in a VAST Tracking element can cause an app crash
Version 6.13.2
24 Apr 2020
ExoPlayer 2 v2.10.8
Offline Playback Changes:
-
Upgraded the FileDownloader dependency to v1.7.7
This upgrade fixes an issue where downloading while the app is in the background could pause unexpectedly.
Thumbnail Plugin Changes:
-
Fixed an alignment issue between the scrubber and the thumbnail preview on Android TV
Version 6.13.1
16 Apr 2020
ExoPlayer 2 v2.10.8
SDK Changes:
-
Added support for HEVC videos.
On devices that support HEVC (with API level 21 and higher), playback of HEVC is now automatically available. See documentation for technical details.
Pulse Plugin Changes:
-
Added seek without ads support when setting
adsDisabled
onVideoPlaybackController
-
Added support to play Pulse passback ads
-
Added a message to indicate when the user is in a Pause Ad
Thumbnail Plugin Changes:
-
Increased size of the thumbnail image shown in tablets
-
Increased speed of thumbnail dragging on Android TV
SSAI Plugin Changes:
-
Fixed an issue where the Closed Captions might be out of sync with the Video
Version 6.12.0
5 Mar 2020
ExoPlayer 2 v2.10.8
SDK Changes:
-
Deprecated
BrightcoveSurfaceView.isVideo360Supported()
. Based on current supported versions, it always returns true.
Pulse Plugin:
-
With this release, the Brightcove Native SDK for Android implements the Pulse Advertising Plugin.
Version 6.11.0
7 Feb 2020
ExoPlayer 2 v2.10.8
SDK Changes:
-
Added support for the Brightcove Playback Rights Management Service.
-
Breaking Change: The Playlist object is now immutable.
-
The Playlist object can now contain a mix of videos with status
Status.OK
andStatus.ERROR
-
Playlist.getErrorVideos()
: This new method will return only videos with status ofStatus.ERROR
-
Playlist.getAllVideosAndErrors()
: This new method will return all videos with both status,Status.OK
andStatus.ERROR
, following the same order as returned from the Playback Rights Management Service response -
Note:
Playlist.getVideos()
andPlaylist.getCount()
behave the same way as previous versions, that is, they consider only the videos with statusStatus.OK
-
Added
ErrorListener.onError(List
callback.) -
Deprecated
ErrorListener.onError(String)
callback. -
The Video object now has a status code, which can be either
Status.OK
orStatus.ERROR
. You may retrieve the status throughVideo.getStatus():Status
. -
Status.OK
: The Video has all the expected properties and does not haveVideo.Fields.ERRORS
in it. -
Status.ERROR
: The video hasVideo.Fields.ERRORS
in its properties in the form ofList<CatalogError>
.
VMAP Plugin:
-
The VMAP plugin has been deprecated. For client-side advertising with VMAP and VAST documents, please use the IMA plugin.
Version 6.10.1
17 Jan 2020
ExoPlayer 2 v2.10.8
ExoPlayer Changes:
-
Fixed a crash when attempting to play an HLS Live stream.
Offline Playback Changes:
-
Fixed an issue where some VTT closed captions files would not download successfully.
Cast Plugin:
-
Added new
CastMediaUtil.toMediaInfo
methods without the unnecessary Android Context parameter. -
Deprecated
CastMediaUtil.toMediaInfo
methods with the unnecessary Android Context parameter.
Version 6.10.0
19 Dec 2019
ExoPlayer 2 v2.10.8
SDK Changes:
-
Breaking Change: The Brightcove Android Native SDK is now built using AndroidX (JetPack) libraries. Please refer to the Android SDK Support pages for more information on this change, and required steps to migrate your application code.
-
Fixed an issue with the
backgroundOpacity
method inBrightcoveCaptionStyle
where this method was not setting background opacity on captions as expected. -
Fixed an issue where fullscreen functionality was not working as expected in the
BrightcovePlayerFragment
.
ExoPlayer Changes:
-
ExoPlayer support in the Brightcove Android Native SDK has been upgraded to 2.10.8.
-
Fixed an issue in audio track selection where higher-bitrate renditions could not be selected after switching languages.
IMA Plugin Changes:
-
Adds support for live content with pre-roll client-side ads.
SSAI Plugin Changes:
-
Fixed an issue where the Captions button would not consistently display during content playback. Please note that this issue is currently fixed for mobile devices only; a solution for Android TV devices will follow in an upcoming release.
Version 6.9.0
22 Oct 2019
ExoPlayer 2 v2.9.3
SDK Changes:
-
The Android SDK now targets and supports Android 10 (targetSdkVersion 29).
-
Fixes a RunTimeException: "Canvas: trying to use a recycled bitmap", when attempting to display the Poster Image.
-
Added the following convenience constants as HttpRequestConfig query parameters key:
HttpRequestConfig.KEY_DELIVERY_RULE_CONFIG_ID
Used to add a Delivery Rules Config IDHttpRequestConfig.KEY_AD_CONFIG_ID
Used to add an SSAI Ad Config ID
ExoPlayer v1 Changes:
-
All support for ExoPlayer 1.x has been removed from The Brightcove Native SDK for Android. Please make sure to use ExoPlayer v2. For details, see the Migrating to ExoPlayer 2 Framework document.
SSAI Plugin Changes:
-
Live and Live DVR streams with Server Side Ad Insertion (Live SSAI) are now supported.
-
Breaking Change: The
Event.PLAYHEAD_POSITION
property in both events,EventType.PROGRESS
andEventType.AD_PROGRESS
, now contains the absolute playhead position, which is the same playhead position given by the underlying player.
Please useEvent.PROGRESS_BAR_PLAYHEAD_POSITION
instead to get the relative playhead position. -
The
Event.PROGRESS_BAR_PLAYHEAD_POSITION
property was introduced for bothEventType.PROGRESS
andEventType.AD_PROGRESS
events which contains the relative playhead position (asEvent.PLAYHEAD_POSITION
did in older versions). -
Added Ad controls for Android TV.
-
Fixed an issue where the rewind button will not rewind properly after consecutive clicks.
Version 6.8.1
31 May 2019
ExoPlayer 2 v2.9.3
ExoPlayer2 Changes:
-
ExoPlayer2 has been downgraded to version 2.9.3 due to an issue with HLS Multiple Audio Tracks in version 2.9.6.
Offline Playback Changes:
-
Add Playback Authentication Service (PAS) support.
-
The following methods are added to the
com.brightcove.player.edge.AbstractOfflineCatalog
:findOfflineVideoById(String, @NonNull HttpRequestConfig): Video
findOfflineVideoById(String, @NonNull HttpRequestConfig, @NonNull OfflineCallback<Video>): void
requestPurchaseLicense(@NonNull Video, @NonNull EventListener, @NonNull HttpRequestConfig): void
requestRentalLicense(@NonNull Video, @NonNull Date, long, @NonNull EventListener, @NonNull HttpRequestConfig): void
-
The following method is removed from the
com.brightcove.player.edge.AbstractOfflineCatalog
renewLicense(@NonNull Video, @NonNull EventListener): void
-
Fixes an issue loading poster images for downloaded videos. When available, a local image will be loaded.
FreeWheel Plugin Changes:
-
Adds support for live content with pre-roll client-side ads
SSAI Plugin Changes:
-
Fixes an issue where a content source could be loaded directly from the
src
attribute in the Playback API response, instead of from thecontenturi
attribute in the VMAP.
Version 6.8.0
1 May 2019
ExoPlayer 2 v2.9.6
SDK Changes:
-
The Android Minimum SDK Version supported by the Brightcove Native SDK for Android is now 19.
-
The Brightcove Native SDK for Android is now Java 8 compliant. Please note that Android apps developed using this version of the Android SDK may require the following directive added to the build.gradle file to ensure bytecode compatibility:
compileOptions{ targetCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8 }
ExoPlayer2 Changes:
-
ExoPlayer2 has been upgraded to version 2.9.6
-
Please note that this upgrade has the following API changes:
-
Breaking Change Removed:
constructor TrackSelectorHelper(@NonNull ExoPlayer player, @NonNull MappingTrackSelector trackSelector)
Use
constructor TrackSelectorHelper(@NonNull ExoPlayer player, @NonNull DefaultTrackSelector trackSelector)
-
Breaking Change Removed:
setTrackSelector(@NonNull MappingTrackSelector trackSelector)
Use
setTrackSelector(@NonNull DefaultTrackSelector trackSelector)
-
Removed
getTrackSelector(): MappingTrackSelector
Use
getTrackSelector(): DefaultTrackSelector
FreeWheel Plugin Changes:
-
The FreeWheel plugin has been updated to support FreeWheel AdManager version 6.28.0.
-
Please note that FreeWheel now packages the AdManager library as an Android Archive (AAR).
IMA Plugin Changes:
-
The IMA Plugin has been updated to support Google IMA SDK version 3.11.2.
-
This version of the Google IMA SDK supports Open Measurement standards.
-
Please refer to the Brightcove Android SDK documentation for more information.
-
Fixed an issue where midroll ads called after long periods of content playback would not play.
SSAI Plugin Changes:
-
The SSAI Plugin now supports content delivery through the Brightcove Playback Authorization Service (PAS).
-
Please note that PAS works only with the SSAI Plugin. PAS with the deprecated OnceUx Plugin is not supported.
Version 6.7.0
5 Apr 2019
ExoPlayer 2 v2.7.0
SSAI Plugin:
-
With this release, the Brightcove Native SDK for Android implements the SSAI Plugin. For more information on this new plugin, please visit the Brightcove Android SDK Overview in the Brightcove Support site.
OnceUx Plugin Changes:
-
With this release, the OnceUx Plugin is deprecated. Please use the new SSAI Plugin instead. For more information, please visit the Brightcove Android SDK Overview in the Brightcove Support site.
Version 6.6.0
29 Mar 2019
ExoPlayer 2 v2.7.0
SDK Changes:
-
A new class, HttpRequestConfig has been added. This class supports the addition of request URL parameters and/or request headers that may be required by Brightcove services (e.g. the Brightcove Edge API, or the Brightcove Playback Authorization Service (PAS)). Please refer to Brightcove Support documentation for more information on usage of this class.
-
Along with the HttpRequestConfig class, the following methods are added to the com.brightcove.player.edge.Catalog class: findPlaylistByID(String, HttpRequestConfig, PlaylistListener): void findPlaylistByReferenceID(String, HttpRequestConfig, PlaylistListener): void findVideoByID(String, HttpRequestConfig, VideoListener): void findVideoByReferenceID(String, HttpRequestConfig, VideoListener): void
-
The following findPlaylist methods are deprecated in com.brightcove.player.edge.Catalog: findPlaylistByID(String, Map<String, String>, PlaylistListener): void findPlaylistByID(String, Map<String, String>, Map<String, String>, PlaylistListener): void findPlaylistByReferenceID(String, Map<String, String>, PlaylistListener): void findPlaylistByReferenceID(String, Map<String, String>, Map<String, String>, PlaylistListener): void
-
The following findVideo methods are deprecated in com.brightcove.player.edge.Catalog: findVideoByID(String videoID, Map<String, String>, VideoListener): void findVideoByID(String videoID, Map<String, String>, Map<String, String>, VideoListener): void findVideoByReferenceID(String, Map<String, String>, VideoListener): void findVideoByReferenceID(String, Map<String, String>, Map<String, String>, VideoListener): void
Brightcove Native SDK for Android support for the Brightcove Playback Authorization Service (PAS)
-
In the Limited Availability release of the Brightcove Playback Authorization Service (PAS), the following features are supported by the Brightcove Native SDK for Android:
-
Online streaming of DRM content with PAS
-
Online streaming of HLSe content with PAS
-
-
In the Limited Availability release of the Brightcove Playback Authorization Service (PAS), the following features are not currently supported by the Brightcove Native SDK for Android, and will be implemented in an upcoming release:
-
Server-side Ad Insertion with the OnceUx plugin with PAS
-
Offline Playback with PAS
-
Chromecast with PAS
-
-
Important Note About ExoPlayer 1:
-
ExoPlayer 1 is deprecated, and will be End Of Life by the end of Q3 2019, at which point it will no longer be available in the Brightcove Native SDK for Android.
-
Version 6.5.1
12 Feb 2019
OnceUx Plugin Changes:
-
Fixed an issue where the IFrameResource element was being incorrectly parsed from VMAP sources.
Version 6.5.0
6 Dec 2018
SDK Changes:
-
Removed unnecessary dependencies in the Brightcove Android SDK.
-
Added asynchronous versions of the following methods to the OfflineCatalog class: getVideoDownloadStatus findAllQueuedVideoDownload findAllVideoDownload findOfflineVideoByID downloadVideo cancelVideoDownload pauseVideoDownload resumeVideoDownload deleteVideo getMediaFormatTracksAvailable
-
Fixed an issue where the estimateSize method in the OfflineCatalog class was returning an unexpected value.
-
Fixed an issue where an offline video built using VideoParser.buildVideoFromJSON() would not play as expected.
OnceUx Plugin Changes:
-
Fixed an issue where duplicate caption menu items would appear.
Cast Plugin: Release note update: While the Cast plugin has no changes in this release, it is important to note these clarifications in the currently supported features of this plugin.
-
Android 9 - Testing has shown that the following permission is required to use Chromecast with Android 9, in particular when the app is backgrounded and brought back to the foreground, and in order to use notifications to control a casting session. This uses-permission tag should be added to an app's AndroidManifest.xml: <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
-
Captions - Testing has shown that in-manifest captions only with Dynamic Delivery DASH display as expected.
-
Captions - In-manifest captions with HLS are not currently supported.
-
Captions - Sidecar captions in any video configuration are not currently supported. This clarification is also present in the Cast plugin release note for the Brightcove Android SDK v6.3.0 release.
Version 6.4.0
17 Oct 2018
SDK Changes:
-
The Brightcove Native SDK for Android now supports Android 9.0 (Pie). Please note that with the Android Pie release you must be aware of some important changes, such as Network TLS enabled by default, Apache HTTP client deprecation and the deprecation of Android ConnectivityManager constants. You might need to make additional changes in your application. For more information, please visit https://support.brightcove.com/android-pie-support-native-sdk-android.
-
The DefaultSourceSelectionController and ExoPlayerSourceSelectionController will now prefer HTTPS sources in its selection if available, otherwise the selection controller will select the first source available.
Older releases
Version 6.3.2
24 Sep 2018
SDK Changes:
-
Fixed an issue where the Settings button in Android TV was not working as expected.
-
Fixed an issue where getRefereiceId() and getDescription() in the Video class were not working as expected.
-
Added a method, getLongDescription(), to the Video class.
-
Fixed an issue in the OfflineCatalog class where calling setDownloadPath with a null argument caused a NullPointerException.
-
Fixed an issue in the OfflineCatalog class where calling the estimateSize method could return an unexpectedly large value.
-
Fixed an issue where an Activity that was not enabled for Picture-In-Picture would throw a non-fatal IllegalStateException. The error is now logged as a warning.
-
Deprecated support for the BrightcoveClosedCaptioningSurfaceView class.
OnceUx Plugin Changes:
-
Added support for the VAST Icon element.
Version 6.3.1
09 Aug 2018
SDK Changes:
-
Fixed an issue where Android Studio will throw an exception in the Layout Editor when rendering the BrightcoveVideView.
ExoPlayer v2 Changes:
-
Added LoadControlConfig and AllocatorConfig classes. The values set in these classes will be used to create the ExoPlayer DefaultLoadControl object, which is used when creating the ExoPlayer instance. The AllocatorConfig may be set when creating the LoadControlConfig. The LoadControlConfig may be set to the ExoPlayerVideoDisplayComponent instance.
OnceUx Plugin Changes:
-
Fixed an issue where the default poster image shown in the BrightcoveVideoView will not disappear after the preroll starts playing.
Version 6.3.0
27 July 2018
Cast Plugin Changes: The Cast Plugin has been updated with a dependency on the ExoPlayer Cast Extension v2.7.0. Please note that certain VideoCloud features have limited support, or are not yet supported when using Cast plugin with the Google sample receiver app.
-
Android 9 - Testing has shown that the following permission is required to use Chromecast with Android 9, in particular when the app is backgrounded and brought back to the foreground, and in order to use notifications to control a casting session. This uses-permission tag should be added to an app's AndroidManifest.xml: <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
-
Captions - Testing has shown that in-manifest captions only with Dynamic Delivery DASH display as expected.
-
Captions - In-manifest captions with HLS are not currently supported.
-
Captions - Sidecar captions in any video configuration are not currently supported.
-
Widevine Modular DRM is not supported when using the Cast plugin with the Google sample receiver app.
-
Multiple Audio Tracks are not supported when using the Cast plugin with the Google sample receiver app.
-
Client-side and Server-side Advertising is not supported when using the Cast plugin with the Google sample receiver app.
-
Live and Live DVR streams are not supported when using the Cast plugin with the Google sample receiver app.
FreeWheel Plugin Changes:
-
The FreeWheel plugin has been updated to support FreeWheel AdManager v6.23.0. Please note that this is a breaking change, and that this version of the Brightcove Native SDK for Android will not work with previous versions of FreeWheel AdManager. Please refer to the release notes in FreeWheel AdManager v6.23.0 for more information on the changes in that version.
IMA Plugin Changes:
-
The IMA Plugin now supports v3.9.0 of the Google IMA SDK for Android.
Version 6.2.3
16 July 2018
SDK Changes:
-
Offline Playback: Upgraded the FileDownloader library version to 1.7.4.
-
Offline Playback: Fixed an issue where backgrounding the app and changing network status could throw an IllegalArgumentException.
Version 6.2.2
9 July 2018
ExoPlayer v2 Changes:
-
Fixed an issue where values in the HEADERS field of the Video object were not being added as expected.
OnceUx Plugin Changes:
-
Fixed an issue where seeking without ads during the video could result in ad events still being fired.
Version 6.2.1
5 June 2018
ExoPlayer v2 Changes:
-
The Brightcove ExoPlayer has been reverted to v2.7.0, to work around a regression in backward seek behavior in live streams, and an unexpected change in how the Live Window Range value is calculated.
-
Fixed an issue with the calculation for BrightcoveSegmentTemplate.getSegmentCount when the DASH manifest has the startNumber parameter different than 0.
-
Added a validation for a potential NullPointerException in ExoPlayerVideoDisplayComponent.reportPlayerState
Version 6.2.0
18 May 2018
SDK Changes:
-
Added a VideoParser class with methods to build a Video and a Playlist from a JSON object, following the Brightcove Playback API response format.
-
Overloaded the requestPurchaseLicense() and requestRentalLicense() methods in the OfflineCatalog class in order to set the OutputProtection through the CustomerRightsTokenConfig object.
-
Updated the FileDownloader library to 1.7.3 for Offline Playback.
-
Fixed a race condition for Offline Playback when deleting multiple videos while being downloaded.
ExoPlayer v2 Changes:
-
The Brightcove ExoPlayer has been updated to 2.7.3.
-
The following methods were deprecated from BrightcoveDrmSession interface:
-
DrmException getDrmError()
-
Map<String, String> queryKeyStatus()
-
byte[] getOfflineLicenseKeySetId()
-
OnceUx Plugin Changes:
-
Added support to parse and read all Ad Creative IDs from SSAI VMAP.
-
Removed requirement for id attribute in Ad tag.
Version 6.1.2
24 Apr 2018
SDK Changes:
-
Fixed an issue where the download would not resume in slow networks (down to 256kbps) after killing and restarting the app.
OnceUx Plugin Changes:
-
Fixed an issue where all ads will be played after seeking over multiple ad pods.
Version 6.1.1
6 Apr 2018
SDK Changes:
-
Fixed an Offline Analytics dependency that was unexpectedly increasing app sizes.
-
Fixed an issue with Offline Playback where some downloads were hanging at 99%.
Version 6.1.0
29 Mar 2018
SDK Changes:
-
Added support for Picture-in-Picture on Android Oreo.
-
Fixed a UI performance issue for Offline Playback when downloading a video by making all Download Manager callbacks on a background thread.
-
Improvement in download speeds for Offline Playback.
-
Fixed an Offline Playback issue where the download_id parameter was missing from video_download_request and video_download_cancellation events for clear downloads.
-
Fixed an issue with WebVTT captions where using the "line:" attribute without a percentage (%) character was preventing the captions from displaying.
-
AbstractOfflineCatalog.renewLicense method is deprecated and is now non-functional. To renew an offline license, please use either AbstractOfflineCatalog.requestRentalLicense(Video, Date, long, EventListener) or AbstractOfflineCatalog.requestPurchaseLicense(Video, EventListener)
ExoPlayer2 changes:
-
ExoPlayer2 now reports the cumulative number of bytes downloaded through the current video engagement event and sends it to the Analytics server as media_bytes_transferred.
-
Added a convenience method to set the peak bitrate before preparing the player for a new video, or any time ExoPlayerVideoDisplayComponent.setPeakBitrate(int peakBitrate) is called.
Version 6.0.2
30 Jan 2018
SDK Changes:
-
Added support for offline playback analytics.
-
The deprecated Widevine Classic plugin has been removed.
IMA Plugin Changes:
-
Fixed an issue where viewable_impression beacons were not being fired as expected.
OnceUX Plugin Changes:
-
Fixed an issue where ad markers were not being displayed in their expected locations.
-
Fixed issues involving seeking past advertisements, and resuming playback from the intended seek position.
-
Fixed issues where player controls would appear in SSAI ads on orientation changes.
Version 6.0.1
18 Dec 2017
SDK Changes:
-
The deprecated legacy Media API classes, those in the com.brightcove.player.media package, were removed from the Brightcove Native SDK for Android.
-
The following classes were moved from com.brightcove.player.media to com.brightcove.player.model. Please note this is a breaking change:
-
DeliveryType
-
CaptionType
-
ErrorFields
-
VideoFields
-
ExoPlayer v2 Changes:
-
The Brightcove Native SDK for Android using ExoPlayer 2 (v2.5.3) is in General Availability.
-
Added support for the Omniture plugin when using ExoPlayer 2.
-
Several bug fixes.
ExoPlayer v1 Changes:
-
The Brightcove Native SDK for Android using ExoPlayer 1 has been deprecated. For more information about the migration process, please visit https://support.brightcove.com/migrating-exoplayer-2-framework
Complete release notes
For a complete list of release notes, see the Brightcove Native SDK for Android Release Notes.