如何发送自定义标题或验证Chromecast

时间:2018-08-01 21:24:48

标签: android http-headers chromecast receiver sender

我正在开发带有HLS流的视频应用程序。 仅当我发送请求https自定义标头时,才能播放这些流。 在iOS上,我喜欢这样:

NSMutableDictionary* headers = [NSMutableDictionary dictionary];
[headers setObject:@"MY_VALUE" forKey:@"MY_KEY"];
AVURLAsset* asset = [AVURLAsset URLAssetWithURL:videoTempURL options:@{@"AVURLAssetHTTPHeaderFieldsKey": headers}];
AVPlayerItem *myNewitem = [[AVPlayerItem alloc] initWithAsset:asset];

在Android上是这样的

DefaultHttpDataSource.Factory MGSource = new DefaultHttpDataSourceFactory(Util.getUserAgent( MainActivity.getContext(), "MY_USER_AGENT"), BANDWIDTH_METER);
MGSource.getDefaultRequestProperties().set("MY_KEY", "MY_VALUE");

,这些方法效果很好。

我想在ChromeCast上发送这些供稿。 因此,我研究了如何在Google Doc上进行操作,他们在接收器中这样说:

在此功能中:

sampleplayer.CastPlayer.prototype.loadVideo_ = function(info) {
  this.log_('loadVideo_');
  var self = this;
  var protocolFunc = null;
  var url = info.message.media.contentId;
...

host.updateSegmentRequestInfo = function(requestInfo) {
      // example of setting CORS withCredentials
      requestInfo.withCredentials = true;
      // example of setting headers
      //requestInfo.headers = {};


      //requestInfo.headers['content-type'] = 'text/xml;charset=utf-8';
      requestInfo.headers['MY_KEY'] = 'MY_VALUE';
      console.log("################# SENDING HEADERS");
    };

    host.updateManifestRequestInfo = function(requestInfo) {
        if (!requestInfo.url) {
          requestInfo.url = this.url;
        }
        requestInfo.withCredentials = true;
    };

    host.updateLicenseRequestInfo = function(requestInfo) {
      requestInfo.withCredentials = true;
    };

但这不起作用,有人可以告诉我如何将URL中的自定义标头发送到ChromeCast。 在Android发送者或接收者中。

非常感谢

0 个答案:

没有答案