public interface DataLine extends Line
DataLine
添加媒体相关的功能,其超,
Line
。此功能包括启动、停止、漏极和冲洗通过该行的音频数据的传输控制方法。数据线还可以报告媒体的当前位置、音量和音频格式。数据线用的子接口
SourceDataLine
或
Clip
意味着输出的音频,它允许应用程序将数据写入。同样,音频输入的接口
TargetDataLine
处理,使数据可以读。
一数据线具有一个内部缓冲器,其中,传入或传出的音频数据被排队。方法的
街区内部缓冲区为空,因为所有排队的数据已被处理。的drain()
方法丢弃任何可用的队列数据从内部缓冲区。flush()
数据线生产的
和START
事件时,它开始或停止活动的演示文稿或捕获的数据。这些事件可以响应于特定的请求而产生,或由于不太直接的状态变化而产生的结果。例如,如果STOP
呼吁无效数据线和数据可用于捕获和回放,一start()
START
事件将产生不久,当数据回放或捕获的开始。或者,如果数据到一个活动的数据线的流动收缩使间隙出现在演示文稿中的数据,生成一个STOP
事件。
混频器经常支持多个数据线的同步控制。同步可以通过调音台界面的
方法建立。看到一个更完整的描述的synchronize
接口描述。Mixer
LineEvent
Modifier and Type | Interface and Description |
---|---|
static class |
DataLine.Info
除了从它的父类继承的类的信息,
DataLine.Info 提供特定于数据线的附加信息。
|
Modifier and Type | Method and Description |
---|---|
int |
available()
获取当前用于处理数据线内部缓冲区中的应用程序的数据的字节数。
|
void |
drain()
通过持续的数据输入输出排队的数据,直到数据线的内部缓冲区被清空为止。
|
void |
flush()
冲排队的数据线。
|
int |
getBufferSize()
获取将适合于数据线内部缓冲区的数据的最大字节数。
|
AudioFormat |
getFormat()
获取数据线的音频数据的当前格式(编码、采样率、信道数等)。
|
int |
getFramePosition()
在音频数据中获得当前位置,在样本帧中。
|
float |
getLevel()
获取行的当前音量级别。
|
long |
getLongFramePosition()
在音频数据中获得当前位置,在样本帧中。
|
long |
getMicrosecondPosition()
得到的音频数据的当前位置,在微秒。
|
boolean |
isActive()
指示是否行是从事活动的I / O(如播放或捕获)。
|
boolean |
isRunning()
指示是否运行该行。
|
void |
start()
允许一行从事数据I / O.
|
void |
stop()
停线。
|
addLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListener
void drain()
drain()
在停止线已在其队列的数据调用,该方法将阻塞直到该线运行和数据队列变空。如果
drain()
是由一个线程调用,另一个继续填写数据队列,操作不完整。当数据线关闭时,这种方法总是返回。
flush()
void flush()
void start()
START
事件。
stop()
,
isRunning()
,
LineEvent
void stop()
flush
方法丢弃。当音频采集和播放停止,产生一个
STOP
事件。
start()
,
isRunning()
,
flush()
,
LineEvent
boolean isRunning()
false
。一个开放的线路开始运行时,第一个数据是在响应的
start
方法调用,直至呈现停止响应号召
stop
或因为播放完成。
boolean isActive()
true
如果线是积极捕捉和渲染的声音,否则
false
Line.isOpen()
,
Line.addLineListener(javax.sound.sampled.LineListener)
,
Line.removeLineListener(javax.sound.sampled.LineListener)
,
LineEvent
,
LineListener
AudioFormat getFormat()
如果该行是不打开的,并且从未被打开,它将返回默认的格式。默认的格式是一个执行特定的音频格式,或者,如果DataLine.Info
对象,以获取该DataLine
,指定至少一个完全合格的音频格式,最后一个将被用作默认的格式。与一个特定的音频格式开放线(如SourceDataLine.open(AudioFormat)
)将覆盖默认格式。
AudioFormat
int getBufferSize()
int available()
请注意,所使用的单位为字节,但将总是对应于音频数据的样本帧的整数数目。
一个应用程序是保证一个读或写到返回的字节数available()
操作不会阻塞;然而,有没有保证,试图读取或写入更多的数据块。
int getFramePosition()
getLongFramePosition
相反。
getLongFramePosition()
long getLongFramePosition()
long getMicrosecondPosition()
float getLevel()
AudioSystem.NOT_SPECIFIED
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.