Safari无法加载MP4视频

时间:2017-10-10 01:36:42

标签: javascript safari mp4

最新的Safari v11.0无法播放已通过JavaScript动态设置的MP4视频。但这在Chrome,Edge和FF上运行良好。

我的代码将src元素设置为指向MP4资源,如:

<video class="replay" autoplay="true" autostart="true" autobuffer="true" playsinline="true" webkit-playsinline="webkit-playsinline" controls="controls" style="" preload="auto" muted="true">
    <source src="https://videomail.io/videomail/11e7-ad5a-4b14b680-a354-934ec5b49c33/preview/type/mp4/x-videomail-site-name/videomail.io/videomail.mp4?1507598907103" type="video/mp4">
</video>

问题是Safari在网络标签下以红色突出显示:

enter image description here

根据要求&amp;响应(右侧)它说它被取消了。为什么呢?

在请求标题下,我看到:Range bytes=0-1。看起来很奇怪。虽然我卷曲了这个资源并且看起来很好,但可以完全下载。

尝试了许多不同的变化,都失败了。不确定它是否是一个nginx问题,我的JS代码或Safari中的错误。任何线索都非常受欢迎。

很容易重现:

  1. 在Safari中,转到www.videomail.io
  2. 开始录制视频
  3. 点击预览,不会显示任何视频(在Chrome上正常运行)

2 个答案:

答案 0 :(得分:0)

----最终解决方案----

通过在express.js控制器代码中使用以下来解决此问题:

  res.sendFile(file, {
    lastModified: false,
    acceptRanges: true,
    cacheControl: false
  }, function (err) {
    if (err && err.code !== 'ECONNRESET') {
      next(err)
    }
  })

答案 1 :(得分:-1)

添加X-pad: avoid browser bug响应标头可以解决我的问题。