public interface Line extends AutoCloseable
Line
接口代表一个单声道或多声道音频饲料。线是数字音频“管道”的一个元素,如一个混频器,一个输入或输出端口,或一个数据路径进入或退出一个混频器。
一条线可以控制,如增益、锅、和混响。控制自己的类,扩展基本的
类的实例。的Control
Line
接口提供了获得线的控制两个访问器方法:
返回整个集合,和getControls
返回一个指定类型的控制。getControl
线条在不同的时代存在于不同的时代。当一个行打开时,它为自己保留系统资源,当它关闭时,这些资源将被释放给其他对象或应用程序。的
方法让你发现线路是否打开或关闭。一个开放的行不需要处理数据,但是。这样的处理通常是通过接口方法如isOpen()
和SourceDataLine.write
发起。TargetDataLine.read
当行的状态更改时,您可以注册一个接收通知的对象。对象必须实现
接口,由单一方法LineListener
。该方法将被调用时,一个线打开和关闭(和,如果它是一个update
DataLine
,何时开始和停止)。
可以注册一个对象来听多行。它接收的update
方法的事件将指定线创造的事件,什么样的事件是(OPEN
,CLOSE
,START
,或STOP
),多少样本框线曾在事件发生时的处理。
一定行的操作,如打开和关闭,可以生成安全例外如果调用特权码线的时候是一个共享的音频资源。
LineEvent
Modifier and Type | Interface and Description |
---|---|
static class |
Line.Info
一个
Line.Info 对象包含一行信息。
|
Modifier and Type | Method and Description |
---|---|
void |
addLineListener(LineListener listener)
添加一个侦听器到该行。
|
void |
close()
关闭该行,表明该行使用的任何系统资源都可以被释放。
|
Control |
getControl(Control.Type control)
获得指定类型的控件,如果有任何。
|
Control[] |
getControls()
获取与此行关联的控件集。
|
Line.Info |
getLineInfo()
得到这条线的
Line.Info 对象描述。
|
boolean |
isControlSupported(Control.Type control)
指示该行是否支持指定类型的控件。
|
boolean |
isOpen()
指示该行是否是开放的,这意味着它保留了系统资源,并可操作,虽然它可能不当前正在播放或捕获声音。
|
void |
open()
打开该行,表明它应该获得任何所需的系统资源并成为可操作的。
|
void |
removeLineListener(LineListener listener)
从该行的侦听器列表中移除指定的侦听器。
|
Line.Info getLineInfo()
Line.Info
对象描述。
void open() throws LineUnavailableException
OPEN
事件被派遣到线的听众。
请注意,一些行,一旦关闭,不能重新打开。试图重开这一行总会导致一个LineUnavailableException
。
某些类型的行具有可配置的属性,这可能会影响资源分配。例如,一个DataLine
必须打开一个特定的格式和缓冲区大小。这样的线应该提供一个配置这些属性的机制,如额外的open
方法或方法允许应用程序指定所需的设置。
此方法不需要参数,并打开当前设置的行。对于
和SourceDataLine
对象,这意味着线路开通使用默认设置。一TargetDataLine
,然而,缓冲区的大小是确定时,数据加载。由于这种方法不允许应用程序指定加载任何数据,IllegalArgumentException是抛出。因此,你应该使用一个在Clip
Clip
提供的接口将数据加载到Clip
的open
方法。
对于DataLine
的,如果DataLine.Info
对象用于检索行,指定至少一个完全合格的音频格式,最后一个将被用作默认的格式。
IllegalArgumentException
-如果这种方法被称为一个实例。
LineUnavailableException
-如果线路不因资源限制打开。
SecurityException
-如果线路不能由于安全限制打开。
close()
,
isOpen()
,
LineEvent
,
DataLine
,
Clip.open(AudioFormat, byte[], int, int)
,
Clip.open(AudioInputStream)
void close()
CLOSE
事件被派遣到线的听众。
close
接口
AutoCloseable
SecurityException
-如果线路不能由于安全限制而关闭。
open()
,
isOpen()
,
LineEvent
boolean isOpen()
Control[] getControls()
getControl(javax.sound.sampled.Control.Type)
boolean isControlSupported(Control.Type control)
control
型的控制,支持查询
true
如果至少一个控制指定类型的支持,否则
false
。
Control getControl(Control.Type control)
control
-请求的控制类型
IllegalArgumentException
如果控制指定的类型不支持
getControls()
,
isControlSupported(Control.Type control)
void addLineListener(LineListener listener)
update()
方法称为一个
LineEvent
对象描述的变化。
listener
-添加一个侦听器的对象这一行
removeLineListener(javax.sound.sampled.LineListener)
,
LineListener.update(javax.sound.sampled.LineEvent)
,
LineEvent
void removeLineListener(LineListener listener)
listener
侦听器去除
addLineListener(javax.sound.sampled.LineListener)
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.