Class Mixer

java.lang.Object
schule.ngb.zm.media.Mixer
All Implemented Interfaces:
Audio, AudioListener, Listener<Audio>

public class Mixer extends Object implements Audio, AudioListener
Ein Mixer ist eine Sammlung mehrerer Audio-Medien, die gemeinsam kontrolliert werden können.

Im einfachsten Fall kann die Audio-Gruppe gemeinsam gestartet und gestoppt werden. Ein Mixer kann die Lautstärke der Medien in Relation zueinander setzen. Dazu wird jedem Medium ein Faktor mitgegeben. Ein Medium mit dem Faktor 0.5 ist dann halb so laut wie eines, mit dem Faktor 1.0.

Darüber hinaus kann ein Mixer Effekte wie einen fadeIn auf die Medien anwenden.

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(Audio pAudio)
     
    void
    add(Audio pAudio, double pVolumeFactor)
    Fügt ein Audio-Objekt dem Mixer mit dem angegebenen Lautstärke-Faktor hinzu.
    void
    Fügt dem Medium das angegebene Objekt als AudioListener hinzu, der bei Start und Stopp der Wiedergabe informiert wird.
    boolean
    contains(Audio pAudio)
     
    void
    Stoppt die Wiedergabe und gibt alle Ressourcen, die für das Medium verwendet werden, frei.
    void
    fade(double to, int time)
    Ändert die Lautstärke aller hinzugefügten Audiomedien in der angegebenen Zeit schrittweise, bis die angegebene Lautstärke erreicht ist.
     
    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
    Spielt das Medium in einer kontinuierlichen Schleife ab.
    void
    Startet die Wiedergabe des Mediums.
    void
    Startet die Wiedergabe des Mediums und blockiert das Programm, bis die Wiedergabe beendet ist.
    void
    Wird aufgerufen, sobald die Wiedergabe eines Audio-Mediums startet, dem dieses Objekt mittels Audio.addAudioListener(AudioListener) hinzugefügt wurde.
    void
    Wird aufgerufen, sobald die Wiedergabe eines Audio-Mediums stoppt, dem dieses Objekt mittels Audio.addAudioListener(AudioListener) hinzugefügt wurde.
    void
    remove(Audio pAudio)
    Entfernt die das angegebene Audio-Objekt aus dem Mixer.
    void
     
    void
    Entfernt den angegebenen AudioListener vom Medium.
    void
    setVolume(double volume)
    Legt die Lautstärke des Mediums beim Abspielen fest.
    void
    Stoppt die Wiedergabe.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Mixer

      public Mixer()
  • Method Details

    • getSource

      public String getSource()
      Specified by:
      getSource in interface Audio
      Returns:
      Die Quelle, aus der das Medium geladen wurde.
    • contains

      public boolean contains(Audio pAudio)
    • add

      public void add(Audio pAudio)
    • add

      public void add(Audio pAudio, double pVolumeFactor)
      Fügt ein Audio-Objekt dem Mixer mit dem angegebenen Lautstärke-Faktor hinzu.

      Der Lautstärke-Faktor setzt die Lautstärke des Audio-Objektes relativ zur Lautstärke des Mixers. Bei einem Faktor von 1.0 wird die Lautstärke des Mixers übernommen. Bei einem Wert von 0.5 wird das Objekt halb so laut abgespielt. Auf diese Weise lässt sich die Lautstärke aller Audio-Objekte des Mixers gleichzeitig anpassen, während ihre relative Lautstärke zueinander gleich bleibt.

      Parameters:
      pAudio - Ein Audio-Objekt.
      pVolumeFactor - Der Lautstärke-Faktor.
    • remove

      public void remove(Audio pAudio)
      Entfernt die das angegebene Audio-Objekt aus dem Mixer. Ist das Objekt nicht Teil des Mixers, passiert nichts.
      Parameters:
      pAudio - Ein Audio-Objekt.
    • removeAll

      public void removeAll()
    • isPlaying

      public boolean isPlaying()
      Description copied from interface: Audio
      Prüft, ob das Medium gerade abgespielt wird.
      Specified by:
      isPlaying in interface Audio
      Returns:
      true, wenn das Medium abgespielt wird, false sonst.
    • isLooping

      public boolean isLooping()
      Description copied from interface: Audio
      Prüft, ob das Medium gerade in einer Schleife abgespielt wird. Wenn isLooping() == true gilt, dann muss auch immer isPlaying() == true gelten.
      Specified by:
      isLooping in interface Audio
      Returns:
      true, wenn das Medium in einer Schleife abgespielt wird, false sonst.
    • 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.

      Specified by:
      setVolume in interface Audio
      Parameters:
      volume - Die neue Lautstärke zwischen 0 und 1.
      See Also:
    • 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.

      Specified by:
      getVolume in interface Audio
      Returns:
      Die Lautstärke als linear skalierter Wert.
    • 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.

      Specified by:
      play in interface Audio
    • 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 interface Audio
    • 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, muss Audio.stop() aufgerufen werden.
      Specified by:
      loop in interface Audio
    • stop

      public void stop()
      Description copied from interface: Audio
      Stoppt die Wiedergabe. Wird das Medium gerade nicht abgespielt (isPlaying() == false), dann passiert nichts.
      Specified by:
      stop in interface Audio
    • dispose

      public void dispose()
      Description copied from interface: Audio
      Stoppt die Wiedergabe und gibt alle Ressourcen, die für das Medium verwendet werden, frei.
      Specified by:
      dispose in interface Audio
    • fade

      public void fade(double to, int time)
      Ändert die Lautstärke aller hinzugefügten Audiomedien in der angegebenen Zeit schrittweise, bis die angegebene Lautstärke erreicht ist.

      Zu beachten ist, dass die Lautstärke des Mixers angepasst wird. Das bedeutet, dass die Lautstärke der hinzugefügten Medien mit ihrem Lautstärkefaktor multipliziert werden. Die Medien haben am Ende also nicht unbedingt die Lautstärke to.

      Parameters:
      to - Der Zielwert für die Lautstärke.
      time - Die Zeit, nach der die Änderung abgeschlossen sein soll.
    • playbackStarted

      public void playbackStarted(Audio source)
      Description copied from interface: AudioListener
      Wird aufgerufen, sobald die Wiedergabe eines Audio-Mediums startet, dem dieses Objekt mittels Audio.addAudioListener(AudioListener) hinzugefügt wurde.
      Specified by:
      playbackStarted in interface AudioListener
      Parameters:
      source - Das Audio-Medium, dessen Wiedergabe gestartet wurde.
    • playbackStopped

      public void playbackStopped(Audio source)
      Description copied from interface: AudioListener
      Wird aufgerufen, sobald die Wiedergabe eines Audio-Mediums stoppt, dem dieses Objekt mittels Audio.addAudioListener(AudioListener) hinzugefügt wurde.
      Specified by:
      playbackStopped in interface AudioListener
      Parameters:
      source - Das Audio-Medium, dessen Wiedergabe gestoppt wurde.
    • addAudioListener

      public void addAudioListener(AudioListener listener)
      Description copied from interface: Audio
      Fügt dem Medium das angegebene Objekt als AudioListener hinzu, der bei Start und Stopp der Wiedergabe informiert wird.
      Specified by:
      addAudioListener in interface Audio
      Parameters:
      listener - Das Listener-Objekt.
    • removeAudioListener

      public void removeAudioListener(AudioListener listener)
      Description copied from interface: Audio
      Entfernt den angegebenen AudioListener vom Medium.
      Specified by:
      removeAudioListener in interface Audio
      Parameters:
      listener - Das Listener-Objekt.