我的测试页面上有 2 个视频元素,如下所示:
<div id="parent">
<video id="foo" autoplay>
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4" type="video/mp4" />
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.webm" type="video/webm" />
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.ogv" type="video/ogg" />
</video>
<video id="bar" autoplay>
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4" type="video/mp4" />
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.webm" type="video/webm" />
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.ogv" type="video/ogg" />
</video>
</div>
在最新的 FF 中,一切正常。然而,在 Chrome 中,这些视频都不会播放;查看 net 选项卡可以发现,他们陷入“待定”状态的时间从几秒到无限长不等。如果我注释掉/删除一个视频元素,另一个将播放。
我已经看到多个 Chromium 错误报告谈论类似的问题,但似乎没有一个与父容器直接相关。我尝试通过 JS 动态构建标记,结果相同。我也尝试过添加编解码器属性,但没有成功。
为了争论起见,可以说重组页面以使没有视频存在于同一父级中不是一种选择。这只是一个无法修复的错误吗?任何可能的解决方法,但是很老套?