Class Sound
- All Implemented Interfaces:
Audio
In Spielen und anderen Projekten gibt es oftmals eine Reihe kurzer Soundclips, die zusammen mit bestimmten Aktionen wiedergegeben werden (zum Beispiel, wenn die Spielfigur springt, wenn zwei Objekte kollidieren, usw.). Sounds werden vollständig in den Speicher geladen und können immer wieder, als Schleife oder auch nur Abschnittsweise, abgespielt werden.
Für längere Musikstücke (beispielsweise Hintergrundmusik) bietet sich eher
die Klasse Music
an.
MP3-Dateien verwenden
Java kann nativ nur Waveform (.wav
) Dateien wiedergeben. Um auch
MP3-Dateien zu nutzen, müssen die Bibliotheken jlayer, tritonus-share und mp3spi eingebunden werden.
Details zur Verwendung können in der Dokumentation
der Zeichenmaschine nachgelesen werden.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addAudioListener
(AudioListener listener) Fügt dem Medium das angegebene Objekt alsAudioListener
hinzu, der bei Start und Stopp der Wiedergabe informiert wird.void
dispose()
Stoppt die Wiedergabe und gibt alle Ressourcen, die für das Medium verwendet werden, frei.double
Liefert die aktuelle Lautstärke dieses Mediums.boolean
Prüft, ob das Medium gerade in einer Schleife abgespielt wird.boolean
Prüft, ob das Medium gerade abgespielt wird.void
loop()
Spielt das Medium in einer kontinuierlichen Schleife ab.void
loop
(int count) Wiederholt den Sound die angegebene Anzahl an Wiederholungen und stoppt die Wiedergabe dann.void
play()
Startet die Wiedergabe des Mediums.void
Startet die Wiedergabe des Mediums und blockiert das Programm, bis die Wiedergabe beendet ist.void
playOnce()
Spielt den Sound einmal ab und gibt danach alle Ressourcen des Clips frei.void
Spielt den Sound einmal ab und gibt danach alle Ressourcen des Clips frei.void
removeAudioListener
(AudioListener listener) Entfernt den angegebenenAudioListener
vom Medium.void
setVolume
(double volume) Legt die Lautstärke des Mediums beim Abspielen fest.void
stop()
Stoppt die Wiedergabe.
-
Constructor Details
-
Sound
Erstellt einen Sound aus der angegebene Quelle.- Parameters:
source
- Quelle der Audiodaten.- Throws:
NullPointerException
- Falls die Quellenull
ist.- See Also:
-
-
Method Details
-
getSource
-
isPlaying
public boolean isPlaying()Description copied from interface:Audio
Prüft, ob das Medium gerade abgespielt wird. -
isLooping
public boolean isLooping()Description copied from interface:Audio
Prüft, ob das Medium gerade in einer Schleife abgespielt wird. WennisLooping() == true
gilt, dann muss auch immerisPlaying() == true
gelten. -
setVolume
public void setVolume(double volume) Description copied from interface:Audio
Legt die Lautstärke des Mediums beim Abspielen fest.Die Lautstärke wird auf einer linearen Skale festgelegt, wobei 0 kein Ton und 1 volle Lautstärke bedeutet. Werte über 1 verstärken den Ton des Mediums. Negative Werte setzen die Lautstärke aud 0.
-
getVolume
public double getVolume()Description copied from interface:Audio
Liefert die aktuelle Lautstärke dieses Mediums.Die Lautstärke wird auf einer linearen Skale angegeben, wobei 0 kein Ton und 1 volle Lautstärke bedeutet. Werte über 1 verstärken den Ton des Mediums.
-
stop
public void stop()Description copied from interface:Audio
Stoppt die Wiedergabe. Wird das Medium gerade nicht abgespielt (isPlaying() == false
), dann passiert nichts. -
play
public void play()Description copied from interface:Audio
Startet die Wiedergabe des Mediums. Das Audio-Medium wird einmal abgespielt und stoppt dann.Die Methode beendet sofort und die Wiedergabe erfolgt im Hintergrund. Soll die Programmausführung erst nach Wiedergabe des Mediums fortgesetzt werden, sollte
Audio.playAndWait()
verwendet werden.Soll die Wiedergabe im Hintergrund ablaufen, aber dennoch auf das Ende reagiert werden, kann ein
AudioListener
verwendet werden. -
playAndWait
public void playAndWait()Description copied from interface:Audio
Startet die Wiedergabe des Mediums und blockiert das Programm, bis die Wiedergabe beendet ist.- Specified by:
playAndWait
in interfaceAudio
-
playOnce
public void playOnce()Spielt den Sound einmal ab und gibt danach alle Ressourcen des Clips frei.Der Aufruf ist effektiv gleich zu
allerdings wird der aufrufende Thread nicht blockiert undclip.playAndWait(); clip.dispose();
dispose()
automatisch am Ende aufgerufen. -
playOnceAndWait
public void playOnceAndWait()Spielt den Sound einmal ab und gibt danach alle Ressourcen des Clips frei.Der Aufruf entspricht
clip.playAndWait(); clip.dispose();
-
loop
public void loop()Description copied from interface:Audio
Spielt das Medium in einer kontinuierlichen Schleife ab. Die Methode startet die Wiedergabe im Hintergrund und beendet dann sofort. Um die Wiedergabe zu stoppen, mussAudio.stop()
aufgerufen werden. -
loop
public void loop(int count) Wiederholt den Sound die angegebene Anzahl an Wiederholungen und stoppt die Wiedergabe dann.Wird
count
aufClip.LOOP_CONTINUOUSLY
gesetzt (-1), wird der Clip unendlich oft wiederholt. Der Aufruf entspricht dannloop()
.- Parameters:
count
- Anzahl der Wiederholungen.
-
dispose
public void dispose()Description copied from interface:Audio
Stoppt die Wiedergabe und gibt alle Ressourcen, die für das Medium verwendet werden, frei. -
addAudioListener
Description copied from interface:Audio
Fügt dem Medium das angegebene Objekt alsAudioListener
hinzu, der bei Start und Stopp der Wiedergabe informiert wird.- Specified by:
addAudioListener
in interfaceAudio
- Parameters:
listener
- Das Listener-Objekt.
-
removeAudioListener
Description copied from interface:Audio
Entfernt den angegebenenAudioListener
vom Medium.- Specified by:
removeAudioListener
in interfaceAudio
- Parameters:
listener
- Das Listener-Objekt.
-