public interface DataLine extends Line
DataLine将媒体相关功能添加到其超级接口, LineSourceDataLineClipTargetDataLine 数据线具有内部缓冲器,其中输入或输出音频数据排队。 drain()flush()
 每当数据线开始或停止数据的主动呈现或捕获时,数据线将生成STARTSTOPstart()START事件。 或者,如果数据到活动数据线的流动被收缩,使得在数据呈现中发生间隙,则生成STOP事件。 
 混频器通常支持同步控制多条数据线。 可以通过Mixer界面的synchronizesynchronizeMixer Mixer
LineEvent 
       | Modifier and Type | Interface and Description | 
|---|---|
| static class  | DataLine.Info
              除了从其超类继承的类信息, 
              DataLine.Info还提供了特定于数据行的附加信息。 | 
| Modifier and Type | Method and Description | 
|---|---|
| int | available()
              获取应用程序当前可用于数据线内部缓冲区中处理数据的字节数。 
             | 
| void | drain()
              通过持续的数据I / O从排队排出数据,直到数据线的内部缓冲区被清空。 
             | 
| 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, removeLineListenervoid drain()
drain() ,则该方法将阻塞,直到该行正在运行,并且数据队列变为空。 
           如果drain()被一个线程调用,另一个线程继续填充数据队列,操作将不会完成。 
           当数据行关闭时,此方法总是返回。 
          flush() 
           void flush()
void start()
STARTstop() , isRunning() , LineEvent 
           void stop()
flush方法。 
           当音频捕获或播放停止时,会生成一个STOPstart() , isRunning() , flush() , LineEvent 
           boolean isRunning()
false 。 
           当响应于start方法的调用而stop第一数据时,开放行开始运行,并且继续直到呈现停止响应于对stop的调用或者因为播放完成。 
          boolean isActive()
true如果线是主动捕获或渲染声音,否则 
            false 
           Line.isOpen() , Line.addLineListener(javax.sound.sampled.LineListener) , Line.removeLineListener(javax.sound.sampled.LineListener) , LineEvent , LineListener 
           AudioFormat getFormat()
 如果该行未打开,并且从未打开,则返回默认格式。 默认格式是实现特定的音频格式,或者如果用于检索DataLine的DataLine.Info对象指定了至少一个完全限定的音频格式,则最后一个将被用作默认格式。 用特定音频格式打开行(例如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.