1

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

但没有运气。在需要对接收器进行编码以使数据可用之前是否有任何步骤?

4

2 回答 2

2

感谢您的帮助,为我指明了正确的方向。

搞定了,这就是问题所在。我正在使用 3rd 方 DMR javascript 插件进行内容保护。它封装了 cast_receiver 并且已经实例化了 MediaManager 和 ReceiverManager,我没有注意到。然后我实例化了新的 mediaManager,但它绑定到任何数据。暂停/播放事件都由插件媒体管理器实例处理,所以我的实例没用。一旦我引用了已经实例化的媒体管理器,数据就在那里,他的事件正在工作。与接收器管理器相同,我启动了已经启动的实例并且出现问题......所以结论,我不需要实例化任何东西,DRM 插件会处理所有事情,只需要覆盖他的事件处理程序

于 2015-10-04T19:04:13.193 回答
1

取决于您希望在接收器上访问该信息的位置。例如,在许多回调中,您有一个 cast.receiver.MediaManager.Event 类型的“事件”,您可以通过 event.data 从中获取例如 cast.receiver.MediaManager.LoadRequestData 对象。然后这个数据对象有你的 customData (data.customData)

于 2015-10-03T19:02:03.273 回答