javascript - 加载视频并同时播放

标签 javascript html5-video

我想知道如何一次加载两个或多个视频或音频文件,然后等待它们都准备好再播放。

我在下面列出的当前方式似乎在大多数情况下都有效,但是,这有时不能完全等待两者都准备好播放(因为 oncanplay 方法附加到不同的视频源)。当我想要完全同步多种文件类型时,这当然会导致问题。

function loadSources() {

  var videoOne = document.getElementById("first");
  videoOne.src = "first-video.mp4";

  var videoTwo = document.getElementById("second");
  videoTwo.src = "second-video.mp4";

  videoOne.oncanplay = function() {
    videoOne.play();
  };

  videoTwo.oncanplay = function() {
    videoTwo.play();
  };
} 

我如何将多个 oncanplay 事件合并为一个事件?

最佳答案

实现此目的的一种方法是监听元素上的 load 事件,并在加载资源时递增一个整数。它看起来像下面的代码:

const videoOne = document.getElementById("first");
let loaded = 0;
videoOne.addEventListener("load", () => {
    if (loaded === RESOURCE_NUM - 1) {  // resources required to be loaded
        // play the video / audio files
    }
    else {
        loaded++;
    }
});

关于javascript - 加载视频并同时播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52861052/

相关文章:

javascript - 为获得最大的缓存性能而对 javascript 进行版本控制的常用方法是什么?

javascript - Bootstrap Carousel - 在不同分辨率下显示的元素数

javascript - jQuery settimeout() 无法正常工作

javascript - 从 iPad 中 html5 <video> 元素上的点击/触摸事件重定向到另一个页面?

Javascript:数组中的对象有 undefined variable ?

javascript - 为按钮使用十六进制值并通过 onClick() 将其传递给函数

javascript - 视频洗涤器拖动有问题

javascript - 如何在 MacBook Pro 上使用 webRTC 进行外部网络摄像头的直播

javascript - 如何使用 javascript 将视频上传到 youtube?

javascript - 如何在网络视频上制作热点