我遇到了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自定义播放器的正确方法是什么?
答案 0 :(得分:1)
我知道这是一篇非常古老的文章,但如果有人在未来遇到同样的问题:如果您将withCredentials
设置为true,那么Akamai的回复必须通过其CORS标头明确授权您的ChromeCast接收器。
请让Akamai将您的接收器域添加到他们的CORS中,问题将得到解决。有关详细信息,请查看此页面:https://developers.google.com/cast/docs/player。
答案 1 :(得分:0)
您需要编写自定义接收器(使用MPL)并使用主机覆盖updateManifestRequestInfo / updateSegmentRequestInfo以实现所需的行为。