public interface Clip extends DataLine
Clip接口代表一种特殊的数据线的音频数据可以被加载之前播放,而不是实时流。
由于数据是预先加载的,并且有一个已知的长度,你可以设置一个剪辑开始在它的音频数据中的任何位置开始播放。您还可以创建一个循环,以便在播放剪辑时,它将循环重复。循环中指定了一个开始和结束的示例框架,以及循环应该被播放的次数。
剪辑可以从支持这种类型的线获得。当打开数据时,数据被加载到一个剪辑中。Mixer
音频剪辑的播放可以启动和停止使用start和stop方法。这些方法不会重置的媒体定位;start原因回放继续从上次停止的位置在播放。重新播放的剪辑的音频数据的开始,只是遵循与setframeposition调用(0),它将媒体剪辑的开始。stop
DataLine.Info| Modifier and Type | Field and Description |
|---|---|
static int |
LOOP_CONTINUOUSLY
一个值表示循环应该继续下去而不是完成一个特定的圈数后。
|
| Modifier and Type | Method and Description |
|---|---|
int |
getFrameLength()
在样本帧中获得媒体长度。
|
long |
getMicrosecondLength()
获得媒体持续时间在微秒
|
void |
loop(int count)
从当前位置开始循环播放。
|
void |
open(AudioFormat format, byte[] data, int offset, int bufferSize)
打开剪辑,这意味着它应该获得任何所需的系统资源,并成为可操作的。
|
void |
open(AudioInputStream stream)
打开所提供的音频输入流中的格式和音频数据的剪辑。
|
void |
setFramePosition(int frames)
设置样本帧中的媒体位置。
|
void |
setLoopPoints(int start, int end)
设置将在循环中播放的第一个和最后一个示例帧。
|
void |
setMicrosecondPosition(long microseconds)
套在微秒的媒体位置。
|
available, drain, flush, getBufferSize, getFormat, getFramePosition, getLevel, getLongFramePosition, getMicrosecondPosition, isActive, isRunning, start, stopaddLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListenerstatic final int LOOP_CONTINUOUSLY
loop(int),
Constant Field Values
void open(AudioFormat format, byte[] data, int offset, int bufferSize) throws LineUnavailableException
OPEN事件被派遣到线的听众。
调用该方法对线已经开是违法的,可能会导致一个IllegalStateException。
请注意,一些行,一旦关闭,不能重新打开。试图重开这一行总是导致。LineUnavailableException
format -提供的音频数据格式
data -装入夹包含音频数据的字节数组
offset -点开始复制,表示字节从数组的开始
bufferSize -的数据的字节数装入夹从阵列。
LineUnavailableException -如果线路不因资源限制打开
IllegalArgumentException如果缓冲区的大小并不代表样本帧的整数,或者
format不完全指定的或无效的
IllegalStateException如果线已经打开
SecurityException -如果线路不能由于安全限制打开
Line.close(),
Line.isOpen(),
LineListener
void open(AudioInputStream stream) throws LineUnavailableException, IOException
OPEN事件被派遣到线的听众。
调用该方法对线已经开是违法的,可能会导致一个IllegalStateException。
请注意,一些行,一旦关闭,不能重新打开。试图重开这一行总是导致。LineUnavailableException
stream -音频输入流从音频数据将被读入夹
LineUnavailableException -如果线路不因资源限制打开
IOException如果流读书期间发生的I/O异常
IllegalArgumentException如果流的音频格式不完全指定的或无效的
IllegalStateException如果线已经打开
SecurityException -如果线路不能由于安全限制打开
Line.close(),
Line.isOpen(),
LineListener
int getFrameLength()
AudioSystem.NOT_SPECIFIED如果线路不开。
AudioSystem.NOT_SPECIFIED
long getMicrosecondLength()
AudioSystem.NOT_SPECIFIED如果线路不开。
AudioSystem.NOT_SPECIFIED
void setFramePosition(int frames)
获得样本框的当前位置,使用的方法DataLine 。getFramePosition
frames -所需的新媒体阵地,样本框表示
void setMicrosecondPosition(long microseconds)
获得微秒的当前位置,使用的方法DataLine 。getMicrosecondPosition
microseconds -所需的新媒体阵地,用微秒
void setLoopPoints(int start,
int end)
start -循环的起始位置,在样品架(零基础)
end -循环的结束位置,在样品架(零基础),或1显示最后一帧
IllegalArgumentException环点不能设置,通常是因为一方或双方不在媒体的持续时间或因为终点前的起点
void loop(int count)
count倍,并继续播放到最后的剪辑。
如果当前位置调用此方法时大于循环结束点,播放简单地继续最后的剪辑没有循环。
一个0 count值表示当前循环停止和播放应该继续最后的剪辑。该方法在循环操作过程中调用任何其他值时,该方法是不定义的。
如果播放期间停止循环,电流环状态被清除;随后的回路和启动请求的行为是不间断循环操作的影响。
count -次播放数环回从循环的结束位置到循环的起始位置,或
LOOP_CONTINUOUSLY表明循环继续直到中断
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.