首先,我想问这个问题。如果没有任何其他视频内容,我无法加载元数据。preload = "metadata"
不管用。我在 Win Chrome 上测试,不知道它在 Safari/FF/IE/Opera 上如何工作。因此我无法快速加载六个或更多视频剪辑。 Chrome 可能会保留仅六个打开的连接在类似的端口/协议/域。如果我加载超过六个视频,则最后一个视频不会开始加载,而前六个视频则不会开始加载完全完成加载中。
jsfiddle需要吗?我可以创造,但我认为没有必要。例如。 HTML:10 html5<video>
每个大约 100mb 和preload=metadata
属性。 JS(使用 jQuery 只是为了清楚起见):
$('video').on('loadedmetadata',function(){
console.log(this.duration);
}).each(function(i){
this.load();
});
然后在 Chrome 开发工具中打开“网络”选项卡并重新加载页面。六个视频将开始加载并加载完整内容,而其他四个视频将等待(pending)
标记。首先,控制台会出现6条消息。完全加载任何第一个视频后,将出现新消息。
我尝试了很多事情,但每一项都失败了。现在我想在服务器端获取元数据。 PHP 有什么解决方案吗?但JS解决方案会更好。
我还知道使用 Youtube、可能是 Vimeo 和其他一些网站的解决方案。即将视频保留在某些子域(s1.youtube.com、s2.youtube.com 等)上。但我不能使用它。我制作网站模板,它有一些要求。
我有一个视频库,里面有很多视频。播放器必须在首次播放视频之前显示持续时间并了解宽度/高度。我还想从视频中间取帧作为视频海报。我需要任何停止视频加载和关闭连接的解决方案。它确实解决了获取元数据的问题。
v42 的情况现在会更糟(目前是测试版 - 所以希望能得到修复)
现在它尊重preload='metadata'
但不会将连接释放回池中,因此在加载 6 个视频后,它会完全卡住!
请参阅错误报告:https://code.google.com/p/chromium/issues/detail?id=468930 https://code.google.com/p/chromium/issues/detail?id=468930
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)