<video>标记Firefox和Opera中的HTML5缓存</video>

时间:2012-05-22 10:05:23

标签: html5 firefox caching video opera

我在Firefox和Opera中使用HTML5标记时遇到问题。

我的页面有一个按钮,用于在点击时在服务器中生成新视频(始终使用相同名称),并在生成视频时显示在带有视频... /视频的页面中。

问题是Firefox和Opera总是在页面中显示视频的第一个版本,如果我直接输入视频URL,则显示最后一个版本(正确)。

我尝试使用“meta http-equiv =”Cache-control“content =”no-cache“”删除缓存,但它没用。

在Chrome和Safari中,它可以完美运行。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:5)

3个选项:

  1. 为视频文件发送正确的缓存控制标头。这将通过htaccess文件或web.config文件(Apache / IIS)完成。虽然本质上是一个很好的解决方案,但在某些浏览器中它可能仍会失败
  2. 将时间码附加到此路径:http://mydomain.com/mypath/myvideo.mp4?t=13591239123
  3. 始终为视频文件使用新名称 - 例如通过计算生成的视频并按顺序对它们进行编号
  4. 选项3以及删除旧视频的cronjob可能是最好的 - 否则同时查看您页面的两个用户会覆盖彼此的视频。

    选项1/2适用于单用户环境。

    选项2会在生成新视频后重置<video id='myvideo'>元素的路径:

    document.getElementById('myvideo').setAttribute("http://mydomain.com/mypath/myvideo.mp4?t="+(+new Date());
    

    请注意,此解决方案仅处理一个源文件。为了在所有浏览器中工作,你需要mp4和webm(或ogv)文件 - &gt;两个视频文件 比较http://caniuse.com/webmhttp://caniuse.com/mpeg4