Overview: Brightcove Native SDK for iOS

Welcome to the Native SDK for iOS developer documentation. Here you will find the information to create native apps for playing video content on iOS devices.

Documentation structure

At Brightcove, we strive to keep the documentation structured, clean and intuitive. As such, we leverage github READMEs for details on all our plugins and integrations. For your convenience, we've listed and linked to these plugins below.

Supported versions

The Native SDK for iOS offers support for the following versions of iOS:

Active support

Brightcove provides active support for the latest iOS SDK on the latest public release of the following iOS versions:

  • iOS 18
  • iOS 17
  • iOS 16
  • iOS 15.7
  • iOS 14.8
  • iOS 13.7

Passive support

Brightcove provides passive support for the following iOS versions:

  • iOS 12.5.3

Understanding support levels

Support is defined in terms of the [major version].[minor version].[patch version] of an OS (for example: iOS 12.5.3). In order to take advantage of the latest technology improvements from Apple, we offer two levels of support:

  • Active: Brightcove will test and fix bugs on these OS versions.
  • Passive: Brightcove will test on these OS versions, but bug fixes will be handled on a case by case basis.

Generally, Brightcove provides active support for the versions of the OS that are used by 80% of the user base, and passive support for other versions used by at least 5% of the user base.

Getting started

Before beginning development with the Native SDK for iOS there are a few concepts you should learn about:

  1. Media

    The current version of the Native SDK supports playing content from your Video Cloud account through the Playback API, or as remote assets with internet accessible URLs.

  2. Analytics

    With the Native SDK, Video Cloud customers automatically get robust analytics data reported in Video Cloud.

  3. Core SDK and Dependencies

    The Brightcove Native SDK for iOS and its plugins can be added to your project using the CocoaPods dependency manager. The podspecs for all of the Brightcove Native SDK components are hosted in the BrightcoveSpecs repository.

  4. Native SDK Reference

    Learn about the Native SDK, including installation, quick start and architecture. You'll learn how critical components interact to handle the complexities of controlling the native video player.

    You'll also find the latest beta version of the SDK, if one exists.

  5. Native SDK Overview

    Learn how the Brightcove Native SDK components interact with the native iOS components.

  6. Video Training

    View a series of training videos that walk you through the steps of building a Swift app in Xcode that plays a video from your Video Cloud library.

  7. Mailing list

    Join the Brightcove Native SDKs mailing list to stay informed of release announcements for the Native SDKs.

Download the SDK

The Brightcove Native SDK for iOS contains two installation packages:

  • A dynamic framework which supports the following:
    • iOS 12 and higher
    • tvOS 12.0 and higher

Get the latest version of the Brightcove Native SDK for iOS:

  Package
(Github Repo)
Podspec Reference
Documentation
Notes Samples
SDK Native SDK for iOS 6.13.3 BrightcoveSpecs SDK Reference Release Notes Sample Applications

or select this button:


 

To view the product updates for all of the Native SDKs and the associated plugins, see the Release Notes for the Brightcove Native SDKs document.

Integrations

The following table contains links to get plugins integrated with your SDK implementation. The plugins can be downloaded from their respective Github repos, and each repo contains a detailed README with instructions on how to setup the plugin.

The sample applications demonstrate the basic functionality of each plugin integrated with the SDK. These sample apps are a good way to learn about each plugin, and serve as a reference point when debugging.

Previous integration versions

Category Brightcove Plugin
(Github Repo)
Podspec Reference Documentation Sample Apps Supported Partner/Vendor Plugin
Advertising IMA plugin 6.13.3 [1] [2] Brightcove-Player-SDK-IMA IMA Reference Google IMA Samples Google IMA SDK 3.19.1
FreeWheel plugin 6.13.3 Brightcove-Player-SDK-FW FreeWheel Reference FreeWheel Samples FreeWheel Ad Manager 6.52.0
Pulse plugin 6.13.3 Brightcove-Player-Pulse Pulse Reference Pulse Samples Pulse SDK 2.6.21.6.0
SSAI plugin 6.13.3 Brightcove-Player-SDK-SSAI SSAI Reference SSAI Samples VAST 4.1 AdVerification
DAI plugin 6.13.3 Brightcove-Player-SDK-DAI DAI Reference DAI Samples VAST 4.1 AdVerification
Analytics Omniture plugin 6.13.3 Brightcove-Player-SDK-Omniture Omniture Reference Omniture Samples Adobe Video Heartbeat 2.3.0

Adobe Marketing Cloud 4.21.2
Chromecast GoogleCast plugin 6.13.3 Brightcove-Player-GoogleCast GoogleCast Reference GoogleCast Sample Google Cast SDK 4.8.0

Combining plugins

With the Native SDK for iOS, the BCOVSessionProviders from each plugin are created and chained together. This chain is then used to create the BCOVPlaybackController . For details, see the Combining Plugins section of the SDK Reference.

Advertising with the IMA plugin

The placement of VAST ads is typically specified by a VMAP document. VAST describes an ad while VMAP describes the placement of ads in a video. For code details, see the BasicIMAPlayer iOS sample.

When working with IMA ads, it is best practice to check that your ads work outside of the SDK before implementing them. The following links will be helpful for this:

Samples

For samples and code snippets, see the following:

The following table contains links to code samples that are in addition to the samples associated with the integrations in the previous section.

Sample Application Description
360° Video Play a 360° video, as long as the projection property is set. When the Video 360 button in the control bar is tapped, the video is displayed in VR Goggles mode with side-by-side images. For details, see the Using 360° Videos with the Native SDKs document.
Basic Sample Play videos from a Video Cloud playlist.
Chromecast Display videos through Google Chromecast from your iOS devices.
Custom caption styles You can change caption styles by implementing your own captions rendering. This sample renders captions in a view which does not cover the video.
DRM with FairPlay Protect your content with FPS (FairPlay Streaming).
DVR Live [1] Run an HLS live stream.
Native Controls Use the iOS native player controls.
Offline Playback Download and play HLS videos, including those protected with FairPlay encryption. For an overview, see the Offline Playback with the Native SDKs document. For developer details, see the iOS App Developers Guide for Offline Playback.
Player UI Customization Experiment with several different layouts for custom controls. The Brightcove PlayerUI controls provide AirPlay functionality out-of-the-box. If you want to implement AirPlay with your own controls, see the Custom Controls for AirPlay code snippet.
Sidecar Subtitles Display captions for videos which include them in a separate file.

Solution guides

The following table contains links to developer docs which will help you get started with your own app using the Brightcove Native SDK, and guide you through some of the features and functionality available.

Guide Description
Brightcove Analytics Video Cloud customers will learn how to set properties in Brightcove Analytics from your mobile app using the Brightcove SDK for iOS.
Brightcove Native SDK for iOS Setup Learn the basics of working with the Brightcove Native SDK for iOS by walking you through the development of a simple video playback app using content from your own backend system.

Video Cloud customers will additionally retrieve and play a video from the Brightcove Catalog service.
IAB Open Measurement Learn how to use the Open Measurement SDK with the IMA plugin for support of third-party tools for ad measurement and verifcation.
Source Selection Learn about the default rendition selection process when playing a video.
WebVTT Captions Learn how to configure WebVTT captions for HLS videos when using the Native SDK for iOS.

Platform notes

The following notes are related to the iOS platform.

Mirroring your screen with Airplay

AirPlay functionality works out-of-the-box with the Native SDK for iOS, allowing users to stream video to high-definition displays with Apple TV.

You can use the Brightcove controls, or use your own custom controls for AirPlay. For details, see the Custom controls for AirPlay code snippet.