@@Hörnchen
Ich hoffe ich habe dein Problem verstanden und eine passende Lösung für dich erstellt.
Nein, ich glaube, nicht.
Es sollen ja nicht alle Player[1] gestoppt werden. Der soeben neu gestartete soll weiterlaufen.
Oder du müsstest erst alle Player stoppen und danach den ausgewählten mit JavaScript starten, was die Komplexität des Scripts unnötig erhöht.
Außerdem: audio.currentTime = 0;
? Vom Zurücksetzen der Player war keine Rede. Sie sollten pausieren und beim erneuten Start an der Stelle weiterspielen, wo sie aufgehört haben, nicht wieder vom Anfang an.
document.querySelectorAll('audio').forEach(audio => { if (audio && !audio.paused && !audio.ended && audio.currentTime > 0) {
AFAIS kann audio
an der Stelle überhaupt nicht falsy sein, die Abfrage auf audio
ist überflüssig.
Und wofür ist die Abfrage auf audio.currentTime > 0
gut?
🖖 Live long and prosper
“In my home, the America I love, the America I've written about, that has been a beacon of hope and liberty for 250 years, is currently in the hands of a corrupt, incompetent and treasonous administration. Tonight, we ask all who believe in democracy and the best of our American spirit, to rise with us, raise your voices against authoritarianism, and let freedom reign.”
— Bruce Springsteen, Manchester 2025-05-14
Im Englischen ist der Plural auf -s; die Funktion sollte
stopAllPlayers
heißen. ↩︎