我要求每12小时或更早提交一份html表单。如果不是,该页面将播放恼人的声音。该页面将显示在安装在车厢内的平板电脑上,并将使用信息亭软件来防止离开该页面。
我正在使用 jQuery 3.1.1 和 moment.js
<audio id="alarmSound">
<source src="~/Sounds/railroad_crossing_bell.mp3" type="audio/mpeg" id="alarmSound1" />
<source src="~/Sounds/railroad_crossing_bell.wav" type="audio/wav" id="alarmSound2" />
<p class="error">Your browser does not support the <audio> tag</p>
</audio>
<div id="test"></div>
<script>
//var targetDate = moment("@(LastSubmittedDateTime.Value.ToString("yyyy-MM-dd HH:mm:ss"))", "YYYY-MM-DD HH:mm:ss").add(12, 'hours').valueOf() - moment().valueOf();
var targetDate = moment().add(2, "minutes");
var timeToWait = targetDate.valueOf() - moment().valueOf();
var timerVar;
var audioVar = $("#alarmSound");
$("#test").html("<dl><dt>targetDate</dt><dd>" + targetDate.format("YYYY-MM-DD HH:mm:ss") + "</dd><dt>timeToWait</dt><dd>" + timeToWait + "</dd></dd></dl>");
console.log("configuring #alarmSound");
$("#alarmSound").muted = false;
$("#alarmSound").defaultMuted = false;
$("#alarmSound").loop = true;
$("#alarmSound").volume = 1.0;
$("#alarmSound").controls = false;
$("#alarmSound").preload = "auto";
function alertFunc() {
console.log("alertFunc() fired");
$("#test").html("<p>alertFunc() Fired</p><dl><dt>targetDate</dt> <dd>" + targetDate.format("YYYY-MM-DD HH:mm:ss") + "</dd> <dt>timeToWait</dt> <dd>" + timeToWait + "</dd></dd ></dl >");
$("#alarmSound").get(0).play();
}
function myTimeoutStopFunc() {
console.log("myTimeoutStopFunc() fired");
clearTimeout(timerVar);
}
$(document).ready(function () {
console.log("setTimeout(alertFunc, " + timeToWait + ")");
timerVar = setTimeout(alertFunc, timeToWait);
});
</script>
<div id="test2"><button name="timerStop" onclick="myTimeoutStopFunc()" >Stop Timer</button></div>
为了进行测试,我将它设置为现在的时间+几分钟。添加一些console.log调用并修复秒数有帮助。
目前正在使用,但音频会在几分钟后停止。
答案 0 :(得分:0)
菲尔只在评论中发帖,我无法给他答案。我使用毫秒计算从数据库时间值到现在的差异并添加该值。效果很好。