我在html5视频标签上有这种奇怪的行为 . 我有4个视频,我想同时播放 . 因此,我创建自己的控制栏进行播放/暂停,因此单击播放按钮时,将播放所有4个视频,与暂停按钮相同 .
在野生动物园,它有奇怪的问题,视频没有同时播放,当我点击播放时,1或2个视频有延迟,所以不是所有视频同时播放 .
在Chrome和Firefox上,它的工作正常,safari有什么问题?
我正在使用javascript .play()
函数播放所有视频 .
我还确保在播放视频之前加载视频 . 就像是,
<video id="example_video_1" class="video-js vjs-default-skin" preload="auto">
<source src="asset/video/al_vertrag_kranken_v1_part1.ogv" type='video/ogg' />
<source src="asset/video/al_vertrag_kranken_v1_part1.mp4" type='video/mp4' />
<source src="asset/video/al_vertrag_kranken_v1_part1.webm" type='video/webm' />
</video>
video_1 = document.getElementById('example_video_1');
if (video_1.readyState == 4 && video_2.readyState == 4 && video_3.readyState == 4 && video_4.readyState == 4) {
video_1.play();
video_2.play();
video_3.play();
}
还有3个这样的视频标签,1只是一个例子 .
4 回答
请检查我准备好的这个小提琴,用Videojs进行测试
我认为你需要的;)
如你所见,safari的问题总是在发生 . 在铬或其他方面它完美地工作 . 它似乎是由开始播放视频时的延迟产生的 . 音频播放开始时也是如此 .
也许在that stack你会找到你的解决方案 . 似乎音频解决方案是生成一个swf(FLASH)对象并用它播放视频(不知道它但我会尝试用一个例子准备另一个编辑答案)
EDIT
希望对你有所帮助 .
尝试监视所有4个元素的
canplay
事件 . 就像是As per Safari HTML Audio Video Guide
同时将多个媒体元素同步在媒体控制器出现之前,确保两个或多个视频在同一时间播放是一项具有挑战性的工作 .
媒体控制器允许您对任意数量的音频和/或视频元素进行分组,以便它们可以通过一组通用控件进行管理,并且即使发生网络打嗝,它们也可以保持完美同步 .
要创建媒体控制器,只需将
mediagroup
属性添加到要同步的所有元素 . 您选择分配给mediagroup
的值取决于您 - 只要每个从属元素的值相同,就会隐式创建媒体控制器 .音频和视频元素可用的大多数相同的 functions , attributes 和 events 也可用于媒体控制器 . 您可以在媒体控制器上调用它们,而不是直接在视频本身上调用
play()
或pause()
.使用JavaScript控制媒体同步多个媒体元素2012-12-13 |版权所有©2012 Apple Inc.保留所有权利 .
注意:媒体控制器不支持的两个属性是循环和自动播放 .
访问任何从属媒体元素上的控制器对象将返回分组元素的控制器 . 您还可以完全使用JavaScript创建媒体控制器,而无需修改HTML的属性:
如果一个视频停顿或停顿,其他视频将自动暂停以等待滞后视频赶上 . 当视频缓冲并准备播放时,剩余的视频将恢复同步 .
我希望这有帮助...
你可以找到这个文档here
Safari目前不支持同时播放多个视频...
来自Safari HTML5音频和视频指南:
https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html#//apple_ref/doc/uid/TP40009523-CH5-SW10