Как заставить Javascript автоматически воспроизводить аудио в определенное время дня - PullRequest
0 голосов
/ 11 февраля 2019

Я строю систему настенных панелей для ресторана, и они хотели бы включить сигнализацию, которая срабатывает три раза в течение дня, каждый день, чтобы напомнить команде о выполнении определенных задач.У меня почти все настенные панели уже построены с использованием php и html, но у меня возникли некоторые проблемы с системой сигнализации.Из того, что я сделал, Javascript выглядит как язык выбора для достижения этой цели, но когда я построил эту простую систему ниже, она не сработала.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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...