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

时间:2014-01-12 08:47:09

标签: 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(minutes === 39){
audio.play();
}
</script>

因此,我试图创建一个在一天中的特定时间播放音频文件的网络应用程序,无论如何还要在另一个时间停止声音?说5分钟后?

2 个答案:

答案 0 :(得分:0)

正如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);

答案 1 :(得分:0)

首先让我突出显示您的代码出了什么问题。

  1. 在一些行的末尾缺少半冒号。所以请不要忘记放置它们。
  2. if循环不是迭代的,所以如果你不把它放在像setInterval这样的迭代方法中,它就会在onload时运行。
  3. 答案已经提出,所以我用不同的方式写了。

        <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>