如何使用Media Player库在Chromecast上流式传输COR



chromecast支持在mpeg-dash,"平滑流"和HLS和媒体播放器库中的流式传输:https://develovelers.google.com/cast/cast/docs/player提供这些javascript支持这些支持。一种用例。

由于流式协议(与大多数基于文件的协议不同,因此使用XMLHTTPRequest以异步方式访问内容,因此,它们会从资源源于的服务器中的CORS Header避免使用不适当的访问。

这是一个反复出现的问题,即如何在各种环境中启用CORS在Chromecast上流式传输,例如开发,生产,CDN,托管云等。分享您在此主题上的经验。

要开始在此主题上开始,请记住,媒体播放器库创建的所有请求:https://developers.google.com/cast/docs/player使用get或post方法。就COR而言,这些请求中的大多数都属于简单请求类别(与所谓的预覆盖请求相对)。有关此的更多详细信息,请查看以下链接:https://developer.mozilla.org/en-us/docs/http/access_control_cors.

为您的所有媒体内容设置CORS,涉及涉及清单,次要清单,细分市场和加密密钥的所有媒体内容,如果您可以访问服务器,则可以添加一个.htaccess文件,其中包含一个非常宽松的行,例如:

标题设置访问控制 - 允许 - 原素"*"

,或者您可以将此行添加到块中的Apache Server配置文件中,然后重新启动Apache服务器。您可以验证相应的响应将具有这样的标题字段:

访问控制:·*(cr)(lf)

如果您与CDN合作,则必须与它们合作并添加必要的标题字段。

正确配置了CORS后,您将不会看到可怕的网络错误代码:cast.player.api.errorcode.network。

以下是提供CORS标头字段的流的示例:

mpeg-dash:
-http://commondatastorage.googleapis.com/gtv-videos-bucket/dash/bigbuckbunny/bunny_10s/bigbuckbundny_10s_isoffmain_url_url_url_relation_relation_relation_relation_dis_dis_dis_23009_1_1_1_1_1_v_v_v_1c_1c_1c2_2011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110.08.30.MPD -http://yt-dash-mse-test.commondatastorage.googleapis.com/media/car-20120827-manifest.mpd

平滑流媒体: -http://playready.directtaps.net/smoothstreaming/sswss720h264/superspeedway_720.ism/manifest -http://playready.directtaps.net/smoothstreaming/sswss720h264pr/superspeedway_720.ism/manifest

但是,下面的此HLS流在其响应中不提供CORS访问控制 - 允许的标头字段。

http://devimages.apple.com.gedkey.net/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8

您可以使用例如此工具:http://web-sniffer.net/到嗅探标题。

此信息是在大多数CDN上的http://enable-cors.org/,但是很高兴看到所有CDN的信息。

最新更新