1

我在使用 Akamai 的 HLS 时遇到问题。我将 Akamai 的 HLS 与令牌一起使用,为了开始流式传输,应在主m3u8播放列表响应后设置 Cookie。

来自 Akamai 的回应:

Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:*
Access-Control-Expose-Headers:Content-Type
Cache-Control:max-age=0, no-cache, no-store
Connection:keep-alive
Content-Length:818
Content-Type:application/vnd.apple.mpegurl
Date:Wed, 17 Sep 2014 12:15:54 GMT
Expires:Wed, 17 Sep 2014 12:15:54 GMT
Mime-Version:1.0
Pragma:no-cache
Server:AkamaiGHost
Set-Cookie:_alid_=/cropped/
Set-Cookie:hdntl=/cropped/

Host.updateManifestRequestInfo在这两种情况下都在重写,这是一条死胡同。

如果您使用requestInfo.withCredentials = true;,响应将是:

XMLHttpRequest cannot load /*MEDIA_URL*/. A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin '/*PLAYERS_HOST*/' is therefore not allowed access. 

requestInfo.withCredentials = false;是 403 响应。

使用令牌从 Akamai 实施 HLS 自定义播放器的正确方法是什么?

4

2 回答 2

1

我知道这是一篇很老的帖子,但万一将来有人遇到同样的问题:如果您设置withCredentials为 true,那么 Akamai 响应必须通过其 CORS 标头明确授权您的 ChromeCast 接收器。

请让 Akamai 将您的接收器的域添加到他们的 CORS,问题将得到解决。请查看此页面以获取更多信息:https ://developers.google.com/cast/docs/player 。

于 2016-02-26T16:58:12.260 回答
0

您需要编写一个自定义接收器(使用 MPL)并使用 host 覆盖 updateManifestRequestInfo / updateSegmentRequestInfo 以实现所需的行为。

于 2014-09-17T13:55:50.327 回答