ChromeCast Player
This guide is for integrating the MediaMelon Player SDK for the javascript based CastPlayer Web
Step 1: Add the MediaMelonPlayer SDK
Add the MediaMelon SDK in the receivers application html file as shown in the below code snippet.
<script src="//www.gstatic.com/cast/sdk/libs/devtools/debug_layer/caf_receiver_logger.js"></script>
//MediaMelon SDK Integration Start
<script src="https://PATH_TO_MEDIAMELON_PLAYER_SDK/mmsmartstreaming_chromecastplayer.min.js"></script>
//MediaMelon SDK Integration Stop
<script src="js/receiver.js" type="module"></script>
Step 2: Register and Initialize the MediaMelon Player SDK
After the player instance has been created, create a new Plugin object, register, report player Info and then initialize the plugin as shown below:
//MediaMelon SDK Integration Start
import { CastRecvAdapter } from './mmsmartstreaming_chromecastplayer.min.js';
//MediaMelon SDK Integration Stop
.
.
const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
//MediaMelon SDK Integration Start
var castMM = new CastRecvAdapter();
if (castMM.getRegistrationStatus() === false) {
castMM.registerMMSmartStreaming("PLAYER_NAME", "CUSTOMER_ID", "SUBSCRIBER_ID", "DOMAIN_NAME", "SUBSCRIBER_TYPE");
castMM.reportPlayerInfo("PLAYER_BRAND", "PLAYER_MODEL", "PLAYER_VERSION");
}
castMM.initialize(playerManager);
//MediaMelon SDK Integration Stop
Step 3: Adding Asset Information or Custom MetaData
Sender application has to set the a extra "mmVideoAssetInfo" object in the chrome.cast.media.MediaInfo while sending chrome.cast.media.LoadRequest() as shown in below code snippet.
let mediaInfo = new chrome.cast.media.MediaInfo(MEDIA_SOURCE_ROOT + this.mediaContents[mediaIndex]['contentUrl'], this.mediaContents[mediaIndex]['contentType']);
mediaInfo.streamType = chrome.cast.media.StreamType.BUFFERED;
mediaInfo.metadata = new chrome.cast.media.TvShowMediaMetadata();
mediaInfo.metadata.title = this.mediaContents[mediaIndex]['title'];
mediaInfo.metadata.subtitle = this.mediaContents[mediaIndex]['subtitle'];
mediaInfo.metadata.images = [{
'url': MEDIA_SOURCE_ROOT + this.mediaContents[mediaIndex]['thumb']
}];
//MediaMelon SDK Integration Start
mediaInfo.mmVideoAssetInfo = {
"assetName": "ASSET_NAME",
"assetId": "ASSET_ID",
"videoId": "VIDEO_ID",
"contentType": "CONTENT_TYPE",
"genre": "GENRE",
"drmProtection": "DRM_PROTECTION",
"episodeNumber": "EPISODE_NUMBER",
"season": "SEASON",
"seriesTitle": "SERIES_TITLE",
"videoType": "VIDEO_TYPE",
"customTags": {
"key1": "VALUE_STRING1",
"key2": "VALUE_STRING2"
}
};
//MediaMelon SDK Integration Stop
let request = new chrome.cast.media.LoadRequest(mediaInfo);
Variable
Description
PLAYER_NAME
String containing the Player Name
CUSTOMER_ID
String containing your MediaMelon-assigned Customer ID.
SUBSCRIBER_ID
String containing your Subscriber’s ID. If you do not use subscriber IDs, enter null
DOMAIN_NAME
String containing your section of your subscriber or assets. (Optional)
SUBSCRIBER_TYPE
String containing the Subscriber Type (e.g. “Free”, “Paid”). If you do not use subscriber types, enter null
SUBSCRIBER_TAG
String containing an additional subscriber-specific information. This is sent in clear (not hashed) to SmartSight and it is advised to not send sensitive information in this field.
ASSET_ID
String containing Asset Id.
ASSET_NAME
String containing Asset Name.
VIDEO_ID
String containing your video’s ID. If you do not use videos IDs, enter null.
CONTENT_TYPE
String containing type of the Content. For example - "Movie", "Special", "Clip", "Scene Epis Lifts".
GENRE
String containing Genre of the content. For example - "Comedy", "Horror".
DRM_PROTECTION
Widevine, Fairplay, Playready etc. Unknown means content is protected, but protection type is unknown. For clear contents, do not set this field
EPISODE_NUMBER
String containing sequence number of the Episode.
SEASON
String containing the Season. For example - "Season1".
SERIES_TITLE
String containing Title of the Series.
VIDEO_TYPE
String containing Video Type. For example - "LIVE", "VOD".
CUSTOM_TAGS
Extra custom metadata can be added here if required. If extra metadata is not required, enter null.
PLAYER_BRAND
String containing Player Brand
PLAYER_MODEL
String containing Player Model. For example - This could be a variant of player. Say name of third party player used by organisation. Or any human readable name of the player.
PLAYER_VERSION
String containing Player Version
Last updated
Was this helpful?