Soundausgabe reagiert nicht und Anzeige wird nicht aktualisiert - Druckversion +- Javascript-forum (https://javascript-forum.de) +-- Forum: Entwicklung (https://javascript-forum.de/forumdisplay.php?fid=4) +--- Forum: Javascript (https://javascript-forum.de/forumdisplay.php?fid=6) +--- Thema: Soundausgabe reagiert nicht und Anzeige wird nicht aktualisiert (/showthread.php?tid=1032) |
Soundausgabe reagiert nicht und Anzeige wird nicht aktualisiert - Chris.P.M - 11.07.2022 Hallo zusammen, ich fange gerade mit HTML und Javascript an und versuche mich gerade daran, in einem <div>-Element zufällig ausgewählte Buchstaben in immer langsamer werdender Abfolge anzuzeigen. Bei jedem neuen Buchstaben soll ein Klack-Geräusch ausgegeben werden, damit der Eindruck eines sich drehenden Glücksrades entsteht. Der Vorgang soll ca. 7 Sekunden dauern und wird über eine while-Schleife gesteuert. Am Ende der Schleife ertönt ein "Ding"-Sound. Leider passiert während dem Schleifendurchlauf in der Anzeige gar nichts und auch kein Klang wird ausgegeben. Erst am Ende der Schleife wird der letzte ermittelte Buchstabe angezeigt, ein einziges Klack-Geräusch ausgegeben (vermutlich das, das eigentlich vor Beginn der Schleife ertönen soll) und gleich darauf der "Ding"-Sound aus dem letzten Code-Abschnitt abgespielt. Wenn ich den Code im Debugger Schritt für Schritt durchlaufe, funktioniert alles wie erwartet und auch die Konsolenausgabe ist korrekt. Auch der korrekte zeitliche Ablauf ist in der Konsole erkennbar, sodass mein Code prinzipiell wohl korrekt ist. Ganz offensichtlich fehlt aber die richtige Anzeige- und Soundsteuerung. Über hilfreiche Tipps wäre ich sehr dankbar. Hier der Code (die beiden Sounddateien findet ihr im Anhang, sie stammen von https://freesound.org/): Code: <!DOCTYPE html> RE: Soundausgabe reagiert nicht und Anzeige wird nicht aktualisiert - admin - 11.07.2022 So ganz verstehe ich das auch noch nicht. Wenn du im debuggen schaust und dir das Element anschaust , siehst du auch das da die Buchstaben angezeigt werden. Warum nicht auf der Seite verstehe ich gerade auch noch nicht. RE: Soundausgabe reagiert nicht und Anzeige wird nicht aktualisiert - admin - 11.07.2022 Du solltest mal versuchen die while schleife zu tauschen gegen ein setInterval 50ms oder so . Ich denke, das die Schleife zu schnell ist, um das anzuzeigen. RE: Soundausgabe reagiert nicht und Anzeige wird nicht aktualisiert - Chris.P.M - 12.07.2022 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> Jetzt läuft die Anzeige der Buchstaben korrekt. 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. |