Building A Mobile Video App With Web Technologies

Scope of support

You can use our HTML5 player to build video-oriented native mobile apps for Android and iOS. The player can be used in the following environments:

  • Apps built with Ionic
  • Apps built with Apache Cordova
  • WebView created from native code
  • Standalone web applications

Our player has been tested and optimised to work in the above environments to provide a video experience that can match apps built with native SDK - minus the cost and the headache of having to use native SDK.

Using Radiant Media Player to build native Android or iOS app is only available for PLATFORM edition customers.

Supported OS

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

  • Android 5+
  • iOS 12+ (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 12+ iPadOS 13+
HTML5 video ads (1)
VOD & Live streaming
Low-latency live streaming
DVR streaming (2)
360 video
Autoplay with sound (3)
Mobile-first & responsive UI
Widevine DRM (4)
FairPlay DRM (7) (7)
Offline DRM (8)
Google Cast (5)
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 built with Ionic, Cordova or WebView. 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. See this section for more information on limitations when using the Google IMA HTML5 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 Ionic mobile app

Refer to our Working with Ionic Framework guide.

Using Radiant Media Player in a Cordova mobile app

Refer to our Working with Apache Cordova 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.


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">


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": [
  "appWhitelist": [

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="rmp" 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.

©2015-2022 Radiant Media Player. All Rights Reserved.