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, is possible and start-point examples have been published on GitHub.
Assistance for setting up a Chromecast device can be found here.
Chrome sender apps need to support HTTPS to maintain Cast compatibility, as Chrome is deprecating support for the Presentation API on insecure origins. This means you must use our player on a HTTPS origin to insure Google Cast features work as expected.
ccFilessetting or in-manifest HLS/DASH captions
The following features are currently not supported by our custom Cast Application Framework (CAF) receiver app:
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:
Enables or not Google Cast detection. Default: true. This setting is not supported and automatically set to false for the following features: 360 video.
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'.
By default the player uses the VAST tag from the
adTagUrl setting to display ads on our Google Cast CAF receiver. Using
googleCastAdTagUrl lets you define a VAST tag that will only be used on our Google Cast CAF receiver.
If you want VMAP support on our Google Cast CAF receiver then you must explicitly pass your VMAP tag with this setting. Default: ''.
Additionally casted WebVTT captions can be customised. See our closed captions documentation for more information.
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:
In order to assist Radiant Media Player customers with this task, we have published start-point examples on GitHub.
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
castmedialoaded: media has been successfully loaded on receiving device
castmediaerror: media could not be loaded on receiving device - current casting session ends
castapiavailable: the Google Cast API has been successfully loaded and is now available. The global Google Cast related variables can now be accessed including
Supported player API methods include
getCastUrl: returns a
Stringrepresenting the currently cast URL.
getCastMediaLoaded: returns a
Booleanstating if a media is loaded on the receiving application.
getCastConnected: returns a
Booleanstating 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.