使用MP4视频的Chromecast上的VTT字幕

时间:2014-05-23 16:52:45

标签: chromecast google-cast

我正在尝试使用隐藏式字幕来使用我的ChromeCast自定义接收器应用程序。我已将CORS标头添加到我的CDN。但是,当这些标题托管在与我的接收器应用程序所在位置不同的存储桶上时,我遇到了使用MP4视频文件正确加载标题的障碍。如果字幕与接收方应用程序具有相同的来源,则正确加载字幕,如this example app中所述。

我的发件人应用程序通过以下消息传递信息以启用字幕:

session.sendMessage('urn:x-cast:com.google.cast.sample.closecaption', message, 
onSuccess, onError);

我的接收器应用程序在收到此消息后,在接收器html上创建或替换track元素,指定正确的源。

trackElement.src = tracks[activeTrackLanguage];

但是,我收到以下错误:

Cross-origin text track load denied by Cross-Origin Resource Sharing policy.

在做了一些研究之后,我发现了视频元素的crossorigin属性。所以,在我的接收器调试控制台中,我在我的mp4视频已经加载后写了以下

document.getElementById('player').setAttribute('crossorigin', 'anonymous');

然后,我发送了启用标题消息以及我想要播放的标题,并且它有效!不幸的是,拥有crossorigin属性似乎阻止了我的MP4视频内容的正确加载,因为我在尝试加载视频时出现以下错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'https://mysite.com' is therefore not allowed access. 

只有当我将此属性添加到我的视频元素时才会出现加载我的MP4视频的错误。 mp4视频是否支持字幕/字幕?我的视频加载后是否需要添加crossorigin属性,然后在加载vtt后立即删除?看起来有点hacky。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

需要在您托管视频和曲目的服务器端配置CORS。