使用PlayReady进行Chromecast平滑流式传输

时间:2014-02-28 16:37:46

标签: cors google-cast chromecast

HY!

我想创建一个接收器应用程序,它可以播放具有播放保护的流畅流文件。

  var mediaElement = document.getElementById('media');

    var url = "http://*******.ism/manifest";
    var host = new cast.player.api.Host({ 'mediaElement': mediaElement, 'url': url, 'licenseUrl' : 'http://sl.licensekeyserver.com/core/rightsmanager.asmx', licenseCustomData : **THE CONTENT OF AUTH.XAML*** });


  host.updateSegmentRequestInfo = function (requestInfo) {
        requestInfo.withCredentials = true;
        requestInfo.headers = {};
        requestInfo.headers['content-type'] = 'text/xml;charset=utf-8';  // example of setting a header
    }

    host.onError = function (errorCode) {
        console.log("Fatal Error - " + errorCode);
        if (window.player) {
            window.player.unload();
            window.player = null;
        }
    };


    window.player = new cast.player.api.Player(host);

    protocol = cast.player.api.CreateSmoothStreamingProtocol(host);

    var initStart = 0;

    window.player.load(protocol, initStart);

但我有一个例外: 无法加载资源:请求的资源上没有“Access-Control-Allow-Origin”标头。因此不允许来源' .eu'访问。 http://sl.licensekeyserver.com/core/rightsmanager.asmx XMLHttpRequest无法加载http://sl.licensekeyserver.com/core/rightsmanager.asmx。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许来源'http:// .eu'访问。

http://sl.licensekeyserver.com/core/rightsmanager.asmx在根文件夹中包含cors.xml。

cors.xml的内容(如此处所述): https://developers.google.com/cast/docs/player

   <?xml version="1.0" ?>
  <CorsConfig>
<Cors>
    <Origins>
        <Origin>*</Origin>
    </Origins>
    <Methods>
        <Method>GET</Method>
        <Method>POST</Method>
    </Methods>
    <ResponseHeaders>
        <ResponseHeader>Content-Type</ResponseHeader>
    </ResponseHeaders>
</Cors>

更新#2 我们在服务器端设置了cors,现在我们得到了这个例外: 无法加载资源:Access-Control-Allow-Headers不允许使用请求标头字段content-type。 Access-Control-Allow-Headers不允许使用请求标头字段内容类型。

我们设置的host.updateSegmentRequestInfo是否正确?可能是什么问题?

更新#3

经过一些配置,我们可以播放视频......一次。

我们停止投射,我们想再次施放,但我们收到以下错误:

  

无法加载资源:服务器响应状态为500   (内部服务器错误)致命错误 - 2

如果我第二次演出,我们是否必须检查一下?我们重新启动了Google Cast设备并试图投射但没有任何反应。

更新4 一段时间后,使用PlayReady的SmoothStreaming工作正常,内部服务器错误已经消失。

感谢您的帮助!

0 个答案:

没有答案