Zeile 1: Zeile 1:
Die Engine macht das Einbinden von Sounds sehr leicht. Unterstützt werden zur Zeit die folgenden Formate:
+
{{DISPLAYTITLE:Tutorial: Sounds einbinden}}
* MP3
+
{{Tutorial/Begin|Ziel=
* WAV
+
Nach erfolgreichem Abschluss dieses Tutorials kannst du '''Soundeffekte und Musik in dein Spiel einbinden'''.
  
<div class="hinweisProbleme">Midi-Dateien werden in [[Version 3.0]] zur Zeit aufgrund der neuen Sound-Implementierung noch nicht unterstützt</div>
+
|Voraussetzungen=
 +
* Du hast bereits die Engine in deine [[Wikipedia:de:Integrierte Entwicklungsumgebung|IDE]] integiert. (z.B. [[Wikipedia:de:BlueJ|BlueJ]] oder [[Wikipedia:de:Eclipse|Eclipse]]) ([[Tutorials/BlueJ|Engine Alpha in BlueJ einbinden]])
 +
* Du hast das [[Tutorials/Einführung|Einführungstutorial]] bereits bearbeitet.
 +
}}
 +
 
 +
== 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 [[Tutorials/Einführung#Bilder|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!
 +
 
 +
<div class="hinweisInfo">
 +
Hast du nun eine passende Sound-Datei, musst du diese nur in deinen Projektordner legen.
 +
</div>
 +
 
 +
== Einbringen einer Sound-Datei ==
 +
 
 +
<code>Sound</code> ist eine Klasse in der Engine Alpha. Damit bringst du die Sound-Datei in dein Programm ein.
 +
 
 +
=== Laden eines Sounds ===
 +
 
 +
Die Klasse <code>Sound</code> hat nur einen Konstruktor:
 +
 
 +
<source>
 +
public Sound (String dateiname)
 +
</source>
 +
 
 +
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:
  
Um einen Sound abzuspielen, muss lediglich ein Objekt erzeugt werden, dem der Pfad übergeben wird:
 
 
<source>
 
<source>
Sound s = new Sound("pfad/zur/datei.mp3");
+
Sound meinSound = new Sound(“meineSoundDateiImProjektordner.mp3“);
s.play();
 
 
</source>
 
</source>
  
Außerdem gibt es weitere Methoden um den Sound zu pausieren oder zu stoppen:
+
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 <code>play()</code>-Methode des Sound-Objekts aufgerufen werden:
 
<source>
 
<source>
s.pause();
+
Sound meinSound = new Sound(“meineSoundDateiImProjektordner.mp3“); // Laden des Sounds
s.unpause();
+
meinSound.play(); // einmaliges Abspielen des Sounds
 +
</source>
  
s.stop();
+
Will man, dass der Sound in einer Endlosschleife wiedergegeben wird, so verwendet man statt <code>play()</code> <code>loop()</code>:
 +
<source>
 +
Sound meinSound = new Sound(“meineSoundDateiImProjektordner.mp3“); // Laden des Sounds
 +
meinSound.loop(); // dauerhaftes Abspielen des Sounds
 
</source>
 
</source>
  
<code>s.stop()</code> stoppt alle zur Zeit laufenden Sounds, die mit diesem Objekt gestartet wurden.
+
=== Anhalten eines Sounds ===
 +
 
 +
Zum ''Anhalten'' eines Sounds gibt es zwei Methoden:
 +
* Mit <code>meinSound.pause();</code> wird der Sound nur pausiert, er kann danach mit <code>meinSound.unpause();</code> weiter abgespielt werden.
 +
* Mit <code>meinSound.stop();</code> wird der Sound gestoppt, sodass er nicht weiter abgespielt werden kann. Mit <code>meinSound.play();</code> 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.
 +
 
 +
Möchtest du dies nutzen, kannst du dich darüber im [[Tutorials/IO#Arbeiten_mit_Verzeichnissen|Tutorial Dateien Schreiben und Lesen]] informieren.
 +
 
 +
{{TODO|Link zum GitHub-Beispielprojekt einfügen}}
 +
 
 +
== Sounddateien im exportierten Projekt ==
 +
 
 +
beim Exportieren des Projektes  in eine .jar-Datei gehst du folgendermaßen vor:
  
== Siehe auch ==
+
# Vor dem Exportieren, entferne alle Sound-Dateien aus dem Projektordner
 +
# 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 [[Tutorials/Projekt exportieren|zum Exportieren von Projekten]].
  
* [[Dokumentation/ea/Sound|Dokumentation zur Klasse Sound]]
+
[[Kategorie:Tutorial]]

Version vom 4. Oktober 2014, 22:05 Uhr

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.

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

Hier gibt es noch was zu tun: Link zum GitHub-Beispielprojekt einfügen

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.