Javascript 等待视频完成以转到幻灯片放映的下一张幻灯片?

Javascript 等待视频完成以转到幻灯片放映的下一张幻灯片?,javascript,slideshow,Javascript,Slideshow,我正在尝试用图片和视频制作幻灯片,当它到达视频幻灯片时,我希望它停止,播放视频并等待它完成。然后进入下一张幻灯片 为了解决这个问题,我尝试在html5的视频元素的函数play()上使用Promiss,就像这里的示例一样 但是,promisse中的代码不会执行,并且在警报中显示未定义的消息 有人可以帮我吗 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-

我正在尝试用图片和视频制作幻灯片,当它到达视频幻灯片时,我希望它停止,播放视频并等待它完成。然后进入下一张幻灯片

为了解决这个问题,我尝试在html5的视频元素的函数play()上使用Promiss,就像这里的示例一样

但是,promisse中的代码不会执行,并且在警报中显示未定义的消息

有人可以帮我吗

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <link rel="stylesheet" type="text/css" href="index.css" />
    <title>Ricardo Ambrosio</title>
  </head>
  <body>
    <div class="top-nav">
      <ul>
        <li><a class="active" href="#perfil">QUEM SOU EU?</a></li>
        <li><a href="#programa">COMO FUNCIONA?</a></li>
        <li><a href="#alunos">MEUS ALUNOS</a></li>
        <li><a href="#planos">PLANOS E PREÇOS</a></li>
        <li><a href="#faq">FAQ</a></li>
        <li><a href="#presencial">ATENDIMENTO PRESENCIAL</a></li>
        <li><a href="#blog">BLOG</a></li>
      </ul>
    </div>

    <div class="slideshow-container">
      <div class="mySlides fade">
        <div class="img1">
          <img src="/images/banner-1.jpg" />
        </div>
      </div>
    </div>

    <div class="slideshow-container">
      <div class="mySlides fade">
        <img src="/images/banner-2.jpg" />
      </div>
    </div>

    <div class="slideshow-container">
      <div class="mySlides fade">
        <img src="/images/banner-3.jpg" />
      </div>
    </div>

    <div class="slideshow-container">
      <div class="mySlides fade">
        <video id="video" width="1550" height="500">
          <source src="/videos/443474440.mp4" type="video/mp4" />
        </video>
      </div>
    </div>

    <button class="w3 button w3-display-left next" onclick="plusSlides(1)">
      &#10095;
    </button>
    <button class="w3 button w3-display-left prev" onclick="plusSlides(-1)">
      &#10094;
    </button>
    <script src="index.js"></script>
  </body>
</html>


里卡多·安布罗西奥
❯ ❮
index.js

let video = document.getElementById("video");

var slideIndex = 1;
showSlides(slideIndex);

function plusSlides(n) {
  showSlides((slideIndex += n));
}

video.addEventListener("ended", function() {
  setTimeout(showSlides, 1000);
});

video.addEventListener("click", function() {
  if (video.paused) {
    video.play();
    video.volume = 1;
  } else {
    video.pause();
    video.volume = 0;
  }
});

async function playPause() {
  video.play();
  video.volume = 0;
}

async function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("mySlides");

  if (n > slides.length) {
    slideIndex = 1;
  }
  if (n < 1) {
    slideIndex = slides.length;
  }
  for (i = 0; i < slides.length; i++) {
    slides[i].style.display = "none";
  }

  slides[slideIndex - 1].style.display = "block";

  if (slideIndex == 4) {
    playPause();
  } else {
    setTimeout(showSlides, 2000);
  }
}

let video=document.getElementById(“视频”);
var slideIndex=1;
放映幻灯片(幻灯片索引);
函数加滑块(n){
放映幻灯片((幻灯片索引+=n));
}
video.addEventListener(“结束”,函数(){
设置超时(显示幻灯片,1000);
});
video.addEventListener(“单击”,函数(){
如果(视频暂停){
video.play();
video.volume=1;
}否则{
video.pause();
video.volume=0;
}
});
异步函数playPause(){
video.play();
video.volume=0;
}
异步函数显示幻灯片(n){
var i;
var slides=document.getElementsByClassName(“mySlides”);
如果(n>幻灯片长度){
slideIndex=1;
}
if(n<1){
slideIndex=slides.length;
}
对于(i=0;i
你是如何实现幻灯片放映的?嘿,@Andrej。我编辑了代码。我是这样解决的=(那么你解决了问题?是的。我会关闭它。谢谢你有没有实现幻灯片放映?嘿,@Andrej。我编辑了代码。我是这样解决的=(那么你解决了问题?是的。我会关闭它。谢谢