Page availability - Locations
You will see the World option listed twice for new pages, as well as pages that have not had any location availability set. Once a location is set you will not see the duplicate.
- Client-Side Ad Insertion (CSAI) is NOT supported.
- DVR functionality is NOT supported.
Stream limitations and rapid switching between videos
- If a viewer switches quickly between videos it is possible the error shown here may be displayed:
This occurs because it takes a number of seconds for the stream to be released, and if the viewer tries to watch another video before the stream is released, a stream limitation occurs and the error is displayed.
- Parental control levels are not translated.
- Player errors (stream fails to load, media type errors, etc) are not translated.
- All content is displayed to end users (in lists, carousels, etc), but when trying to play the video the parental pin will be requested.
- Multiple age classifications are NOT supported.
- Mobile web has limited support. On devices with a width under 365px a message is displayed to install the appropriate native Brightcove Beacon app.
Native SDK offline playback
Neither client-side nor server-side advertising is supported with offline playback.
HLSe content is not supported with offline playback using the Brightcove Native SDK for Android, iOS or tvOS.
Low power mode
Low power mode on devices may affect certain features, including downloading. For more information, see the following:
- Power management Android 9 (API level 28)
- Low power mode on your iPhone
- React to Low Power Mode on iPhones
Shared videos can be downloaded for offline viewing only if the original video can be. The property is inherited from the original video and cannot be changed for shared video only.
The Native SDKs support audio-only content with Offline Playback. You control what viewers see, whether it is a poster image or a custom screen.
The Native SDK for Android requires a
VideoView, and the Native SDK for iOS requires a
UIView. Because of this, background audio is not supported. This means that audio will not keep playing when a user sends the app to the background.
Android: App deletion
When the app is deleted, all downloaded content is removed. This is true as long as the default storage location is not overridden.
As a security feature, you cannot stream an offline HLS video to an AirPlay device for playback. This is confirmed by Apple to be an
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.
Native SDK for Android
- 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 :
- 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
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.
Beacon does not track concurrent users for live events
Beacon currently has a limitation where Beacon players do not fully support Live Analytics (CCU). The following analytics metrics are not currently tracked by Beacon:
video_impression- video loaded into a player
video_engagement- concurrent views over the video duration
alive_ss_ad_Start- ad starts for Live events
- Support for older models: Models at a maximum of three years old are supported. For example, if an app is submitted in 2021, the models supported are 2021, 2020 and 2019. If an app is submitted and next year's model is available, then that counts as a year. For example, if an app is submitted in 2021, but 2022 models are available, the the supported years are 2022, 2021 and 2020.