HTML5 video autoplay but with a 5 seconds of delay

Bil*_*lly 12 video html5 settimeout autoplay preload

I have a 20 second long HTML5 video loop as the background on my webpage and it is set to autostart. Is it possible to delay the video autoplay for 5 seconds? I am trying to allow the video to load completely before trying to play to prevent it from stuttering as much. Here is my current code:

<video id="video_background" poster="images/dmm_background.jpg" controls="controls" preload="true" autoplay="true" loop="loop" muted="muted" volume="0"> 
<source src="videos/backgroundvideo.mp4" type="video/mp4"> 
<source src="videos/backgroundvideo.webm" type="video/webm">
</video>
</video>
Run Code Online (Sandbox Code Playgroud)

Any help is greatly appreciated!!

Dre*_*res 17

HTML:

<video id="myVideo" src="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4">
Run Code Online (Sandbox Code Playgroud)

JavaScript:

setTimeout(function(){
  document.getElementById("myVideo").play();
}, 5000);
Run Code Online (Sandbox Code Playgroud)

JSFiddle example.


Joe*_*ton 8

这对我来说是一个有效的解决方案。您应该使用canplay作为最佳实践,以确保浏览器可以播放视频。此外,这是一个直接的 javascript 解决方案。

注意:我删除了自动播放、一个额外的结束视频标签,并格式化了您的静音和循环标志。

var video = document.getElementById("video_background");
video.addEventListener("canplay", function() {
  setTimeout(function() {
    video.play();
  }, 5000);
});
Run Code Online (Sandbox Code Playgroud)
<video id="video_background" poster="images/dmm_background.jpg" controls="controls" preload="true" muted loop>
  <source src="https://d2v9y0dukr6mq2.cloudfront.net/video/preview/SsRadVyPGjdkeg9tt/videoblocks-computer-hacking-in-process-cyber-security-concept_h-l3zbu4xb__PM.mp4">
    <source src="videos/backgroundvideo.webm" type="video/webm">
</video>
Run Code Online (Sandbox Code Playgroud)