Lieber Rolf,
die "mach erstmal und zieh's dann gerade" Technik finde ich suboptimal
OK, das geht tatsächlich besser.
const fadeAudio = () => { if (volume > 10) { volume -= 10; // volume ist nun noch größer 0, neuen Aufruf buchen setTimeout(fadeAudio, 100); } else { volume = 0; } this.intro.current.volume = volume / 100; };
Hier wird die Sache mit this.setState({ muted: muted });
nicht mehr berücksichtigt. Der Player ist also nicht mehr auf lautlos gestellt, was bei volume=0 aber sinnvoll ist.
Dass man so einen Test weniger hat, ist ein netter (aber für Laufzeit irrelevanter) Nebeneffekt.
Stimmt. Danke für die Optimierung.
Liebe Grüße
Felix Riesterer