Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Soundausgabe reagiert nicht und Anzeige wird nicht aktualisiert
#4
Nach der while-Schleife kommt weiterer Code, der erst nach dem Ende der Schleife durchlaufen werden darf. Wenn ich es richtig verstehe, läuft setInterval synchron, sodass der nachfolgende Code sofort bzw. zeitgleich zum Code in setInterval ausgeführt wird.
Was ich bräuchte ist eine sleep-Funktion, die javascript aber nicht anbietet.
Ich habe mittlerweile aber eine Möglichkeit gefunden, eine sleep-Funktion mit Hilfe eines Promise zu simulieren:

Code:
<script>
         const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay))
        async function startCountdown() {

            ...

            // Run the countdown
            startTime = new Date().getTime(); // Get the starting point of the current interval
            while (!countdownFinished) {
                let currTime = new Date().getTime(); // Get the current time stamp
                if (currTime - startTime >= soundInterval) {
                    if (totalTime < TOTAL_TIME_MAX) {
                if (soundClack.currentTime < soundClack.duration) {
                            soundClack.pause();
                            soundClack.currentTime = 0;
                        }
            soundClack.play();
                        ...
                        await sleep(2);
                    }
                    else {
                        ...
                    }
                }
            }
        }
</script>

Jetzt läuft die Anzeige der Buchstaben korrekt. Big Grin

Durch das Stoppen und Zurücksetzen der Soundausgabe ist auch diese besser geworden, aber noch nicht ganz das Gelbe vom Ei. Zu Beginn der Schleife, wenn das Intervall noch klein ist, wird der Klang nur sporadisch abgespielt.
Hier wäre ich über weitere Ideen dankbar.
Zitieren


Nachrichten in diesem Thema
RE: Soundausgabe reagiert nicht und Anzeige wird nicht aktualisiert - von Chris.P.M - 12.07.2022, 15:01

Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
2 Gast/Gäste