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.
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
Java.net.ResponseCachewith its own
Native SDK for Android
- 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.
- With Android 8.0 Oreo, when Background Activity is switched off, a download is started, and the app is put in the background, the download stops and does not continue when the app is reopened. The notification bar displays a status of Downloading...
- When using Widevine with Android 8.0 Oreo, you may notice that on some devices the rental license acquired is already expired. This is a known issue with Google's ExoPlayer, but it has been fixed with Android 8.1.0 on most devices. Unfortunately, there is no workaround for Android 8.0.
- Observed only with Android 5.x devices: When releasing the Widevine license by calling the
MediaDrmStateExceptionerror is thrown.
In the OfflinePlaybackSampleApp, there are two Widevine license expiration periods.
absoluteExpirationis an expiration date of the license to start playback of downloaded video
playDurationis how long the video can be played
playDurationbecomes 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.
- 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.
- 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.
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.
Version 4.11.0: Known Issues
- When playing IMA ads on a Fire TV, you may experience a 5 to 10 second delay between the end of one ad playback and the beginning of the next ad. This is especially noticeable when playing multiple ads in an Ad Break. This may be an issue with the Fire TV, since this does not happen on the Nexus player.
- The Native Player SDK does not support DASH Live streams, nor does it support ads with HLS Live streams.
Version 4.10.0: Known Issues
- With the release of Android TV, there is a known issue when playing Widevine content on the Asus Nexus player. The content appears with several trash pixels. This issue is resolved by updating the Nexus player to Android N (7.0). All research points to a hardware issue. Widevine content plays fine on the Nvidia Shield TV (which has Android TV on it).
- 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
- With iOS 12, setting the
kBCOVOfflineVideoManagerDisplayNameKeyfield 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
didProgressevent 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
AVPlayermay 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.
- The Native Player SDK does not support ads with HLS Live streams.