Hallo zusammen,

ich habe ein kleine App "Eieruhr" geschrieben, wo man per Button einen Timer startet der 5 Minuten runterzählt und ein Alarm losgeht sobald die 5 Minuten um sind.

Problem: sobald der Timer runtergelaufen ist klingelt zwar der Alarm allerdings kriege ich es nicht hin, dass der Alarm z.B. nach 5 Sekunden aufhört zu klingeln - stattdessen läuft er ganze Zeit weiter bis man die App geschlossen hat.

Hat jemand eine Lösung von euch?

Code:

  <script>
    let alarm = new Audio('snd/alarm.wav');
    let timerStarted = false;
    function startTimer() {
      if (!timerStarted) {
        let startTime = new Date().getTime();
        let fiveMinutes = 1000 * 60 * 5;
        let endTime = startTime + fiveMinutes;
        setInterval(function() {
          let timeLeft = endTime - new Date().getTime();
          if(timeLeft > 0){
            let minutes = timeLeft / (1000 * 60);
            minutes = Math.floor(minutes);
            let seconds = (timeLeft / 1000) % 60;
            seconds = Math.round(seconds);
            seconds = ('0' + seconds).slice(-2);
            let text = '0' + minutes + " : " + seconds;
            timer.innerHTML = text;
          } else {
            alarm.play();
            timer.innerHTML = '00 : 00';
            5000;
           }
        }, 1000);
        timerStarted = true;
      }
    }
  </script>