我需要帮助,在我的客户接收器Chromecast应用中,我无法获取应用初始化的媒体元数据。
在成功的会话请求之后我加载了这样的媒体:
var mediaInfo = new chrome.cast.media.MediaInfo('https://wse-wowaza01.playne.tv:443/webdrmorigin/1042a2W.smil/manifest.mpd');
mediaInfo.customData = {
"userId": "mislav",
"sessionId": "39BE906248F9F5C4A93C7",
"merchant": "playnr"
};
mediaInfo.metadata = new chrome.cast.media.MovieMediaMetadata();
mediaInfo.metadata.metadataType = chrome.cast.media.MetadataType.MOVIE;
var img = new chrome.cast.Image('https://ottservice.playnr.tv/OTTranscoderHttps/get?url=http%asd9.168%2f20664_5b8df65c-67ff-4f13-b90d-b28c37f2310c.jpg&w=224&h=126');
mediaInfo.metadata.images = [img];
mediaInfo.contentType = 'video/mp4';
var request = new chrome.cast.media.LoadRequest(mediaInfo);
//this.playerState = this.PLAYER_STATE.LOADING;
this.session.loadMedia(request,
this.onLoadMediaSuccess.bind(this, 'loadMedia'),
this.onLoadMediaFailure.bind(this)
);
如何在接收器应用中访问该元数据?我试过
cast.receiver.MediaManager.getInstance()
但没有运气。是否需要在接收器上编码才能使数据可用?
答案 0 :(得分:2)
谢谢你的帮助,指出了正确的方向。
搞定了,这就是问题所在。我正在使用第三方DMR javascript插件进行内容保护。它封装了cast_receiver并且已经实例化了MediaManager& ReceiverManager,我没注意到。然后我实例化了新的mediaManager,但它没有绑定任何数据。暂停/播放事件都是由plugins mediamanager实例处理的,所以我的实例没用。一旦我引用了allready instantiated mediamanager,数据就在那里,他的事件正在发挥作用。与接收方管理器一样,我启动了已经启动的实例和问题....结论,我不需要实例化任何,DRM插件可以处理所有事情,只需要覆盖他的事件处理程序
答案 1 :(得分:1)
取决于您希望在接收器上访问该信息的位置。例如,在许多回调中,您有一个类型为cast.receiver.MediaManager.Event的“事件”,例如,您可以通过event.data从中获取cast.receiver.MediaManager.LoadRequestData对象。然后,此数据对象具有您的customData(data.customData)