Chromecast将元数据发送给接收方

时间:2015-10-03 18:28:30

标签: metadata chromecast receiver custom-receiver

我需要帮助,在我的客户接收器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() 

但没有运气。是否需要在接收器上编码才能使数据可用?

2 个答案:

答案 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)