Class SoundPlayback

java.lang.Object
de.gurkenlabs.litiengine.sound.SoundPlayback
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
MusicPlayback, SFXPlayback

public abstract class SoundPlayback
extends java.lang.Object
implements java.lang.Runnable
The SoundPlayback class is a wrapper SourceDataLine on which a Sound playback can be carried out.
See Also:
play(Sound)
  • Nested Class Summary

    Nested Classes 
    Modifier and TypeClassDescription
    class SoundPlayback.VolumeControl
    An object for controlling the volume of a SoundPlayback.
  • Field Summary

    Fields 
    Modifier and TypeFieldDescription
    protected javax.sound.sampled.SourceDataLineline 
  • Method Summary

    Modifier and TypeMethodDescription
    voidaddSoundPlaybackListener​(SoundPlaybackListener listener)
    Adds a SoundPlaybackListener to this instance.
    voidcancel()
    Attempts to cancel the playback of this audio.
    SoundPlayback.VolumeControlcreateVolumeControl() 
    voidfade​(int duration)
    Fades this playback's volume to 0 over the given duration.
    voidfade​(int duration, float target, TweenFunction easingType)
    Fades this playback's volume to the target value over the given duration using the given TweenFunction.
    protected voidfinalize()
    Deprecated.
    floatgetMasterVolume()
    Gets the current volume of this playback, considering all VolumeControl objects created for it.
    floatgetVolume()
    Gets the current master volume of this playback.
    java.util.Collection<SoundPlayback.VolumeControl>getVolumeControls() 
    booleanisPaused()
    Determines if this playback is paused.
    booleanisPlaying()
    Determines if this playback has sound to play.
    voidpausePlayback()
    Pauses this playback.
    voidremoveSoundPlaybackListener​(SoundPlaybackListener listener)
    Removes a SoundPlaybackListener from this instance.
    voidresumePlayback()
    Resumes this playback.
    voidsetPaused​(boolean paused)
    Sets the paused state of this playback to the provided value.
    voidsetVolume​(float volume)
    Sets the master volume of this playback.
    voidstart()
    Starts playing the audio.

    Methods inherited from class java.lang.Object

    clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface java.lang.Runnable

    run
  • Field Details

    • line

      protected final javax.sound.sampled.SourceDataLine line
  • Method Details

    • start

      public void start()
      Starts playing the audio.
      Throws:
      java.lang.IllegalStateException - if the audio has already been started
    • addSoundPlaybackListener

      public void addSoundPlaybackListener​(SoundPlaybackListener listener)
      Adds a SoundPlaybackListener to this instance.
      Parameters:
      listener - The SoundPlaybackListener to be added.
    • removeSoundPlaybackListener

      public void removeSoundPlaybackListener​(SoundPlaybackListener listener)
      Removes a SoundPlaybackListener from this instance.
      Parameters:
      listener - The SoundPlaybackListener to be removed.
    • setPaused

      public void setPaused​(boolean paused)
      Sets the paused state of this playback to the provided value.
      Parameters:
      paused - Whether to pause or resume this playback
    • pausePlayback

      public void pausePlayback()
      Pauses this playback. If this playback is already paused, this call has no effect.
    • resumePlayback

      public void resumePlayback()
      Resumes this playback. If this playback is already playing, this call has no effect.
    • fade

      public void fade​(int duration)
      Fades this playback's volume to 0 over the given duration.
      Parameters:
      duration - the fade duration in milliseconds.
    • fade

      public void fade​(int duration, float target, TweenFunction easingType)
      Fades this playback's volume to the target value over the given duration using the given TweenFunction.
      Parameters:
      duration - the fade duration in milliseconds.
      target - the target volume at the end of the fade
      easingType - the TweenFunction determining the falloff curve of this fade.
    • isPaused

      public boolean isPaused()
      Determines if this playback is paused.
      Returns:
      Whether this playback is paused
    • isPlaying

      public boolean isPlaying()
      Determines if this playback has sound to play. If it is paused but still in the middle of playback, it will return true, but it will return false if it has finished or it has been cancelled.
      Returns:
      Whether this playback has sound to play
    • cancel

      public void cancel()
      Attempts to cancel the playback of this audio. If the playback was successfully cancelled, it will notify listeners.
    • getMasterVolume

      public float getMasterVolume()
      Gets the current volume of this playback, considering all VolumeControl objects created for it.
      Returns:
      The current volume.
    • getVolume

      public float getVolume()
      Gets the current master volume of this playback. This will be approximately equal to the value set by a previous call to setVolume, though rounding errors may occur.
      Returns:
      The settable volume.
    • setVolume

      public void setVolume​(float volume)
      Sets the master volume of this playback.
      Parameters:
      volume - The new volume.
    • createVolumeControl

      public SoundPlayback.VolumeControl createVolumeControl()
    • getVolumeControls

      public java.util.Collection<SoundPlayback.VolumeControl> getVolumeControls()
    • finalize

      @Deprecated protected void finalize()
      Deprecated.
      Overrides:
      finalize in class java.lang.Object