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

助けてくれてありがとう、正しい方向に私を指摘しました。

うまくいきました、これが問題でした。コンテンツ保護にサードパーティの DMR JavaScript プラグインを使用しています。これは cast_receiver をカプセル化し、すでに MediaManager と ReceiverManager をインスタンス化していましたが、私はそれに気づきませんでした。次に、新しい mediaManager をインスタンス化しましたが、データにバインドされていました。一時停止/再生イベントはすべてプラグインの 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 に答える