2013-05-09 66 views
1

我正在为非常重媒体的客户端创建网站,因此需要加载大量视频/音频文件。这些视频在Chrome,Firefox,IE等中完美加载,但不支持Safari(在Windows上)!见下面的代码。HTML5视频在Safari中不能正常工作

<video controls="controls" type="video/mp4"> 
    <source src="/malagnini/video/sample.mp4" type="video/mp4" /> 
    <source src="/malagnini/video/sample.ogv" type="video/ogg" /> 
    <source src="/malagnini/video/sample.webm" type="video/webm" /> 
</video> 

所有MIME类型都已添加到htaccess文件中。

我使用AJAX加载一些视频(例如,当用户点击'视频类型'过滤器按钮),所以我在每次请求后加载视频,我知道Safari遇到问题。但即使在请求之前,视频也没有播放。

是否还有其他盒子需要打勾? (我安装了QuickTime,我知道它是在Windows上通过Safari运行HTML5视频所必需的)。

顺便说一句,视频在iPhone中的DO负载,但他们需要很长的时间来加载。

+0

Windows上的Safari浏览器已经很长寿了 - 即使安装了QT,我从未有过特别好的体验。你有什么想法你的用户年龄有多少组合 – Offbeatmammal 2013-05-10 05:13:59

+0

不,我没有数字。但现在我已经解决了这个问题 - 这是一个Safari错误,当动态更改src时,不会加载新视频。下面回答。 – FunnyOxymoron 2013-05-10 10:03:11

回答

2

现在解决了。 Safari有一个bug,动态修改src属性的视频无法加载。

要解决这个问题,视频元素必须克隆然后删除。 src路径可以更新为克隆的元素,重新加载到DOM中,然后正常加载。

+1

我与Safari有同样的问题。你能举一个解决方案的例子吗? – DevDave 2013-08-16 09:56:47

0

@FunnyOxymoron Clonning &删除<video>元素是不是一个好主意,因为在iPhone/ipad公司的用户将不得不以激活<video>对象再次点击播放按钮。正确的解决方案是替换src属性 - 以及它在Safari上的工作方式。看到这里的例子:https://stackoverflow.com/a/27284512/2079326