Package com.sun.speech.freetts.audio

# Class NullAudioPlayer

java.lang.Object
com.sun.speech.freetts.audio.NullAudioPlayer

All Implemented Interfaces:
  `AudioPlayer`

public class NullAudioPlayer extends Object implements AudioPlayer
Provides an implementation of `AudioPlayer` that sends all audio data to the bit bucket. The `NullAudioPlayer` is instrumented to provide timing metrics.

## Constructor Summary

Constructors
Constructor
Description
`NullAudioPlayer()`
Constructs a NullAudioPlayer

## Method Summary

Modifier and Type
Method
Description
`void`
`begin(int size)`
Starts the output of a set of data
`void`
`cancel()`
Cancels all queued output.
`void`
`close()`
Waits for all audio playback to stop, and closes this AudioPlayer.
`boolean`
`drain()`
Waits for all queued audio to be played
`boolean`
`end()`
Marks the end of a set of data
`AudioFormat`
`getAudioFormat()`
Retrieves the audio format for this player
`long`
`getTime()`
Gets the amount of played since the last resetTime Currently not supported.
`float`
`getVolume()`
Returns the current volume.
`void`
`pause()`
Pauses the audio output
`void`
`reset()`
Prepares for another batch of output.
`void`
`resetTime()`
Resets the audio clock
`void`
`resume()`
Resumes audio output
`void`
`setAudioFormat(AudioFormat format)`
Sets the audio format for this player
`void`
`setVolume(float volume)`
Sets the current volume.
`void`
`showMetrics()`
Shows metrics for this audio player
`void`
`startFirstSampleTimer()`
Starts the first sample timer
`boolean`
`write(byte[] audioData)`
Writes the given bytes to the audio stream
`boolean`
`write(byte[] bytes, int offset, int size)`
Writes the given bytes to the audio stream

### Methods inherited from class java.lang.Object

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

## Constructor Details

### NullAudioPlayer

public NullAudioPlayer()
Constructs a NullAudioPlayer

## Method Details

### setAudioFormat

public void setAudioFormat(AudioFormat format)
Sets the audio format for this player

Specified by:
  `setAudioFormat` in interface `AudioPlayer`
Parameters:
  `format` - the audio format

### getAudioFormat

public AudioFormat getAudioFormat()
Retrieves the audio format for this player

Specified by:
  `getAudioFormat` in interface `AudioPlayer`
Returns:
  the current audio format.

### cancel

public void cancel()
Cancels all queued output. Current 'write' call will return false

Specified by:
  `cancel` in interface `AudioPlayer`

### pause

public void pause()
Pauses the audio output

Specified by:
  `pause` in interface `AudioPlayer`

### reset

public void reset()
Prepares for another batch of output. Larger groups of output (such as all output associated with a single FreeTTSSpeakable) should be grouped between a reset/drain pair.

Specified by:
  `reset` in interface `AudioPlayer`

### resume

public void resume()
Resumes audio output

Specified by:
  `resume` in interface `AudioPlayer`

### close

public void close()
Waits for all audio playback to stop, and closes this AudioPlayer.

Specified by:
  `close` in interface `AudioPlayer`

### getVolume

public float getVolume()
Returns the current volume.

Specified by:
  `getVolume` in interface `AudioPlayer`
Returns:
  the current volume (between 0 and 1)

### setVolume

public void setVolume(float volume)
Sets the current volume.

Specified by:
  `setVolume` in interface `AudioPlayer`
Parameters:
  `volume` - the current volume (between 0 and 1)

### write

public boolean write(byte[] audioData)
Writes the given bytes to the audio stream

Specified by:
  `write` in interface `AudioPlayer`
Parameters:
  `audioData` - array of audio data
Returns:
  `true` of the write completed successfully, `false` if the write was cancelled.

### begin

public void begin(int size)
Starts the output of a set of data

Specified by:
  `begin` in interface `AudioPlayer`
Parameters:
  `size` - the size of data between now and the end

### end

public boolean end()
Marks the end of a set of data

Specified by:
  `end` in interface `AudioPlayer`
Returns:
  `true` if the audio was output properly, `false` if the output was canceled or interrupted.

### write

public boolean write(byte[] bytes, int offset, int size)
Writes the given bytes to the audio stream

Specified by:
  `write` in interface `AudioPlayer`
Parameters:
  `bytes` - audio data to write to the device
  `offset` - the offset into the buffer
  `size` - the size into the buffer
Returns:
  `true` of the write completed successfully, `false` if the write was cancelled.

### startFirstSampleTimer

public void startFirstSampleTimer()
Starts the first sample timer

Specified by:
  `startFirstSampleTimer` in interface `AudioPlayer`

### drain

public boolean drain()
Waits for all queued audio to be played

Specified by:
  `drain` in interface `AudioPlayer`
Returns:
  `true` if the audio played to completion, `false` if the audio was stopped

### getTime

public long getTime()
Gets the amount of played since the last resetTime Currently not supported.

Specified by:
  `getTime` in interface `AudioPlayer`
Returns:
  the amount of audio in milliseconds

### resetTime

public void resetTime()
Resets the audio clock

Specified by:
  `resetTime` in interface `AudioPlayer`

### showMetrics

public void showMetrics()
Shows metrics for this audio player

Specified by:
  `showMetrics` in interface `AudioPlayer`