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:
Using Radiant Media Player in a Cordova or Ionic application is only available for PLATFORM edition customers.
Radiant Media Player can be used to build web-based mobile applications for the following mobile OS:
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.
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 11+ | 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) |
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'.
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).
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.
Refer to our Working with Apache Cordova guide.
Refer to our Working with Ionic Framework guide.
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.
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.
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: ''.
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.
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.
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 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.