Page Contents

    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 new major version 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).


    Page last updated on 06 Jul 2022