Я делаю таймер обратного отсчета, используя смесь JavaScript, Jquery и PHP для таймера в классе. Он запускается с Raspberry Pi, подключенного к телевизору LG. Есть несколько необычных ошибок, когда я запускаю свой код, которые … появляются, но не всегда.
Вот мой код …
$("#start").click(function(){
$("#start").attr("disabled", "disabled");
$("#start").html("Resume");
$("#stop").removeAttr("disabled",null);
$("#storage").html("start");
dec();
})
var file = document.getElementById("alert");var time = prompt("Please specify the time in minutes:");
var minutes = time - 1;
var secs = 59;
var displayMins = minutes;$("#stop").click(function(){
$("#stop").attr("disabled", "disabled");
$("#start").removeAttr("disabled",null);
$("#storage").html("stop");
})
$("#reset").click(function(){
$("#stop").attr("disabled", "disabled");
$("#start").removeAttr("disabled",null);
$("#storage").html("reset");
dec();
})function dec() {
if($("#storage").html() != "stop" && $("#storage").html() != "reset" ){if(secs <= 0){
secs = 59;
displayMins = displayMins - 1;
}
if(displayMins < 10){
$("#timer").html("0" + displayMins + ":" + secs);
}
if(secs < 10){
$("#timer").html(displayMins + ":" + "0" + secs);
}
if(secs < 10 && displayMins < 10){
$("#timer").html("0" + displayMins + ":" + "0" + secs);
}
if(secs > 10 && displayMins > 10){
$("#timer").html(displayMins + ":" + secs);
}
secs = secs - 1;
setTimeout(function(){
if(secs >= 1 && displayMins >= 0){
dec();
} else if(secs == 0 && displayMins == 0){
var audio = new Audio('airhorn.mp3');
audio.play();
$("#timer").html("00:00");
$("#timer").css("color", "red");
}
}, 1000);
} else if($("#storage").html() == "reset"){
$("#start").removeAttr("disabled",null);
$("#start").html("Start");
$("#stop").attr("disabled", "disabled");
secs = 59;
displayMins = minutes;
$("#timer").html("00:00");
$("#timer").css("color", "white");
}
}
Вот мой PHP-код …
<html>
<head>
<script type="text/javascript" src="scripts/jquery.js"></script>
<link href="style/style.css" type="text/css" rel="stylesheet" />
<title>Mr. George's Timer</title>
<script type="text/javascript" src="scripts/reload.js"></script>
</head>
<body>
<h1>
Mr. George's Timer
</h1>
<div id="timer">
00:00
</div>
<button id="start" onclick="dec();">Start</button>
<button id="stop" disabled="disabled">Stop</button>
<button id="reset">Reset</button>
<br /><br />
<audio id="alert">
<source src="airhorn.mp3" type="audio/mpeg" id="alert">
</audio>
<!-- <select name="type" id="timeSelector">
<option value="5">5min</option>
<option value="10">10 min</option>
<option value="15">15 min</option>
<option value="20">20 min</option>
<option value="25">25 min</option>
<option value="30">30 min</option>
<option value="35">35 min</option>
<option value="40">40 min</option>
<option value="45">45 min</option>
<option value="50">50 min</option>
<option value="55">55 min</option>
<option value="60">60 min</option>
</select> !-->
<script type="text/javascript" src="scripts/watch.js"></script>
<br />
<br />
<br />
<br />
<label id="storage">storage</label>
<label id="timestorage">5</label>
</body>
Мои ошибки
Когда я запускаю программу, она выполняет обратный отсчет с интервалом в две секунды, это происходит чаще всего, но не всегда.
Когда я запускаю программу с пятью минутами на таймере, она всегда останавливается на «4:01».
Когда таймер обратного отсчета обнуляется, звуковой файл airhorn.mp3 не воспроизводится.
Если вам нужна дополнительная информация, пожалуйста, прокомментируйте, и я отвечу как можно скорее.
Спасибо за помощь!
Задача ещё не решена.
Других решений пока нет …