# Kapitel 14: Das Audiosystem

Die `AudioPlayer`-Struktur bildet das Herzstück des Audiosystems für dieses Spiel. Dieses System verwendet das `sdl2::mixer`-Modul aus der `SDL2`-Bibliothek in Rust. Es kann `.mp3`, `.flac`, `.mod` und `.ogg` Audiodateien laden und abspielen. Die `AudioPlayer`-Struktur enthält ein einziges Feld - `mixer_context`. Ein `AudioPlayer` wird mit einer bestimmten Anzahl von Kanälen (`numchans`) instanziiert. Die Konstruktionsfunktion (`new`) initialisiert SDL2, öffnet ein Audiogerät mit einer bestimmten Frequenz, Chunk-Größe und Anzahl von Kanälen. Es bietet eine Methode `play`, die eine Audiodatei lädt, sie in einer Schleife eine bestimmte Anzahl von Malen abspielt und die Lautstärke einstellt. Die `play`-Methode gibt einen `Channel` zurück, der mit den entsprechenden Methoden in `AudioPlayer` angehalten, fortgesetzt oder gestoppt werden kann. Wenn eine Instanz von `AudioPlayer` verworfen wird, wird die gerade abgespielte Musik beendet und eine Nachricht in die Konsole ausgegeben.
