首页 > 解决方案 > Javascript - 延迟音频播放

问题描述

当工具提示可见时,我正在播放音频,并且脚本工作正常,但我找不到将播放延迟 2 秒的方法...

$("#notify")[0].play(); 2000 

有什么问题?

提前致谢!

if (total > 999 && total < 2999) {
  $('#regalo').show();

  if (localStorage.getItem('suppress_gift_tooltip_1') == null) {
    $('.tooltip').show();
    window.setTimeout(function() {
      $('.tooltip').fadeOut('slow');
    }, 6000);

    if (!$("#notify")[0].paused) { //audio
      $("#notify")[0].pause(); //audio
      $("#notify")[0].currentTime = 0; //audio
    } else { //audio
      setTimeout(function() { //audio
        $("#notify")[0].play();
         //audio   
      }, 2000)
    }; //audio

    localStorage.setItem('suppress_gift_tooltip_1', 'true')
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<audio id="notify">
      <source src="audio/notify.ogg" type="audio/ogg">
      <source src="audio/notify.mp3" type="audio/mpeg">
    </audio>

标签: javascriptjqueryaudiohtml5-audio

解决方案


使用 javascriptsetTimeout来完成这项工作。你放错了 2000。把它放在函数括号之后(用逗号)。

 <script type="text/javascript">
    setTimeout(function(){
      document.getElementById("notify").play(); /* or $("#notify").play() in jquery*/
      //console.log('two second delay!');
    }, 2000)
  </script>

推荐阅读