public interface Mixer extends Line
SourceDataLine
的类的SourceDataLine
,后者是TargetDataLine
。
Port
对象也是源行或目标行。
混合器可以接受预先记录的,声音加入影片箱作为输入,通过具有一些它的源极线的是实现该对象的实例Clip
接口。
通过Line
接口的方法, Mixer
扩展,混频器可能提供一组对混频器是全局的控制。 例如,混频器可以具有主增益控制。 这些全局控制与属于混合器各个线路的控制不同。
一些混合器,特别是那些具有内部数字的混合能力,可以通过实现提供附加功能DataLine
接口。
混音器可以支持其线路的同步。 当同步组中的一行启动或停止时,组中的其他行将自动与显式影响的行同时启动或停止。
Modifier and Type | Interface and Description |
---|---|
static class |
Mixer.Info
Mixer.Info 类代表有关音频混音器的信息,包括产品的名称,版本和供应商,以及文本描述。
|
Modifier and Type | Method and Description |
---|---|
Line |
getLine(Line.Info info)
获取可用的行,并与指定的
Line.Info 对象中的描述相匹配。
|
int |
getMaxLines(Line.Info info)
获得可以在混音器上同时打开的所请求类型的最大行数。
|
Mixer.Info |
getMixerInfo()
获取有关此混音器的信息,包括产品的名称,版本,供应商等。
|
Line.Info[] |
getSourceLineInfo()
获取有关此混音器支持的源线组的信息。
|
Line.Info[] |
getSourceLineInfo(Line.Info info)
获取有关由混音器支持的特定类型的源行的信息。
|
Line[] |
getSourceLines()
获取当前打开这个混音器的所有源线的集合。
|
Line.Info[] |
getTargetLineInfo()
获取有关此混音器支持的目标行集的信息。
|
Line.Info[] |
getTargetLineInfo(Line.Info info)
获取有关混合器支持的特定类型的目标行的信息。
|
Line[] |
getTargetLines()
获取当前从此混音器打开的所有目标线的集合。
|
boolean |
isLineSupported(Line.Info info)
指示混音器是否支持与指定的
Line.Info 对象匹配的行(或行)。
|
boolean |
isSynchronizationSupported(Line[] lines, boolean maintainSync)
报告此混音器是否支持同步指定的一组行。
|
void |
synchronize(Line[] lines, boolean maintainSync)
同步两条或更多条线。
|
void |
unsynchronize(Line[] lines)
释放指定行的同步。
|
addLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListener
Mixer.Info getMixerInfo()
Mixer.Info
Line.Info[] getSourceLineInfo()
Line.Info
数组, Line.Info
此混音器的源行。
如果不支持源行,则返回长度为0的数组。
Line.Info[] getTargetLineInfo()
Line.Info
对象的数组。
如果没有支持目标行,则返回长度为0的数组。
Line.Info[] getSourceLineInfo(Line.Info info)
info
- 一个
Line.Info
对象,描述哪些信息被查询的行
Line.Info
对象数组。
如果不支持匹配的源行,则返回长度为0的数组。
Line.Info[] getTargetLineInfo(Line.Info info)
info
- 一个
Line.Info
关于哪些信息被查询的行的
Line.Info
对象
Line.Info
对象数组。
如果不支持匹配的目标行,则返回长度为0的数组。
boolean isLineSupported(Line.Info info)
Line.Info
对象匹配的行(或行)。
只有当这台混音器打开时,才可以支持某些线路。
info
- 描述查询支持的行
true
如果支持至少一个匹配行,
false
false
Line getLine(Line.Info info) throws LineUnavailableException
Line.Info
对象中的描述相匹配。
如果DataLine
DataLine,并且info
是指定至少一个完全限定音频格式的DataLine.Info
的实例,则最后一个将被用作返回的DataLine
的默认格式。
info
- 描述所需的行
Line.Info
对象中的描述
Line.Info
LineUnavailableException
- 如果由于资源限制,匹配的行不可用
IllegalArgumentException
- 如果此混音器不支持符合说明的任何行
SecurityException
- 如果由于安全限制,匹配的行不可用
int getMaxLines(Line.Info info)
Line.Info
对象中的描述匹配的任何行。
例如,如果信息对象表示扬声器端口,并且混音器只支持一个扬声器端口,则此方法应返回1.如果信息对象表示源数据线,并且混音器同时支持同时使用32个源数据线,则返回值应为32.如果没有限制,此函数返回AudioSystem.NOT_SPECIFIED
。
info
- 一个
Line.Info
,描述了查询支持的实例数量的行
AudioSystem.NOT_SPECIFIED
Line[] getSourceLines()
SecurityException
- 如果由于安全限制,匹配的行不可用
Line[] getTargetLines()
SecurityException
- 如果由于安全限制,匹配的行不可用
void synchronize(Line[] lines, boolean maintainSync)
lines
- 应该同步的行
maintainSync
-
true
如果必须在线路运行期间的任何时候都必须精确地维护同步(即,同步必须是采样准确的),否则
false
如果仅在启动和停止操作期间需要精确同步
IllegalArgumentException
- 如果行不能同步。
如果线路不同类型或具有不同格式的混频器不支持同步,或者指定的所有线路不属于此混频器,则可能会发生这种情况。
void unsynchronize(Line[] lines)
null
可以指定,在这种情况下,属于该混频器的所有当前同步线是不同步的。
lines
-为其同步应当被释放的同步线,或
null
所有此混频器的同步线
IllegalArgumentException
- 如果行不能不同步。
如果指定的参数与已经建立同步的一组行不完全匹配,则可能会发生这种情况。
boolean isSynchronizationSupported(Line[] lines, boolean maintainSync)
lines
- 查询同步支持的一组行
maintainSync
-
true
如果必须在线路运行期间的任何时候都必须精确地保持同步(即,同步必须是采样准确的),否则
false
如果仅在启动和停止操作期间需要精确同步
true
如果行可以同步,
false
false