Radiant Media Player

Google Cast support



Documentation sections


Google Cast™ support in Radiant Media Player

Google Cast badge
Google Cast and the Google Cast badge are trademarks of Google Inc.

Google Cast™ is a protocol allowing media data to be sent from an emitting (or casting) device to a receiving device (example a TV). This is generally referred to as "second screen experience" in the industry. The emitting/casting device can be a notebook or an Android tablet for example. One can then watch video content on a TV or larger screen while still being able to control the content through the casting device.

Radiant Media Player supports in-player Google Cast casting from Google Chrome (Desktop, Android) and other Cast-compatible browsers to any Google Cast compatible receiving device (like Chromecast or Android TV). Our implementation is based on Google Cast SDK v3. Information on Google Cast SDK can be found here.

When a Google Cast receiver is detected the player will automatically display a casting icon (as part of a player module). A dedicated user interface has been designed within Radiant Media Player to support remote controlling of media content when casting is engaged.

Since Radiant Media Player 4.7.0 we have published a custom Cast Application Framework (CAF) receiver app to Google which is used by default by the player. Further customisation of this CAF app receiver, including support for DRM and video ads, is possible and start-point examples have been published on GitHub.


Supported receiving devices

  • Chromecast
  • Android TV
  • Any Google Cast™ compatible receiving device

Assistance for setting up a Chromecast device can be found here.


Supported emitting devices

  • Google Chrome 32+ on Desktop/laptop: Windows, Linux & macOS
  • Google Chrome 51+ on Chrome for Android

Version 3 of Google Cast SDK does not currently support casting from Chrome on iOS. This should be enabled in a future Google Cast SDK release.


Supported features

  • In-player casting from desktop and mobile Chrome
  • Remote controlling
  • Adaptive bitrate with HLS, DASH or progressive download
  • DASH DRM (Widevine) & SAMPLE AES/AES-128 HLS
  • Video ads (client-side ad stitching is - currently this is not VAST compatible)
  • Multi-language WebVTT captions casting through the ccFiles setting or in-manifest HLS/DASH captions
  • Live and on-demand video support
  • Audio-only support
  • Playlist
  • Related content
  • Player API

The following features are currently not supported by our custom Cast Application Framework (CAF) receiver app:

  • DASH/HLS multi-audio tracks switching
  • HLS v4 (separated audio playlist), HLS with H.264/MP3 or fmp4 HLS
  • HLS with audio-only content
  • Casting of CEA* captions

Google Cast player settings

Radiant Media Player will automatically detect an in-range Google Cast receiver and will provide in-player casting options when needed.

The following player settings are available:

googleCast: Boolean

Enables or not Google Cast detection. Default: true. This setting is not supported and automatically set to false for the following features: 360 video.

googleCastPoster: String

By default the player uses the frame from the poster setting to be displayed on the Google Cast receiver when casting is engaged. Using the googleCastPoster setting you can provide a different poster frame URL for the Google Cast receiver. Default: ''.

googleCastReceiverAppId: String

Google Cast receiver app id. Since Radiant Media Player 4.7.0 we use a custom Cast Application Framework (CAF) receiver app. The application ID for this custom receiver is C899A03E. Default: 'C899A03E'. If you would rather use Google default receiver app (Receiver v2 app) you can set googleCastReceiverAppId to 'cast-default'.

googleCastMetadataType: String

Possible types of media metadata. Availables values are 'MOVIE', 'TV_SHOW' or 'GENERIC'. Default: 'GENERIC'. See Google docs for more information.

googleCastContentTitle: String

The content title to be displayed in the receiver application. Default: ''. If not set and contentTitle setting is available, contentTitle will be used.

googleCastReleaseDate: String

ISO 8601 date and/or time when the content was released, e.g. 2016-02-10. Default: ''. This information will be displayed underneath the googleCastContentTitle in the receiving application.

Additionally casted WebVTT captions can be customised. See our closed captions documentation for more information.


Building a custom Cast Application Framework (CAF) Receiver app

Our production custom CAF receiver app (this is default in Radiant Media Player for version 4.7.0+) should cover most generic case-scenario. However you should consider developing your own custom CAF receiver app in the following cases:

  • you need video ads support: client-side ad stitching is shown in the example above. Currently this is not VAST compatible (either through IMA or rmp-vast).
  • you need to support DRM: the DRM example above has been tested for DASH with Widevine DRM
  • you need to apply your own styling to the CAF player
  • you need to implement some other kind of custom behaviour required by your project

In order to assist Radiant Media Player customers with this task, we have published start-point examples on GitHub.


Player API

When casting is engaged two player exist at the same time: the remote player which lives in the receiver application and the local player which lives in the sender application. When a media is successfully cast from the sender application to the receiver application the local player is paused and its UI controls the remote player. The player API can be used to control the remote player when casting is engaged.

Supported player API events include

  • play
  • pause
  • playing
  • waiting
  • timeupdate
  • durationchange
  • volumechange
  • castmedialoaded: media has been successfully loaded on receiving device
  • castmediaerror: media could not be loaded on receiving device - current casting session ends

Supported player API methods include

  • play
  • pause
  • stop
  • getPaused
  • getVolume
  • setVolume
  • getMute
  • setMute
  • seekTo
  • getCurrentTime
  • getDuration
  • setSrc
  • getCastUrl: returns a String representing the currently cast URL. null is returned if this value is not available
  • getCastMediaLoaded: returns a Boolean stating if a media is loaded on the receiving application. null is returned if this value is not available
  • getCastConnected: returns a Boolean stating if the remote player is currently connected to the sender application. Note that in some instances (like when a media ends on the receiving application) the remote player can be connected to the sender application but with no media loaded within it. null is returned if this value is not available
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License.