Javascript: Audio automatisch abspielen?

1 Antwort

Glücklicherweise definieren Browser bestimmte Regeln, die eine automatische Wiedergabe von Ton ohne Aktion des Nutzers unterbinden. Welche genau, variiert je Browser. Als Leitfaden dazu kannst du den Artikel von MDN nehmen:

Autoplay guide for media and Web Audio APIs: Autoplay availability

Für einen automatischen Start selbst reicht das autoplay-Property.

<audio autoplay>
  <!-- sources ... -->
</audio>

Da du das audio-Element aber eh nicht anzeigen möchtest, würde es auch ausreichen, den Sound via JavaScript abspielen zu lassen.

const audio = new Audio("path/to/sound/file");
audio.addEventListener("canplaythrough", () => audio.play());

Das canplaythrough-Event wird erst gefeuert, sobald die Daten soweit vorgeladen sind, sodass die Wiedergabe zwischenzeitlich nicht für ein weiteres Nachladen gestoppt werden muss. Wenn du darauf verzichten kannst, kannst du auch das canplay-Event nutzen.