如何获取Javascript以在一天中的特定时间自动播放音频

时间:2019-02-11 19:28:43

标签: javascript html audio

我正在为一家餐厅构建墙板系统,他们希望包括一个警报,该警报每天在一天的3个不同时间响起,以提醒团队执行某些任务。我已经使用php和html构建了大部分墙板,但是在警报系统上遇到了一些麻烦。从我所做的研究来看,Java接缝是实现此目的的选择语言,但是当我在下面构建此简单系统时,它没有用。如果您按一下播放按钮,则Javascript可以找到音频文件,并且在您播放音频一次后,计时器将起作用,但是当我尝试仅使用警报方面运行时,它将无法工作。任何帮助/建议将不胜感激。

我已经在这个主题上进行了大量研究,并尝试了几种不同的方法来使它起作用,这对我来说是我唯一可以起作用的版本,甚至是一点。

另外,为了记录,我正在Ubuntu 16.04上使用LAMP运行该程序,并使用Chrome / Chromium查看该网页。

<!DOCTYPE html>
<html>
<body>
<audio id="myAudio">
  <source src="/include/sanitizer_reminder.mp3" type="audio/mpeg">
  <source src="/include/sanitizer_reminder.ogg" type="audio/ogg">
  Your browser does not support the audio element.
</audio>

<p>This is a test</p>
<div id="timeid"></div>

<p>Click the buttons to play or pause the audio.</p>

<button onclick="playAudio()" type="button">Play Audio</button>
<button onclick="pauseAudio()" type="button">Pause Audio</button> 

<script>
var x = document.getElementById("myAudio"); 

function playAudio() { 
  x.play(); 
} 

function pauseAudio() { 
  x.pause(); 
} 
</script>
<script>    
window.setInterval(function(){ // Set interval for checking
    var x = document.getElementById("myAudio"); 
    var date = new Date(); // Create a Date object to find out what time it is
    if(date.getHours() === 10 && date.getMinutes() === 0 && x.paused){ // Check the time
        x.play();
        setTimeout(function() { x.pause(); }, 20000);
    }
    if(date.getHours() === 14 && date.getMinutes() === 0 && x.paused){ // Check the time
        x.play();
        setTimeout(function() { x.pause(); }, 20000);
    }
    if(date.getHours() === 18 && date.getMinutes() === 0 && x.paused){ // Check the time
        x.play();
        setTimeout(function() { x.pause(); }, 20000);
    }
}, 30000);
var today = new Date();
var time = today.getHours() + ":" + today.getMinutes();
document.getElementById("timeid").innerHTML = time; 
</script>
</body>
</html>

0 个答案:

没有答案