【发布时间】:2019-01-02 21:29:12
【问题描述】:
<span id="countdown"></span>
<script>
document.getElementById('countdown').innerHTML =
0 + ":" + 10;
startTimer();
function startTimer() {
var bell = new Audio('http://soundbible.com/mp3/Store_Door_Chime-Mike_Koenig-570742973.mp3');
var presentTime = document.getElementById('countdown').innerHTML;
var timeArray = presentTime.split(/[:]+/);
var m = timeArray[0];
var s = checkSecond((timeArray[1] - 1));
if(s==59){m=m-1}
if((m==0) && (s==1)){bell.play();}
if(m<0){document.getElementById('countdown').style.display = "none";
Timer.stop();}
document.getElementById('countdown').innerHTML = m + ":" + s;
setTimeout(startTimer, 1000);
}
function checkSecond(sec) {
if (sec < 10 && sec >= 0) {sec = "0" + sec}; // add zero in front of numbers < 10
if (sec < 0) {sec = "59"};
return sec;
}
</script>
该代码用于我在打开 PC 后使用其他脚本进行 15 分钟的冥想,我将此倒计时代码放置在 html 文件的最底部,另外其他代码用于显示当地时间、每日待办事项列表和计数计时器,我将 html 文件保存在本地存储中并用 chrome 打开。
根据我的测试,代码有时无法正确播放 mp3。 我想当 mp3 没有存储在本地存储中时会发生这种情况,但似乎这不是互联网速度的问题,即使经过 15 分钟的冥想它也没有响铃,每天早上连续三天直到今天,我都无法集中精神检查时间是否到了。 此外,正如我测试过的那样,即使 mp3 位于我的 PC 本地存储中,也会发生这种情况。
奇怪的是,当我在两种情况下都在 Tryit 编辑器上尝试代码时; only with the countdown script 和 entire scripts of my todo list thing,两者都工作正常,就我测试而言,它正在 100% 响铃。
所以我会考虑将整个代码移到我的个人博客上, seem like only with the above code works as it's light one on my blog,
but the entire code is sometimes work and sometimes are not on my blog.
如果它的播放率为 0%,那么它可能更容易管理,或者最不容易寻求帮助,但我不知道如何处理这个问题,甚至我也不知道如何寻求帮助。
他们是检查文件播放的方法吗?所以我猜它失败时重新加载它? 还是这只是代码管理不善的问题?
非常感谢您的帮助,谢谢。
【问题讨论】:
-
我并没有一直检查和测量,但是当我再次检查时,在博客上,完全脚本页面的播放几率为 80%。但在本地文件中,播放外部 mp3 时感觉不到 50%。 :0
-
尝试先在变量中预加载音频:
var myAudio = new Audio([the url]);然后,当满足条件时,myAudio.play(); -
谢谢 Louys!,我会在路上试试!
-
我已经更改了预加载 mp3 的代码,但仍然有同样的问题:0,我会将编辑后的代码粘贴到我的帖子中。
-
我试图让代码加载到 body 元素来解决,但它没有工作,我宁愿尝试从某个地方获取另一个 upcount 脚本并稍后对其进行警报。顺便说一句,感谢 Louys 的帮助:)
标签: javascript jquery