Mehrere PHP / JS Audio-Player, Stop Player wenn anderer Player abspielt
bearbeitet von
@@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 Komplxität des Scripts unnötig erhöht.
Außerdem: `audio.currentTime = 0;`{:.language-js.bad}? 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.
> ~~~ JavaScript
> document.querySelectorAll('audio').forEach(audio => {
> if (audio && !audio.paused && !audio.ended && audio.currentTime > 0) {
> ~~~
AFAIS kann `audio` an der Stelle überhaupt nicht *falsy*{:@en} sein, die Abfrage auf `audio` ist überflüssig.
Und wofür ist die Abfrage auf `audio.currentTime > 0` gut?
[^1]: Im Englischen ist der Plural auf -s; die Funktion sollte `stopAllPlayers` heißen.
🖖 Live long and prosper
{:@en}
--
*“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.”*{:@en}
— Bruce Springsteen, Manchester 2025-05-14
Mehrere PHP / JS Audio-Player, Stop Player wenn anderer Player abspielt
bearbeitet von
@@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 Komplxität des Scripts unnötig erhöht.
Außerdem: `audio.currentTime = 0;`{:.language-js.bad}? 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.
> ~~~ JavaScript
> document.querySelectorAll('audio').forEach(audio => {
> if (audio && !audio.paused && !audio.ended && audio.currentTime > 0) {
> ~~~
AFAIS kann `audio` an der Stelle überhaupt nicht *falsy*{:@en} sein, die Abfrage auf `audio` ist überflüssig.
Und wofür ist die Abfrage auf `audio.currentTime > 0` gut?
[^1]: Im Englischen in der Plaral auf -s; die Funktion sollte `stopAllPlayers` heißen.
🖖 Live long and prosper
{:@en}
--
*“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.”*{:@en}
— Bruce Springsteen, Manchester 2025-05-14
Mehrere PHP / JS Audio-Player, Stop Player wenn anderer Player abspielt
bearbeitet von
@@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 Komplxität des Scripts unnötig erhöht.
Außerdem: `audio.currentTime = 0;`{:.language-js.bad}? 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.
> ~~~ JavaScript
> document.querySelectorAll('audio').forEach(audio => {
> if (audio && !audio.paused && !audio.ended && audio.currentTime > 0) {
> ~~~
AFAIS kann `audio` an der Stelle überhaupt nicht *falsy*{:@en} sein, die Abfrage auf `audio` ist überflüssig.
[^1]: Im Englischen in der Plaral auf -s; die Funktion sollte `stopAllPlayers` heißen.
🖖 Live long and prosper
{:@en}
--
*“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.”*{:@en}
— Bruce Springsteen, Manchester 2025-05-14