Radiant Media Player

Building a video-oriented mobile app with web technologies



Documentation sections


Scope of support for building a mobile app with web technologies and Radiant Media Player

You can use Radiant Media Player to build video-oriented mobile apps for Android and iOS. The player is equipped with various optimisations, notably file:// protocol support, to work in the following environments:

  • Apps built with Apache Cordova
  • Apps built with Ionic
  • Standalone web applications
  • WebView created from native code: for example when viewing content through Facebook in-app browser

Using Radiant Media Player in a Cordova or Ionic application is only available for PLATFORM edition customers.


Supported OS

Radiant Media Player can be used to build web-based mobile applications for the following mobile OS:

  • Android 5+
  • iOS 10+ (WKWebView)
  • iPadOS 13+ (WKWebView)

With the announcement of Apple in december 2019, to remove support for UIWebView API by end 2020, we only support WKWebView API for iOS apps built with Cordova or Ionic. See this blog post to help you update to WKWebView API.


Supported features

All player features available for the mobile web are generally available with Radiant Media Player for mobile apps. Below is a non-exhaustive list of features you can expect to be available when using Radiant Media Player in a mobile app:

Feature Android 5+ iOS 10+ iPadOS 13+
HLS
AES HLS
DASH
Progressive download
HTML5 video ads (1)
VOD & Live streaming
DVR streaming (2)
360 video
Autoplay (with audio) support (3)
Mobile-first & responsive UI
Player API
Widevine DRM (4)
FairPlay DRM (HLS) (7) (7)
Google Cast (5)
AirPlay
Offline playback/download/storage(6)

Video ads support in mobile apps

We do support using video ads in an iOS, iPadOS or Android mobile app. It should be noted that since the HTML5 Google IMA SDK is not officially supported in an iOS or Android WebView, the preferred solution is to use our VAST parser rmp-vast. However if you are using Google Ads (DFP, AdSense for Video, AdX) we still recommend using the IMA SDK even in OS or Android mobile app. See this section for more information on using the IMA SDK in a mobile app. The VAST parser can be selected with player setting adParser set to 'ima' or 'rmp-vast'.


Widevine DRM support in Android apps

Using Widevine DRM in an Android WebView requires the Widevine CDM to be available in that WebView. Older versions of Android System WebView may not come with that CDM so older Android devices (typically before Android 7) may not always be able to decode Widevine DRM encrypted content (an error message is shown to the viewer in that context).


Offline playback/download/storage

With Radiant Media Player 5.7.6 we now support offline download and storage of media content for offline playback in a Cordova/Ionic mobile apps. This is supported for Android 5+ and iPadOS 13+.

Offline player starts are saved locally and push to our logging servers when an Internet connection becomes available.


Using Radiant Media Player in a Cordova mobile app

Refer to our Working with Apache Cordova guide.


Using Radiant Media Player in a Ionic mobile app

Refer to our Working with Ionic Framework guide.


Using Radiant Media Player in a standalone web application

A standalone web application is designed to look and behave in a way similar to a native application - for example, it is scaled to fit the entire screen of a device. You can tailor your web application for Safari on iOS or Chrome for Android even further, by making it appear like a native application when the user adds it to the "Home screen".

When embedded in a standalone web application the player adds the rmp-standalone class to its container. You can also query the player API isStandalone method which should return a boolean stating if the player is currently used in a standalone web-app or not.


iOS

Apple has documentation on how to configure standalone web applications. Notably this is achieved by adding the following meta tag to your HTML page:

<meta name="apple-mobile-web-app-capable" content="yes">

Android

For Chrome on Android Google has a guide for Installable Web Apps with the Web App Manifest. This approach follows the W3C Web App Manifest specification which is also available in Firefox.


Mobile apps specific player settings

The following settings should only be used in the context of a mobile app:

appName: String

This setting allows to set a unique app name with Radiant Media Player. This app name will then be used as an unique identifier in our back-end reporting section. It can be read with API method getAppName. Default: ''.


App white-listing (PLATFORM Edition)

By default you can use your platform edition license key on any app requiring the FILE protocol. However you may want and it is recommended to lock usage of your license key to a limited number of apps.

Similarly to white-listing domains for usage on web sites you can white-list mobile/OTT apps (when rendered through the FILE protocol). This is a 2-steps process.


Add white-listing information in our back-end

First you need to tell us what is the name of your app(s) you want to white-list. This is done in our back-end in the PLATFORM > Black/white listing tab. You need to update the white-list JSON file that you upload with the name of your app(s). Example:

{
  "whitelist": [
    "site1.com",
    "site2.net",
    "site3.info"
  ],
  "appWhitelist": [
    "mySuperApp",
    "myOtherCoolApp"
  ]
}

Note that the appWhitelist Array comes in supplement to the whitelist Array. Adding your app name to the whitelist Array will have no effect, you need to create a separated entry under appWhitelist Array. Your app name could be anything but as a rule of thumb try to keep it simple, descriptive and avoid spaces or special characters.


Pass white-list data to the player

In order to verify the validity of an app name uploaded to our back-end the player must be able to identify the app name within the app. This is done by using a custom attribute data-rwlan on the player container:

<div id="rmpPlayer" data-rwlan="bXlTdXBlckFwcA=="></div>

The custom attribute data-rwlan value will be recognised by the player and compared to white-list data held in our back-end to authorise (or not) the player to function within your app. The data-rwlan value must be a string containing the Base64 representation of your app name. With JavaScript this can be obtained with the btoa method. In the example above bXlTdXBlckFwcA== is the string Base64 representation of app name: mySuperApp.


App white-listing considerations

App white-listing will only come into effect when the FILE protocol is in use. Where the HTTP protocol is in use the player will rely on classic domain-based white/black listing. Even if you only use the player in a mobile app we recommend to always set "whitelist" (or "blacklist") and "appWhitelist" in your JSON file.

If an app white-list is available in our back-end for your PLATFORM Edition license key but the player container does not have a data-rwlan attribute or if the data-rwlan value does not match an app name registered in our back-end for your license key, the player will not work within the targeted app.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License.