Clip interface represents a special kind of data line whose audio
data can be loaded prior to playback, instead of being streamed in real time.
Because the data is pre-loaded and has a known length, you can set a clip to start playing at any position in its audio data. You can also create a loop, so that when the clip is played it will cycle repeatedly. Loops are specified with a starting and ending sample frame, along with the number of times that the loop should be played.
Clips may be obtained from a Mixer that supports lines of this type.
Data is loaded into a clip when it is opened.
Playback of an audio clip may be started and stopped using the
start and stop methods. These methods do not
reset the media position; start causes playback to continue from the
position where playback was last stopped. To restart playback from the
beginning of the clip's audio data, simply follow the invocation of
stop with setFramePosition(0), which rewinds the media to the
beginning of the clip.
| Modifier and Type | Field and Description |
|---|---|
| public static final int | LOOP_CONTINUOUSLY
A value indicating that looping should continue indefinitely rather than complete after a specific number of loops. |
| Modifier and Type | Method and Description |
|---|---|
| public int | Returns: the media length, expressed in sample frames, orAudioSystem.NOT_SPECIFIED if the line is not openObtains the media length in sample frames. |
| public long | Returns: the media duration, expressed in microseconds, orAudioSystem.NOT_SPECIFIED if the line is not openObtains the media duration in microseconds. |
| public void | loop(int
the number of times playback should loop back from the
loop's end position to the loop's start position, or
count)LOOP_CONTINUOUSLY to indicate that looping should
continue until interruptedStarts looping playback from the current position. |
| public void | open(AudioFormat
the format of the supplied audio data format, byte[] a byte array containing audio data to load into the clip data, int the point at which to start copying, expressed in
bytes from the beginning of the array offset, int the number of bytes of data to load into the
clip from the array bufferSize)Opens the clip, meaning that it should acquire any required system resources and become operational. |
| public void | open(AudioInputStream
an audio input stream from which audio data will be read
into the clip stream)Opens the clip with the format and audio data present in the provided audio input stream. |
| public void | setFramePosition(int
the desired new media position, expressed in sample frames frames)Sets the media position in sample frames. |
| public void | setLoopPoints(int
the loop's starting position, in sample frames (zero-based) start, int the loop's ending position, in sample frames (zero-based), or
-1 to indicate the final frame end)Sets the first and last sample frames that will be played in the loop. |
| public void | setMicrosecondPosition(long
the desired new media position, expressed in
microseconds microseconds)Sets the media position in microseconds. |
| LOOP_CONTINUOUSLY | back to summary |
|---|---|
| public static final int LOOP_CONTINUOUSLY A value indicating that looping should continue indefinitely rather than complete after a specific number of loops.
| |
| getFrameLength | back to summary |
|---|---|
| public int getFrameLength() Obtains the media length in sample frames.
| |
| getMicrosecondLength | back to summary |
|---|---|
| public long getMicrosecondLength() Obtains the media duration in microseconds.
| |
| loop | back to summary |
|---|---|
| public void loop(int count) Starts looping playback from the current position. Playback will continue
to the loop's end point, then loop back to the loop start point
If the current position when this method is invoked is greater than the loop end point, playback simply continues to the end of the clip without looping.
A If playback is stopped during looping, the current loop status is cleared; the behavior of subsequent loop and start requests is not affected by an interrupted loop operation.
| |
| open | back to summary |
|---|---|
| public void open(AudioFormat format, byte[] data, int offset, int bufferSize) throws LineUnavailableException Opens the clip, meaning that it should acquire any required system
resources and become operational. The clip is opened with the format and
audio data indicated. If this operation succeeds, the line is marked as
open and an
Invoking this method on a line which is already open is illegal and may
result in an
Note that some lines, once closed, cannot be reopened. Attempts to reopen
such a line will always result in a
| |
| open | back to summary |
|---|---|
| public void open(AudioInputStream stream) throws LineUnavailableException, IOException Opens the clip with the format and audio data present in the provided
audio input stream. Opening a clip means that it should acquire any
required system resources and become operational. If this operation input
stream. If this operation succeeds, the line is marked open and an
Invoking this method on a line which is already open is illegal and may
result in an
Note that some lines, once closed, cannot be reopened. Attempts to reopen
such a line will always result in a
| |
| setFramePosition | back to summary |
|---|---|
| public void setFramePosition(int frames) Sets the media position in sample frames. The position is zero-based; the first frame is frame number zero. When the clip begins playing the next time, it will start by playing the frame at this position.
To obtain the current position in sample frames, use the
| |
| setLoopPoints | back to summary |
|---|---|
| public void setLoopPoints(int start, int end) Sets the first and last sample frames that will be played in the loop. The ending point must be greater than or equal to the starting point, and both must fall within the size of the loaded media. A value of 0 for the starting point means the beginning of the loaded media. Similarly, a value of -1 for the ending point indicates the last frame of the media.
| |
| setMicrosecondPosition | back to summary |
|---|---|
| public void setMicrosecondPosition(long microseconds) Sets the media position in microseconds. When the clip begins playing the next time, it will start at this position. The level of precision is not guaranteed. For example, an implementation might calculate the microsecond position from the current frame position and the audio sample frame rate. The precision in microseconds would then be limited to the number of microseconds per sample frame.
To obtain the current position in microseconds, use the
| |