The Native SDK for Android Release 7.0.1

In this topic, you will learn about the new functionality provided by the Brightcove Native SDK for Android version 7.0.1.

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 a defaulDrmSessionManager object that can be used in MediaSource objects to set a DRM session manager

  • In the TrackSelectorHelper class, the following method is deprecated:
    updateTracksSelectionArray(@Nullable TrackSelectionArray trackSelections)
    and is replaced with
    updateTracksGroupInfos(@Nullable ImmutableList trackGroupInfos)

  • In the MediaSourceUtil class, the following method is deprecated:
    findRenditionUrl(@NonNull HlsMasterPlaylist hlsMasterPlaylist, int trackType, @NonNull Format format)
    and is replaced with
    findRenditionUrl(@NonNull HlsMultivariantPlaylist hlsMasterPlaylist, int trackType, @NonNull Format format)

  • In the ExoAdPlayer class, The constructor requires a StyledPlayerView instead of a PlayerView

  • The following class is deprecated:
    DashAudioTrackSelector
    and is replaced with
    ExoPlayerVideoDisplayComponent.setPeakBitrate(int)

  • The following class is deprecated:
    DashPeakBitRateTrackSelector
    and is replaced with
    ExoPlayerVideoDisplayComponent.setPeakBitrate(int)

  • The following class is deprecated:
    HLSPeakBitrateTrackSelector
    and is replaced with
    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).