2017-08-08 7 views
8

から再生していない、それは黒い画面を表示し、ビデオを再生することはありません。DRM WideVineビデオは、私は、デバイスをCHROMECASTために私のアンドロイド送信者を接続すると、私は次のよう<strong>キャストレシーバ</strong></p> <p>を使用していますアンドロイドキャスト送信側アプリケーション

https://github.com/googlecast/CastReferencePlayer

私は次のように受信機にwidevineためlicenseUrlを設定しています:

sampleplayer.CastPlayer.prototype.preloadVideo_ = function(mediaInformation) { 
    this.log_('preloadVideo_'); 
    var self = this; 
    var url = mediaInformation.contentId; 
    var protocolFunc = sampleplayer.getProtocolFunction_(mediaInformation); 
    if (!protocolFunc) { 
    this.log_('No protocol found for preload'); 
    return false; 
    } 
    var host = new cast.player.api.Host({ 
    'url': url, 
    'mediaElement': self.mediaElement_ 
    }); 
    host.onError = function() { 
    self.preloadPlayer_.unload(); 
    self.preloadPlayer_ = null; 
    self.showPreviewModeMetadata(false); 
    self.displayPreviewMode_ = false; 
    self.log_('Error during preload'); 
    }; 
     host.licenseUrl = event.data.customData.licenseUrl; 
     self.preloadPlayer_ = new cast.player.api.Player(host); 
     self.preloadPlayer_.preload(protocolFunc(host)); 
     return true; 
    }; 

host.licenseUrl = event.data.customData.licenseUrl。

私は開発者用コンソールに登録されているhttpsサーバでホストしています。

jsonオブジェクトにlicenseUrlというカスタムデータを渡しています。

私のAndroidの送信者設定コードメディア情報は以下のとおりです。

private MediaInfo buildMediaInfo() { 
     MediaMetadata movieMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE); 
     movieMetadata.putString(MediaMetadata.KEY_SUBTITLE, "Subtitle"); 
     movieMetadata.putString(MediaMetadata.KEY_TITLE, "Title"); 
     jsonObj = new JSONObject(); 
     try{ 
      jsonObj.put("licenseUrl","https://wv.test.expressplay.com/hms/wv/rights/?ExpressPlayToken=token-value"); 
     }catch (JSONException e){ 
      Log.e(null,"Failed to add description to the json object", e); 
     } 
     /*drmModel.getData().getStreamURL()*/ 
     return new MediaInfo.Builder("https://pathOfMystream.mpd") 
       .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED) 
       .setContentType("application/dash+xml") 
       .setMetadata(movieMetadata) 
       .setCustomData(jsonObj) 
       .setStreamDuration(player.getDuration()*1000) 
       .build(); 
    } 
  • さらにどのような変更を必要としていますか?

  • 受信機を編集する必要はありますか?はいの場合、どのような編集が必要ですか?


  • を変更する必要があるcustomData"licenseUrl" の文字列名ですか?

  • CORSはビデオコンテンツをホストしているS3サーバー上でを有効にしています。

助けてください!私はここで一週間以上立ち往生している。

ありがとうございます。

答えて

3

私はevent.data.customDataがアンドロイド送信アプリから接続中に定義されていないことを知りました。

だから私はevent.data.media.customData

を使用し、次のようにキーアクセス:

if(event.data.media.customData['licenseUrl'] !== null){ 
        console.log('setting license URL from mobile'); 
        host.licenseUrl = event.data.media.customData.licenseUrl; 
       } 
関連する問題

 関連する問題