Skip to content

THEOplayer/flutter-theoplayer-sdk

Repository files navigation

THEOplayer Flutter SDK

Table of Contents

  1. Overview
  2. Prerequisites
  3. How to use these guides
  4. Features
  5. Getting Started
  6. Contributing

Overview

The theoplayer package provides a THEOplayer component supporting video playback on the following platforms:

  • Android, Android TV & FireTV
  • iOS
  • HTML5 (web, mobile web)
  • OUT OF SCOPE: Tizen and WebOS (smart TVs, set-top boxes and gaming consoles).

This document covers the creation of a minimal app including a THEOplayer component, and an overview of the accompanying example app.

It also gives a description of the properties of the THEOplayer component, and a list of features and known limitations.

Prerequisites

For each platform, a dependency to the corresponding THEOplayer SDK is included through a dependency manager:

  • Gradle & Maven for Android
  • Cocoapods for iOS
  • npm for Web *

*the initial version of the SDK relies on a local copy of THEOplayer.chromeless.js (and additional modules), so adding it manually is required!

In order to use one of these THEOplayer SDKs, it is necessary to obtain a valid THEOplayer license for that specific platform, i.e. HTML5, Android, and/or iOS. You can sign up for a THEOplayer SDK license through our portal.

If you have no previous experience in Flutter, we encourage you to first explore the Flutter Documentation, as it gives you a good start on one of the most popular app development frameworks.

How to use these guides

These are guides on how to use the THEOplayer Flutter SDK in your Flutter project(s) and can be used linearly or by searching the specific section. It is recommended that you have a basic understanding of how Flutter works to speed up the way of working with THEOplayer Flutter SDK.

Features

Depending on the platform on which the application is deployed, a different set of features can be available.

If a feature is missing, additional help is needed, or you need to extend the package, please reach out to us for support.

Feature Android, Android TV, Fire TV Web iOS, tvOS
Streaming MPEG-DASH (fmp4, CMAF), HLS (TS, CMAF), Progressive MP4, MP3 HLS (TS, CMAF), Progressive MP4, MP3
Content Protection Widevine Widevine, Fairplay Fairplay
DRM Connectors Through hooking into native implementation… check guides!
Subtitles & Closed Captions In-stream subtitles supported by the platform.
Note: If you use Texture-based rendering (SURFACE_TEXTURE and SURFACE_PRODUCER) on Android, you need to implement the subtitle rendering based on track events.
Metadata Event stream, emsg, ID3, EXT-X-DATERANGE
Fullscreen Supported through player.presentationMode API
Picture-in-Picture Supported through player.allowAutomaticPictureInPicture API Supported through player.presentationMode API Supported through player.allowAutomaticPictureInPicture API
Advertising Integration Coming soon… (Can not wait? Check our in-app integration branches)
Analytics Connectors Coming soon…
Cast Integration Coming soon… (Can not wait? Check our in-app integration branches)
THEOlive Coming soon… (Can not wait? You can still use our THEOlive SDK) Supported through THEOliveSource and player.theolive API Coming soon… (Can not wait? You can still use our THEOlive SDK)

Getting Started

This section starts with creating a minimal demo app that integrates the theoplayer package, followed by an overview of the available properties and functionality of the THEOplayer component. A minimal example application including a basic user interface and demo sources is included in this repository, and discussed in the next section. Finally, an overview of features, limitations and known issues is listed.

Contributing

All contributions are welcomed!

Please read our Contribution guide on how to get started!