Contact Support | System Status
Page Contents

    Known Issues: Brightcove Native Player SDKs

    In this topic, you will learn about the known issues associated with the Brightcove Native Player SDKs.


    Large caption files

    Captions recorded as part of a live event will sometimes produce a captions file with cues that look like this:

    00:00:03.760 --> 00:00:03.960
    00:00:03.960 --> 00:00:04.160
    This program
    00:00:04.160 --> 00:00:04.400
    This program will
    00:00:04.400 --> 00:00:04.600
    This program will be
    00:00:04.600 --> 00:00:04.840
    This program will be captioned

    This style of captioning produces a marquee effect, but may have the unintended side effect of producing a caption file up to several megabytes in size. When these captions are selected in the player, the player attempts to download the entire file for parsing and display (VTT captions can not be streamed). This may lead to performance problems in the player, including OutOfMemory errors.

    Brightcove recommends that you reformat these captions into fewer lines:

    00:00:03.760 --> 00:00:04.840
    This program will be captioned

    Third-party frameworks

    Brightcove does not test or provide support for integrating the Brightcove Native SDKs with third-party development frameworks such as Xamarin, React Native and Titanium. Contact your framework provider for integration support. Here are some issues you may run into:

    • When using the Brightcove Native SDK for Android with the Titanium framework, you may experience playback errors with DRM content. This is because the Titanium framework overrides the default with its own TiResponseCache .

    Using emulators

    Whether you are using the Android Studio emulator or the Xcode simulator to test video playback, be aware that emulators do not accurately represent how an actual device will perform. While you can use emulators for initial testing during development, it is best practice to use real devices for accurate results.

    Videos with very small dimensions

    Video renditions with very small dimensions (less than 50px) will not play on iOS or Android (in the SDK players or otherwise)

    Native SDK for Android

    360° videos

    • If you do not use the BrightcovePlayer class, your 360° video will play, but the app may crash when pausing and resuming it. To learn more about using this class, see the Understanding the BrightcovePlayer class document.
    • You may experience some video drift after rotating the device. The problem is related to how the device gyroscope is calibrated, and this can affect performance. It is not associated with specific device makes and models, but instead on the motion sensor hardware installed on the device. The newer Android OS's have more sophisticated filter algorithms to correct the problem. A simple fix is to turn off the device and turn it on while it is lying on a flat, stable surface.


    • In-manifest and 608/708 Captions do not automatically display after Activity lifecycle events.

      This can happen when a player is backgrounded and then brought back to the foreground. A workaround to display the captions is to select the caption again from the captions menu.


    • Video and Playlist objects are not fully Parcelable.

      Objects must be fully Parcelable in order to be transmitted through the Android Binder. One common example of this is to add an Object to an Intent to send it to another Activity or Service, or to save it to the savedInstanceState Bundle. Currently the Video and Playlist objects in the Android SDK are not fully Parcelable.


    • The DRM layer on some platforms may not be able to decrypt the media content. Although not a definitive problem with that platform, testing has shown that this problem occurs more often with Nexus class devices. This issue is outside the scope of the Android SDK and the ExoPlayer, and cannot be fixed there.

    Live streams

    • The Native Player SDK does not support DASH Live streams, nor does it support ads with HLS Live streams.

    Offline playback

    • To add support for downloading when the device is locked, either by going to sleep or with the power button, add the following permission to your AndroidManifest.xml file :
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    • With Android 8.0 and above, it is possible to manage power settings when the app is moved to the background. This can cause the downloading process to stop if the device is disconnected from a power source. In most cases, when the app is brought back to the foreground, the download will continue. It is important to note that power management can be OS and vendor specific. Therefore, the Brightcove Native SDK for Android will not attempt to manage or override settings related to power management.
    • When using Widevine Modular with Android 8.0.0 (and 8.1.0 on some devices), you may notice that a rental license is already expired when you acquire it. This is a known issue with the Widevine Modular CDM, and can not be addressed in either the Brightcove Android SDK or ExoPlayer. Although this issue is not reproducible for most devices using Android 8.1.0, there is no workaround for those devices using Android 8.0.0 or 8.1.0, where it does occur.
    • Observed only with Android 5.x devices: When releasing the Widevine license by calling the OfflineLicenseManager.releaseLicense method, a MediaDrmStateException error is thrown.
    • In the OfflinePlaybackSampleApp, there are two Widevine license expiration periods.

      • absoluteExpiration is an expiration date of the license to start playback of downloaded video
      • playDuration is how long the video can be played

      When playDuration becomes less than 60 seconds, the Widevine CDM handles the license as expired and throws a Failed to get key request error. Playback will not start with this Widevine license exception.

      With the Brightcove Native SDK for Android v6.1.0+, you can try calling AbstractOfflineCatalog.requestRentalLicense(Video, Date, long, EventListener) or AbstractOfflineCatalog.requestPurchaseLicense(Video, EventListener) to retrieve a new license. Note: The device must be online to acquire a new license.

    Playing local videos

    • You will receive an exception error if you try to play MP4 videos stored in the application resource folder (/res/raw). The work-around is to move your MP4 videos to the application asset folder if you want to play local videos.

    Source selection

    • If your video has both HTTP and HTTPS sources for WebVTT captions/subtitles, then the Native SDK for Android may not return the HTTPS version. Brightcove is aware of this situation and will have a fix in a future release.


    • The CC button will not appear in the control bar and the player will not load text tracks if you assign text tracks to a video in Video Cloud Studio and set the KIND field value to Subtitles. The work-around is to set the KIND field value to Close Captions when you assign text tracks in Studio.

    • When the captions/audio settings exceed the space provided to display the full list, the list is not scrollable on Android TV. The list is scrollable on Android phones and tablets.

    Native SDK for iOS

    Live streams

    • The Native Player SDK does not support ads with HLS Live streams.

    Offline playback

    • With iOS 12, setting the kBCOVOfflineVideoManagerDisplayNameKey field value with multibyte characters may cause a download error. This is because multibyte characters are encoded as longer string values, and iOS restricts the string length to 255bytes. This problem has been reported to Apple.
    • With iOS 12, the didProgress event may stop firing when your app is resumed from background to foreground while downloading. You will notice that the downloading status is no longer updated. This problem has been reported to Apple.
    • When playback is attempted for the same offline video two times in a row, the user may experience unexpected network activity. The AVPlayer may switch to playing the online version of the video. A bug report has been submitted to Apple. For work-around steps, see the Playing the Same Offline Video Twice section of the reference document.
    • If your app is targeting iOS 11.0 - 11.2, we don't recommend concurrent downloads because pause and resume behavior is unreliable with multiple simultaneous downloads. The problem has been fixed with iOS 11.3.

    Page last updated on 10 Aug 2021