Class Audio

java.lang.Object
com.globalmentor.beans.BoundPropertyObject
All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable, ProgressListenable<Long>, DepictedObject

public class Audio extends AbstractDepictedObject implements ProgressListenable<Long>
Audio that can be played. The installed depictor must be of the specialized type Audio.Depictor.
Author:
Garret Wilson
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
    The custom depictor type for audio.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    The bound property of the audio content type.
    static final String
    The bound property of the audio URI.
    static final String
    The bound property of the state.
    static final String
    The bound property of the play duration using microseconds.
    static final String
    The bound property of the play position in time using microseconds.

    Fields inherited from class com.globalmentor.beans.BoundPropertyObject

    NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor.
    Audio(URI audioURI, com.globalmentor.net.MediaType contentType)
    Audio URI constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Adds a progress listener.
    protected void
    fireProgressed(long timePosition, long timeDuration)
    Fires a progress event to all registered progress listeners.
    protected void
    Fires a given progress event to all registered progress listeners.
    com.globalmentor.net.MediaType
     
     
     
    com.globalmentor.model.TaskState
     
    long
     
    long
     
    void
    Requests that the audio pause.
    void
    Requests that the audio start playing.
    void
    Removes an progress listener.
    void
    setAudioContentType(com.globalmentor.net.MediaType newAudioContentType)
    Sets the content type of the audio.
    void
    setAudioURI(URI newAudioURI)
    Sets the URI of the audio.
    void
    setState(com.globalmentor.model.TaskState newState)
    Updates the state of the audio.
    void
    setTimePosition(long newTimePosition)
    Requests a new time-based play position.
    void
    Requests that the audio stop.
    protected void
    updateTimeLength(long newTimeLength)
    Updates the duration of the audio.
    protected void
    updateTimePosition(long newTimePosition)
    Updates the time-based play position.
    void
    updateTimeProgress(long timePosition, long timeLength)
    Updates the progress of the audio, firing the appropriate progress event.

    Methods inherited from class io.guise.framework.platform.AbstractDepictedObject

    depict, equals, exportTransfer, getDepictID, getEventListenerManager, hashCode, processEvent, toString

    Methods inherited from class io.guise.framework.event.GuiseBoundPropertyObject

    getSession

    Methods inherited from class com.globalmentor.beans.BoundPropertyObject

    addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, createPostponedPropertyChangeEvent, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, getForwardPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeSupport, getRepeatPropertyChangeListener, getRepeatVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, getVetoableChangeSupport, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface io.guise.framework.platform.DepictedObject

    getSession
  • Field Details

    • AUDIO_URI_PROPERTY

      public static final String AUDIO_URI_PROPERTY
      The bound property of the audio URI.
    • AUDIO_MEDIA_TYPE_PROPERTY

      public static final String AUDIO_MEDIA_TYPE_PROPERTY
      The bound property of the audio content type.
    • STATE_PROPERTY

      public static final String STATE_PROPERTY
      The bound property of the state.
    • TIME_LENGTH_PROPERTY

      public static final String TIME_LENGTH_PROPERTY
      The bound property of the play duration using microseconds.
    • TIME_POSITION_PROPERTY

      public static final String TIME_POSITION_PROPERTY
      The bound property of the play position in time using microseconds.
  • Constructor Details

    • Audio

      public Audio()
      Default constructor.
    • Audio

      public Audio(URI audioURI, com.globalmentor.net.MediaType contentType)
      Audio URI constructor.
      Parameters:
      audioURI - The new URI of the audio, which may be a resource URI, or null if there is no audio URI.
      contentType - The new content type of the audio, or null if there is no audio URI or the content type is not known.
  • Method Details

    • getDepictor

      public Audio.Depictor<? extends Audio> getDepictor()
      Specified by:
      getDepictor in interface DepictedObject
      Overrides:
      getDepictor in class AbstractDepictedObject
      Returns:
      The depictor for this object.
    • getAudioURI

      public URI getAudioURI()
      Returns:
      The audio URI, which may be a resource URI, or null if there is no audio URI.
    • setAudioURI

      public void setAudioURI(URI newAudioURI)
      Sets the URI of the audio. This is a bound property of type URI.
      Parameters:
      newAudioURI - The new URI of the audio, which may be a resource URI, or null if there is no audio URI.
      See Also:
    • getAudioContentType

      public com.globalmentor.net.MediaType getAudioContentType()
      Returns:
      The audio content type, or null if there is no audio URI or the content type is not known.
    • setAudioContentType

      public void setAudioContentType(com.globalmentor.net.MediaType newAudioContentType)
      Sets the content type of the audio. This is a bound property of type MediaType.
      Parameters:
      newAudioContentType - The new content type of the audio, or null if there is no audio URI or the content type is not known.
      See Also:
    • getState

      public com.globalmentor.model.TaskState getState()
      Returns:
      The state of the audio, or null if the audio has not been started.
    • setState

      public void setState(com.globalmentor.model.TaskState newState)
      Updates the state of the audio. This method is called by the associated depictor and should normally not be called directly by applications. This is a bound property.
      Parameters:
      newState - The new state of the audio, or null if the audio has not been started.
      See Also:
    • getTimePosition

      public long getTimePosition()
      Returns:
      The current play position in microseconds.
    • updateTimePosition

      protected void updateTimePosition(long newTimePosition)
      Updates the time-based play position. This is a bound property.
      Parameters:
      newTimePosition - The new play position in microseconds.
      Throws:
      IllegalArgumentException - if the given position is negative.
      See Also:
    • setTimePosition

      public void setTimePosition(long newTimePosition)
      Requests a new time-based play position. This is an asynchronous bound property.
      Parameters:
      newTimePosition - The new play position in microseconds.
      Throws:
      IllegalArgumentException - if the given position is negative.
      See Also:
    • getTimeLength

      public long getTimeLength()
      Returns:
      The current duration or estimated duration in microseconds, or -1 if not known.
    • updateTimeLength

      protected void updateTimeLength(long newTimeLength)
      Updates the duration of the audio. This is a bound property.
      Parameters:
      newTimeLength - The new duration in microseconds.
      See Also:
    • play

      public void play()
      Requests that the audio start playing. If the audio is currently starting to play or already playing, no action occurs.
    • pause

      public void pause()
      Requests that the audio pause. If the audio is not playing, no action occurs.
    • stop

      public void stop()
      Requests that the audio stop. If the audio is not initializing, playing, or paused, no action occurs.
    • updateTimeProgress

      public void updateTimeProgress(long timePosition, long timeLength)
      Updates the progress of the audio, firing the appropriate progress event. This method is called by the associated depictor and should normally not be called directly by applications.
      Parameters:
      timePosition - The current play position in microseconds, or -1 if not known.
      timeLength - The duration or estimated duration of the audio in microseconds, or -1 if not known.
    • addProgressListener

      public void addProgressListener(ProgressListener<Long> progressListener)
      Description copied from interface: ProgressListenable
      Adds a progress listener.
      Specified by:
      addProgressListener in interface ProgressListenable<Long>
      Parameters:
      progressListener - The progress listener to add.
    • removeProgressListener

      public void removeProgressListener(ProgressListener<Long> progressListener)
      Description copied from interface: ProgressListenable
      Removes an progress listener.
      Specified by:
      removeProgressListener in interface ProgressListenable<Long>
      Parameters:
      progressListener - The progress listener to remove.
    • fireProgressed

      protected void fireProgressed(long timePosition, long timeDuration)
      Fires a progress event to all registered progress listeners. This method delegates to fireProgressed(ProgressEvent).
      Parameters:
      timePosition - The current position in microseconds, or -1 if not known.
      timeDuration - The length or estimated length of the audio in microseconds, or -1 if not known.
      See Also:
    • fireProgressed

      protected void fireProgressed(ProgressEvent<Long> progressEvent)
      Fires a given progress event to all registered progress listeners.
      Parameters:
      progressEvent - The progress event to fire.