Package pi

Class Jukebox

java.lang.Object
pi.Jukebox

public final class Jukebox extends Object
Die Jukebox-Klasse bietet Methoden an, um Klänge (Sound) und Musik (Music) im Spiel wiederzugeben.

Jede Audio-Datei kann sowohl als Musik als auch als Klang abgespielt. Der Hauptunterschied zwischen Musik und Klang ist: Die playMusic()-Methoden ermöglichen eine feinere Steuerung der Wiedergabe durch zwei Parameter:

  1. Parameter restart: Ob die aktuelle Musikwiedergabe von neuem gestartet werden kann.
  2. Parameter stop: Ob die neu gestartet Musikwiedergabe eine laufende Musikwiedergabe stoppen soll.

Die Jukebox kann standardmäßig .wav, .mp3 und .ogg Dateien abspielen. Wenn andere Dateierweiterungen benötigt werden, muss eine eigene SPI-Implementierung geschrieben und dem Projekt hinzugefügt werden.

Author:
Steffen Wilke, Matthias Wilke
  • Field Details

  • Constructor Details

    • Jukebox

      public Jukebox()
  • Method Details

    • playMusic

      public static MusicPlayback playMusic(Sound sound)
      Sets the currently playing track to a LoopedTrack with the specified music Sound. This has no effect if the specified track is already playing.
      Parameters:
      sound - Der Klang, der abgespielt werden soll.
      Returns:
      Ermöglicht die Steuerung der Musikwiedergabe.
    • playMusic

      public static MusicPlayback playMusic(Sound sound, boolean restart, boolean stop)
      Sets the currently playing track to a LoopedTrack with the specified music Sound. This has no effect if the specified track is already playing.
      Parameters:
      sound - Der Klang, der abgespielt werden soll.
      restart - Ob die laufende Musikwiedergabe des eigenen Tracks (bestimmt mit Object.equals(Object)) neu gestartet werden soll.
      stop - Ob die laufende Musikwiedergabe gestoppt werden soll.
      Returns:
      Ermöglicht die Steuerung der Musikwiedergabe.
    • playMusic

      public static MusicPlayback playMusic(Track track)
      Sets the currently playing track to the specified track. This has no effect if the specified track is already playing.
      Parameters:
      track - Die Audiospur, die gespielt werden soll.
      Returns:
      Ermöglicht die Steuerung der Musikwiedergabe.
    • playMusic

      public static MusicPlayback playMusic(String music)
      Spielt die als Zeichenkette angegebene Audio-Datei in einer Endlosschleife ab. Wird diese Audio-Datei bereits abgespielt, so wird diese Wiedergabe nicht unterbrochen. Der Aufruf dieser Methode ist dann ohne Wirkung.
      Parameters:
      music - Die als Zeichenkette angegebene Audio-Datei, die abgespielt werden soll.
      Returns:
      Ermöglicht die Steuerung der Musikwiedergabe.
    • playMusic

      public static MusicPlayback playMusic(String music, boolean restart, boolean stop)
      Sets the currently playing track to a LoopedTrack with the specified music Sound. This has no effect if the specified track is already playing.
      Parameters:
      music - Die als Zeichenkette angegebene Audio-Datei, die abgespielt werden soll
      restart - Ob die laufende Musikwiedergabe des eigenen Tracks (bestimmt mit Object.equals(Object)) neu gestartet werden soll.
      stop - Ob die laufende Musikwiedergabe gestoppt werden soll.
      Returns:
      Ermöglicht die Steuerung der Musikwiedergabe.
    • playMusic

      public static MusicPlayback playMusic(Track track, boolean restart)
      Sets the currently playing track to the specified track.
      Parameters:
      track - Die Audiospur, die gespielt werden soll.
      restart - Ob die laufende Musikwiedergabe des eigenen Tracks (bestimmt mit Object.equals(Object)) neu gestartet werden soll.
      Returns:
      Ermöglicht die Steuerung der Musikwiedergabe.
    • playMusic

      public static MusicPlayback playMusic(Track track, boolean restart, boolean stop)
      Plays the specified track.
      Parameters:
      track - Die Audiospur, die gespielt werden soll.
      restart - Ob die laufende Musikwiedergabe des eigenen Tracks (bestimmt mit Object.equals(Object)) neu gestartet werden soll.
      stop - Ob die laufende Musikwiedergabe gestoppt werden soll.
      Returns:
      Ermöglicht die Steuerung der Musikwiedergabe.
    • playMusic

      public static MusicPlayback playMusic(Track track, Consumer<? super MusicPlayback> config, boolean restart, boolean stop)
      Plays the specified track, optionally configuring it before starting.
      Parameters:
      track - Die Audiospur, die gespielt werden soll.
      config - A call to configure the playback prior to starting, which can be null
      restart - Ob die laufende Musikwiedergabe des eigenen Tracks (bestimmt mit Object.equals(Object)) neu gestartet werden soll.
      stop - Ob die laufende Musikwiedergabe gestoppt werden soll.
      Returns:
      Ermöglicht die Steuerung der Musikwiedergabe.
    • playIntroTrack

      public static MusicPlayback playIntroTrack(String intro, String loop)
      Spielt zwei als Zeichenkette angegeben Audiodateien ab: die Erste nur einmalig und die darauf Folgende in einer Endlosschleife.
      Parameters:
      intro - Die Eingangsmusik als Zeichenkette angegeben.
      loop - Die zu wiederholende Musik als Zeichenkette.
      Returns:
      Ermöglicht die Steuerung der Musikwiedergabe.
    • getMusic

      public static MusicPlayback getMusic()
      Gets the "main" music that is playing. This usually means the last call to playMusic, though if the music has been stopped it will be null.
      Returns:
      The main music, which could be null.
    • getAllMusic

      public static Collection<MusicPlayback> getAllMusic()
      Liefert eine Liste mit allen Musikwiedergaben.
      Returns:
      Eine Liste mit allen Musikwiedergaben.
    • stopMusic

      public static void stopMusic()
      Stoppt die Wiedergabe der aktuellen Hintergrundmusik.
    • getSound

      public static Sound getSound(String filePath)
    • createSoundPlayback

      public static SoundPlayback createSoundPlayback(Sound sound, boolean loop)
      Creates an SoundPlayback object that can be configured prior to starting.

      Unlike the playSound methods, the SoundPlayback objects returned by this method must be started using the Playback.start() method. However, necessary resources are acquired immediately upon calling this method, and will remain in use until the playback is either cancelled or finalized.

      Parameters:
      sound - The sound to play
      loop - Whether to loop the sound
      Returns:
      An SoundPlayback object that can be configured prior to starting, but will need to be manually started.
    • createSoundPlayback

      public static SoundPlayback createSoundPlayback(String filePath, boolean loop)
    • addSound

      public static void addSound(SoundPlayback playback)
    • playSound

      public static SoundPlayback playSound(Sound sound, boolean loop)
    • playSound

      public static SoundPlayback playSound(String filePath, boolean loop)
    • playSound

      public static SoundPlayback playSound(String filePath)