Ziel

Nach erfolgreichem Abschluss dieses Tutorials kannst du Soundeffekte und Musik in dein Spiel einbinden.

Einführung

Sounds lassen sich in der Engine Alpha leicht abspielen. Die Ressourcen müssen nur aus dem Projektordner geladen werden, vergleichbar mit dem Laden eines Bildes.

Unterstützte Sound-Formate

Zunächst benötigst du die abzuspielende Sound-Datei. Folgende Formate werden voll unterstützt:

  • .wav-Dateien: Unkomprimiertes Format, das sehr viel Platz in Anspruch nimmt, dafür aber gute Audio-Qualität liefert.
  • .mp3-Dateien: Komprimiertes Format, das wenig Platz in Anspruch nimmt und trotzdem ausreichende Qualität liefert. (empfohlen)
  • .au-Dateien: Eigenes Format von Sun (einem früheren Entwickler von Java), das so gut wie keine Beachtung findet.

.mid-Dateien (MIDI-Sequenzen) werden seit Version 3.0 der Engine nicht mehr unterstützt!

Hast du nun eine passende Sound-Datei, musst du diese nur in deinen Projektordner legen.

Einbringen einer Sound-Datei

Sound ist eine Klasse in der Engine Alpha. Damit bringst du die Sound-Datei in dein Programm ein.

Laden eines Sounds

Die Klasse Sound hat nur einen Konstruktor:

public Sound (String dateiname)

Dieser Konstruktor funktioniert für alle unterstützten Formate. Der Dateiname ist der Name deiner Sound-Datei im Projektordner, somit lädst du deine eigene Sounddatei zum Beispiel so:

Sound meinSound = new Sound("meineSoundDateiImProjektordner.mp3");

Dadurch wird der Sound aber nicht abgespielt, sondern erst mal nur in den Programmspeicher geladen.

Abspielen eines Sound

Zum Abspielen eines Sounds muss lediglich die play()-Methode des Sound-Objekts aufgerufen werden:

Sound meinSound = new Sound("meineSoundDateiImProjektordner.mp3"); // Laden des Sounds
meinSound.play(); // einmaliges Abspielen des Sounds

Will man, dass der Sound in einer Endlosschleife wiedergegeben wird, so verwendet man statt play() loop():

Sound meinSound = new Sound("meineSoundDateiImProjektordner.mp3"); // Laden des Sounds
meinSound.loop(); // dauerhaftes Abspielen des Sounds

Anhalten eines Sounds

Zum Anhalten eines Sounds gibt es zwei Methoden:

  • Mit meinSound.pause(); wird der Sound nur pausiert, er kann danach mit meinSound.unpause(); weiter abgespielt werden.
  • Mit meinSound.stop(); wird der Sound gestoppt, sodass er nicht weiter abgespielt werden kann. Mit meinSound.play(); kann der Sound aber erneut von Beginn an abgespielt werden.

Sound-Dateien in Ordnern

Benutzt du viele Sound-Dateien, ist es vielleicht unübersichtlich, alle "einfach" in deinem Projektordner zu lagern. Du kannst natürlich auch einen neuen "Material"-Ordner anlegen und dann im Sound-Konstruktor den Pfad angeben, über deinen Ordner zu der gewünschten Sound-Datei.

Sound meinSound = new Sound("Material/meineSoundDatei.mp3"); // Laden des Sounds

Möchtest du dies nutzen, kannst du dich darüber im Tutorial Dateien Schreiben und Lesen informieren.

Sounddateien im exportierten Projekt

beim Exportieren des Projektes in eine .jar-Datei gehst du folgendermaßen vor:

  1. Vor dem Exportieren, entferne alle Sound-Dateien aus dem Projektordner
  2. Nach dem Exportieren, bringe alle Sound-Dateien in das selbe Verzeichnis wie die ausführbare .jar-Datei. Hast du Ordner genutzt, so bringe die Ordner in dieses Verzeichnis. Mehr hierzu im Tutorial zum Exportieren von Projekten.

Du kannst ein einfaches Beispielprojekt herunterladen, das eine Sounddatei öffnet und abspielt.