如何在javascript中在特定时间播放音频

如何在javascript中在特定时间播放音频,javascript,audio,Javascript,Audio,这是我得到的,但我似乎不能自动更新时间 <script> function updateTime(){ var currentTime = new Date() var hours = currentTime.getHours() var minutes = currentTime.getMinutes() } setInterval(updateTime, 1000); var audio = new Audio('audio.mp3');`enter code here` if(

这是我得到的,但我似乎不能自动更新时间

<script>
function updateTime(){
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
}
setInterval(updateTime, 1000);
var audio = new Audio('audio.mp3');`enter code here`
if(minutes === 39){
audio.play();
}
</script>

因此,我试图创建一个网络应用程序,将在一天中的特定时间播放音频文件,也有任何方式停止声音在另一个时间?5分钟后再说

正如adeneo的注释所述,您需要在事件函数中包含条件语句

以下内容将每秒调用updateTime,如果一天中的分钟数为39,并且它没有播放,则它将开始播放音频。它还将在五分钟后调用setTimeout停止音频

如果愿意,可以在if语句中添加小时

var audio = new Audio('audio.mp3');

function updateTime(){
  var currentTime = new Date();
  var hours = currentTime.getHours();
  var minutes = currentTime.getMinutes();

  if (minutes == 39 && audio.paused) {
     audio.play();
     setTimeout(function() { audtio.pause(); }, 300000);
  }
}

setInterval(updateTime, 1000);

首先让我强调一下你的代码出了什么问题

一些行的末尾缺少分号。所以请不要忘记放置它们。 if循环不是迭代的,所以如果你不把它放在像setInterval这样的迭代方法中,它只会在onload时运行。 答案已经贴出来了,所以我用另一种方式写了出来

    <script type="text/javascript">
    function play(){
    setInterval(function updateTime(){
        var currentTime = new Date();
        var hours = currentTime.getHours();
        var minutes = currentTime.getMinutes();
        var seconds = currentTime.getSeconds();
        console.log('minutes');
        var audio = new Audio('audio.mp3');
        if(minutes === 39 && seconds === 0){
            console.log('play');
            audio.play();
            setTimeout(function() { audio.pause(); }, 200000); 
        }
    },1000);
    }
</script>

你必须把条件放在时间间隔内,你可能还要检查几个小时?