3

我正在尝试从外部 url 播放电影的字幕,但它不起作用,当我尝试添加本地存储的 vtt 文件时,它可以工作。下面是代码 <video id="video" controls preload="metadata"> <source src="video/sintel-short.mp4" type="video/mp4"> <track label="English" kind="subtitles" srclang="en" src="http://devcache.filmflexmovies.com/Test/Movies/2016/6/28/SDFEATUREMOVIE/Creed ENG.VTT" default> </video> 上面的代码不起作用。但是当我复制 vtt 的内容时,它可以工作。 <video id="video" controls preload="metadata"> <source src="video/sintel-short.mp4" type="video/mp4"> <track label="English" kind="subtitles" srclang="en" src="abc.VTT" default> </video> 请帮忙。

4

1 回答 1

1

听起来您被跨域访问问题阻止了。要从不同的域访问 VTT 文件,您必须满足两个条件:

  1. 将正确的 CORS 标头添加到托管VTT 文件的站点。您可能无权访问此站点,但幸运的是,看起来正确的标题已被使用:Access-Control-Allow-Origin: *.
  2. 将 crossorigin="anonymous" 属性添加到页面的音频/视频元素。像这样的东西:

<video id="video" crossorigin="anonymous" autoplay controls preload="metadata">
  <source src="video/sintel-short.mp4" type="video/mp4" />
  <track label="English" kind="subtitles" srclang="en" src="http://devcache.filmflexmovies.com/Test/Movies/2016/6/28/SDFEATUREMOVIE/Creed ENG.VTT" default/>
</video>

我希望这对你有用。

于 2016-08-23T17:45:38.177 回答