Overview
The Brightcove Native SDK for Android is available in a major version release 7, bringing important changes in how it is built. This version includes new functionality to support the following:
- Low Latency for HLS live streaming
- Android 12 compatibility
SDK changes
With this release of the Native SDK for Android, the MediaPlayer
class is no longer supported for content playback.
Android 12 compatibility
The Native SDK for Android now offers Android OS 12 compatibility, and all of the features in Android 12 should work as expected. Brightcove recommends that you review the changes in Android 12 and modify your application code as needed.
For details, see the Android 12 features and changes list reference.
ExoPlayer upgrade
The Native SDK for Android 7 includes a new version of the ExoPlayer, upgrading from v2.14.2 to v2.17.1. Review all of the updates to the ExoPlayer library releases.
Most of the ExoPlayer changes are handled internally by the Native SDK for Android, but there are some changes reflected in the public API:
- The following interface no longer requires a parameter:
DrmSession<T extends ExoMediaCrypto>
- The following interface no longer requires a parameter:
ExoPlayerDrmSessionManager<T extends ExoMediaCrypto>
The
ExoPlayerDrmSessionManager
class now exposes adefaulDrmSessionManager
object that can be used in MediaSource objects to set a DRM session manager- In the
TrackSelectorHelper
class, the following method is deprecated:
and is replaced withupdateTracksSelectionArray(@Nullable TrackSelectionArray trackSelections)
updateTracksGroupInfos(@Nullable ImmutableList
trackGroupInfos)
- In the
MediaSourceUtil
class, the following method is deprecated:
and is replaced withfindRenditionUrl(@NonNull HlsMasterPlaylist hlsMasterPlaylist, int trackType, @NonNull Format format)
findRenditionUrl(@NonNull HlsMultivariantPlaylist hlsMasterPlaylist, int trackType, @NonNull Format format)
In the
ExoAdPlayer
class, The constructor requires aStyledPlayerView
instead of aPlayerView
- The following class is deprecated:
and is replaced withDashAudioTrackSelector
ExoPlayerVideoDisplayComponent.setPeakBitrate(int)
- The following class is deprecated:
and is replaced withDashPeakBitRateTrackSelector
ExoPlayerVideoDisplayComponent.setPeakBitrate(int)
- The following class is deprecated:
and is replaced withHLSPeakBitrateTrackSelector
ExoPlayerVideoDisplayComponent.setPeakBitrate(int)
Gradle and Java Upgrades
Upgrading the ExoPlayer requires the following:
- Gradle 7.4
- Java 11
With the Native SDK for Android 7, you must upgrade both of these environmental dependencies.
Plugin changes
With this release of the Native SDK for Android, there are changes with some of the associated plugins.
Cast plugin
In the GoogleCastComponent
class, the following methods now return void
instead of PendingResult <RemoteMediaClient.MediaChannelResult>
.
loadItem(MediaQueueItem, int)
addItems(MediaQueueItem)
IMA plugin
The Google IMA SDK dependency has been upgraded to 3.27.0. This upgrade includes support for Android 12.
SSAI plugin
The SSAIComponent
now supports the use of a Brightcove VideoCloud VMAP XML object as a source. To use a VideoCloud VMAP XML object as a source, call SSAIComponent.processVideo(String vmapXmlString)
.