Skip to content

Audio Service

escheiermann edited this page Mar 23, 2021 · 2 revisions

AudioService

Um Geräusche, Töne oder Musik über die Lautsprecher abzuspielen wird der AudioService genutzt. Der AudioService kann mp3-Dateien über den Browser abspielen.

Verwendung

Um den AudioService zu verwenden, muss der Service über einen Konstruktor der aufrufenden Komponente injiziert werden:

export class ParentComponent {

  constructor(private audioService: AudioService) {}
}

Der Service bietet folgende Funktionen um mit dem Sound zu arbeiten:

  • play(filePath) - Spielt eine Audiodatei einmalig ab
  • playLoop(filePath) - Spielt eine Audiodatei in dauerschleife ab
  • stopLoops() - Stoppt die Wiedergabe aller Audiodateien welche in dauerschleife laufen
  • mute() - Schaltet den Ton stumm
  • unmute() - Schaltet den Ton laut

Beispiel

Damit ambiente Hintergrundgeräusche bei einem Kapitel in dauerschleife abgespielt werden, kann beispielsweise in der ngOnInit Methode einer Komponente folgender Aufruf erfolgen:

ngOnInit(): void {
    this.audioService.playLoop("assets/sounds/morgenmitvoegeln.mp3");
  }

Für Highlights mit Sounds, welche einmalig bei einem bestimmten Event abgespielt werden sollen, kann beispielsweise bei einem ScrollTrigger die play Methode aufgerufen werden:

gsap.to('#background', {
      scrollTrigger: {
        trigger: '.container',
        start: 'top top',
        scrub: true,
        end: '+=600px',
        onEnter: () => this.audioService.play("assets/sounds/chicken2.mp3")
      },
      opacity: 0
    });

Hinweise

  • Sounds die mit playLoop abgespielt werden, können gelayert werden und spielen gleichzeitig
  • Die Audiodateien werden aktuell mit den Assets mitgeliefert. Bei vielen und großen Dateien kann das beim Laden der Webseite für lange Ladezeiten sorgen. Um dieses Problem zu umgehen, sollte daher ein minimaler Server aufgestellt werden, welche die Benötigten Medien speichert und bei anfrage an den Web-Browser ausliefert, um so die Ladezeiten zu verkürzen und die Verarbeitung asynchron zu gestallten

Weiter Entwicklung

Um den AudioService weiter zu entwickeln, können folgende Beitrage helfen: