## org.apache.tools.ant.taskdefs.optional.sound
Class AntSoundPlayer

    java.lang.Object
      org.apache.tools.ant.taskdefs.optional.sound.AntSoundPlayer

All Implemented Interfaces:
  java.util.EventListener, javax.sound.sampled.LineListener, BuildListener

    public class AntSoundPlayer

extends java.lang.Object
implements javax.sound.sampled.LineListener, BuildListener

This class is designed to be used by any AntTask that requires audio output. It implements the BuildListener interface to listen for BuildEvents and could be easily extended to provide audio output upon any specific build events occurring. I have only tested this with .WAV and .AIFF sound file formats. Both seem to work fine.

Constructor Summary
`AntSoundPlayer()` Constructor for AntSoundPlayer.

Method Summary
`void` `addBuildFailedSound(java.io.File fileFail, int loopsFail, java.lang.Long durationFail)`
`void` `addBuildSuccessfulSound(java.io.File file, int loops, java.lang.Long duration)`
`void` `buildFinished(BuildEvent event)` Fired after the last target has finished.
`void` `buildStarted(BuildEvent event)` Fired before any targets are started.
`void` `messageLogged(BuildEvent event)` Fired whenever a message is logged.
`void` `targetFinished(BuildEvent event)` Fired when a target has finished.
`void` `targetStarted(BuildEvent event)` Fired when a target is started.
`void` `taskFinished(BuildEvent event)` Fired when a task has finished.
`void` `taskStarted(BuildEvent event)` Fired when a task is started.
`void` `update(javax.sound.sampled.LineEvent event)` This is implemented to listen for any line events and closes the clip if required.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AntSoundPlayer

    public AntSoundPlayer()

  Constructor for AntSoundPlayer.

Method Detail

### addBuildSuccessfulSound

    public void addBuildSuccessfulSound(java.io.File file,
                                        int loops,
                                        java.lang.Long duration)

  Parameters:
    `file` - the location of the audio file to be played when the build is successful
    `loops` - the number of times the file should be played when the build is successful
    `duration` - the number of milliseconds the file should be played when the build is successful

### addBuildFailedSound

    public void addBuildFailedSound(java.io.File fileFail,
                                    int loopsFail,
                                    java.lang.Long durationFail)

  Parameters:
    `fileFail` - the location of the audio file to be played when the build fails
    `loopsFail` - the number of times the file should be played when the build is fails
    `durationFail` - the number of milliseconds the file should be played when the build fails

### update

    public void update(javax.sound.sampled.LineEvent event)

  This is implemented to listen for any line events and closes the clip if required.

  Specified by:
    `update` in interface `javax.sound.sampled.LineListener`
  Parameters:
    `event` - the line event to follow

### buildStarted

    public void buildStarted(BuildEvent event)

  Fired before any targets are started.

  Specified by:
    `buildStarted` in interface `BuildListener`
  Parameters:
    `event` - ignored

### buildFinished

    public void buildFinished(BuildEvent event)

  Fired after the last target has finished. This event will still be thrown if an error occurred during the build.

  Specified by:
    `buildFinished` in interface `BuildListener`
  Parameters:
    `event` - the build finished event.
  See Also:
    `BuildEvent.getException()`

### targetStarted

    public void targetStarted(BuildEvent event)

  Fired when a target is started.

  Specified by:
    `targetStarted` in interface `BuildListener`
  Parameters:
    `event` - ignored.
  See Also:
    `BuildEvent.getTarget()`

### targetFinished

    public void targetFinished(BuildEvent event)

  Fired when a target has finished. This event will still be thrown if an error occurred during the build.

  Specified by:
    `targetFinished` in interface `BuildListener`
  Parameters:
    `event` - ignored.
  See Also:
    `BuildEvent.getException()`

### taskStarted

    public void taskStarted(BuildEvent event)

  Fired when a task is started.

  Specified by:
    `taskStarted` in interface `BuildListener`
  Parameters:
    `event` - ignored.
  See Also:
    `BuildEvent.getTask()`

### taskFinished

    public void taskFinished(BuildEvent event)

  Fired when a task has finished. This event will still be throw if an error occurred during the build.

  Specified by:
    `taskFinished` in interface `BuildListener`
  Parameters:
    `event` - ignored.
  See Also:
    `BuildEvent.getException()`

### messageLogged

    public void messageLogged(BuildEvent event)

  Fired whenever a message is logged.

  Specified by:
    `messageLogged` in interface `BuildListener`
  Parameters:
    `event` - the build event
  See Also:
    `BuildEvent.getMessage()`, `BuildEvent.getPriority()`