JavaScript - 如何同时播放多个视频?

2023-12-06

我有一个array我希望同时播放的视频元素。

我在网上找到的唯一方法是使用new MediaController();但这似乎并没有得到广泛/如果有支持的话。

我期望做的是:

var videos = document.querySelectorAll('video');
var mc = new MediaController();
video.forEach(function(el) {
    el.controller = mc;
});
mc.play();

我发现做到这一点的唯一方法是做forEach在阵列上并一个接一个地播放它们,但我想知道是否有人知道是否有办法做到这一点,但你注意到之间有轻微的延迟video[0] and video[4]玩的时候。

是否有可能使用 JavaScript 让这变得无缝?

附:这只需是一个 Webkit 解决方案,因为这并不是真正适用于浏览器的东西,而更多的是适用于 UE4 游戏的前端。


我的假设是它们不会立即播放,因为它们是异步加载的。我建议等待所有视频的就绪状态,然后一一播放。以下是如何使用 Promise 实现此目标的示例。

// Get all videos.
var videos = document.querySelectorAll('video');

// Create a promise to wait all videos to be loaded at the same time.
// When all of the videos are ready, call resolve().
var promise = new Promise(function(resolve) {
  var loaded = 0;

  videos.forEach(function(v) {
    v.addEventListener('loadedmetadata', function() {
      loaded++;

      if (loaded === videos.length) {
        resolve();
      }
    });
  });
});

// Play all videos one by one only when all videos are ready to be played.
promise.then(function() {
  videos.forEach(function(v) {
    v.play();
  });
});
<video width="400" controls>
  <source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
</video>

<video width="400" controls>
  <source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
</video>

<video width="400" controls>
  <source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
</video>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript - 如何同时播放多个视频? 的相关文章

随机推荐

  • 未捕获的语法错误:main.546ac9e6.chunk.js:1 中出现意外的标记“<”[已关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我们有这个使用 create react app 构建并部署的 Web 应用程序 现在我们在控制台中收到此错误 Uncaught SyntaxError Unexpected token
  • PHP 会话变量未定义

    我有这个会话变量 当用户使用以下命令登录时 我试图将其设置为访问级别 accessquery mysql query SELECT roleid FROM person WHERE email email access mysql fetc
  • 如何在 JavaScript 中判断日期是否是周末

    如果我有一个约会要参加某个活动 我如何判断这是否是周末 var dayOfWeek yourDateObject getDay var isWeekend dayOfWeek 6 dayOfWeek 0 6 Saturday 0 Sunda
  • Facebook SDK didLoad:结果 = null

    我有一个 Facebook 单例并请求它来获取个人资料图片 FacebookScorer sharedInstance facebook requestWithGraphPath me picture type normal andDele
  • 在有界泛型类型上使用 Partial 时出现问题

    function f
  • 如何按2个数据属性对div进行排序?

    如何修改我的代码 以便它同时按数据状态和数据顺序排序 即期望的结果是1 2 3 4 我需要支持IE document body on click sortthem function var divList sortme divList so
  • 静态嵌套类可以访问外部类的私有构造函数

    It is stated that 静态嵌套类与其外部的实例成员交互 类 和其他类 就像任何其他顶级类一样 在 结果 静态嵌套类在行为上是一个顶级类 为了打包方便 已经嵌套在另一个顶级类中 那么如何解释这个静态嵌套类可以访问其封闭类的私有构
  • 如何在jmeter中使用jsr 223预处理器? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有人请帮助我如何使用脚本编写jsr223预处理器在Jmeter和一些examples 任何最好的网站tutorial对于相同的 提前致谢 SIJO
  • Python 3.2 中 __hash__ 是如何实现的?

    我想使自定义对象可哈希 通过酸洗 我能找到 hash Python 2 x 的算法 参见下面的代码 但显然differs来自 Python 3 2 的哈希 我想知道为什么 有谁知道如何 hash 在Python 3 2 中实现 Versio
  • 我如何获得通用参数的类别[重复]

    这个问题在这里已经有答案了 可能的重复 使用反射获取java中泛型参数的类型 如何获取泛型的类 我如何获取通用参数的类 public
  • 为什么 console.log 显示不正确的对象值?

    我不明白为什么console log显示d1包含 100 200 300 在我介绍这些数字之前 常规的for loop显示内部结构d1虽然正确 有人可以解释一下这个行为 错误吗console log在谷歌浏览器中 https jsfiddl
  • 如果 XML 文件为空,则捕获 PHP 错误

    所以我从 XML 文件中获取一些信息 如下所示 url http myurl blah xml simplexml load file url 除了有时 XML 文件是空的 我需要代码正常失败 但我似乎不知道如何捕获 PHP 错误 我试过这
  • Math.random() === Math.random() 是否可能

    在 JavaScript 中 这个表达式在任何浏览器中都会计算为 true 吗 为什么或者为什么不 Math random Math random 注意 请请按字面意思理解上面的代码 我不是问 Math random 是否会生成重复值 注意
  • crm 2016 在线不支持 SetParameter("fetchXml", FetchXml)

    我有这个代码 function FilterCasesSubgrid var CasesSubgrid Xrm Page getControl contact getGrid var CasesSubgrid window parent d
  • XPages ValuePicker 仅限 1000 个

    我使用 valuePicker 和 DojoListTextBox 设计元素 如果我有超过 1 000 个值 则此值选择器最多列出 1 000 条记录 如何增加这个限制 我只是想让它列出我有多少个值
  • AES 填充无效且无法删除

    我正在使用 AES 加密算法来加密和解密项目中的值 我的代码几乎每次都能工作 但有时我会得到Padding is invalid and cannot be removed错误 我的项目是 ASP NET Core 3 1 项目 它发布在
  • 在运行集成测试之前,如何让 Maven 构建等待 Jetty 服务器以分叉模式启动?

    我有一份关于代码覆盖率的报告一体化 test 我确实有集成测试 并且这些测试在 Maven 构建中成功运行 当我单击 HTML 报告右上角的 会话 链接时 我可以在列表中看到我的测试类 但我看不到现在由测试执行的主要类 并且所有覆盖率报告百
  • 如何在C#中的列表框中插入复选框?

    我想要一个代码来在 C Sharp 的列表框中插入一个复选框 选择该复选框后 必须选择列表框中的所有项目 您可以使用 CheckListBox 显示一个列表 其中每个项目旁边都有一个复选框 但是要制作一个选择列表中所有内容的复选框 它必须是
  • socket.io 删除特定侦听器

    我正在使用 Socket io v0 9 16 和 铬34 我正在尝试删除特定侦听器 或取消订阅特定订阅 像这样的东西 socket on testComplete function data console log test comple
  • JavaScript - 如何同时播放多个视频?

    我有一个array我希望同时播放的视频元素 我在网上找到的唯一方法是使用new MediaController 但这似乎并没有得到广泛 如果有支持的话 我期望做的是 var videos document querySelectorAll