Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-如何一次播放多个视频?_Javascript_Video_Html5 Video - Fatal编程技术网

JavaScript-如何一次播放多个视频?

JavaScript-如何一次播放多个视频?,javascript,video,html5-video,Javascript,Video,Html5 Video,我有一个视频元素数组,希望同时播放 我在网上找到的唯一可以做到这一点的方法是使用newmediacontroller()但这似乎没有得到广泛的支持 我期望做的是: var videos = document.querySelectorAll('video'); var mc = new MediaController(); video.forEach(function(el) { el.controller = mc; }); mc.play(); 我发现的唯一方法是在阵列上执行for

我有一个
视频元素数组
,希望同时播放

我在网上找到的唯一可以做到这一点的方法是使用
newmediacontroller()但这似乎没有得到广泛的支持

我期望做的是:

var videos = document.querySelectorAll('video');
var mc = new MediaController();
video.forEach(function(el) {
    el.controller = mc;
});
mc.play();
我发现的唯一方法是在阵列上执行
forEach
,然后一个接一个地播放它们,但我想知道是否有人知道是否有办法做到这一点,但您注意到播放时
video[0]
video[4]
之间有一点延迟

甚至可以用JavaScript使其看起来不可见吗


另外,这只需要是一个Webkit解决方案,因为这不是真正的浏览器解决方案,而是UE4游戏的前端解决方案。

我的假设是,它们不会立即玩,因为它们是异步加载的。我建议等待所有视频的就绪状态,然后逐个播放。下面是一个例子,说明你如何通过承诺实现这一目标

//获取所有视频。
var videos=document.queryselectoral(“视频”);
//创建一个承诺,等待同时加载所有视频。
//所有视频就绪后,调用resolve()。
var承诺=新承诺(函数(解析){
var=0;
视频。forEach(功能(v){
v、 addEventListener('loadedmetadata',函数(){
加载++;
如果(已加载===视频.length){
解决();
}
});
});
});
//只有当所有视频都准备好播放时,才能逐个播放所有视频。
promise.then(函数(){
视频。forEach(功能(v){
v、 play();
});
});


一种绕过多个播放限制的黑客方法是将多个视频缝合到一个视频中,并在放大时更改视口。不过,你必须对所有视频使用相同的音频。谢谢你的建议,但我认为这是不可能的,因为视频是动态的,基于视频所包含元素的稀有性,这意味着创建了更多的视频,而不是我目前拥有的4个稀有视频。你尝试过不同的视频源吗?我想,浏览器正在缓存来自同一URL的媒体