-
- All Superinterfaces:
-
AutoCloseable
,Line
public interface Mixer extends Line
混音器是具有一行或多行的音频设备。 它不需要设计用于混合音频信号。 实际混合音频的混音器具有多个输入(源)线和至少一个输出(目标)线。 前者通常是实现SourceDataLine
的类的实例,后者是TargetDataLine
。Port
对象也是源行或目标行。 混音器可以通过将其一些源行作为实现Clip
接口的对象的实例来接受预先记录的,可回放的声音作为输入。通过
Line
接口的扩展方法,Mixer
扩展,混合器可能提供一组对混频器是全局的控制。 例如,混频器可以具有主增益控制。 这些全局控制与属于混合器各个线路的控制不同。一些混音器,特别是具有内部数字混音功能的混音器,可以通过实现
DataLine
接口来提供额外的功能。混音器可以支持其线路的同步。 当同步组中的一行启动或停止时,组中的其他行将自动与显式影响的行同时启动或停止。
- 从以下版本开始:
- 1.3
-
-
Nested Class Summary
Nested Classes Modifier and Type 接口 描述 static class
Mixer.Info
Mixer.Info
类表示有关音频混音器的信息,包括产品的名称,版本和供应商以及文本描述。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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)
释放指定行的同步。-
Methods inherited from interface javax.sound.sampled.Line
addLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListener
-
-
-
-
方法详细信息
-
getMixerInfo
Mixer.Info getMixerInfo()
获取有关此混音器的信息,包括产品的名称,版本,供应商等。- 结果
- 一个描述这个混音器的混音器信息对象
- 另请参见:
-
Mixer.Info
-
getSourceLineInfo
Line.Info[] getSourceLineInfo()
获取有关此混音器支持的源线组的信息。 某些源线可能只有在此混频器打开时才可用。- 结果
-
数组
Line.Info
对象代表此混音器的源线。 如果不支持源行,则返回长度为0的数组。
-
getTargetLineInfo
Line.Info[] getTargetLineInfo()
获取有关此混音器支持的目标行集的信息。 某些目标线可能仅在此混合器打开时可用。- 结果
-
Line.Info
对象,代表此混音器的目标行。 如果没有支持目标行,则返回长度为0的数组。
-
getSourceLineInfo
Line.Info[] getSourceLineInfo(Line.Info info)
获取有关由混音器支持的特定类型的源行的信息。 某些源线可能只有在此混频器打开时才可用。- 参数
-
info
- 一个描述关于哪些信息被查询的行的Line.Info
对象 - 结果
-
描述一个
Line.Info
对象的数组,描述符合所请求类型的源行。 如果不支持匹配的源行,则返回长度为0的数组。
-
getTargetLineInfo
Line.Info[] getTargetLineInfo(Line.Info info)
获取有关混合器支持的特定类型的目标行的信息。 某些目标线可能仅在此混合器打开时可用。- 参数
-
info
- 一个Line.Info
对象,描述哪些信息被查询的行 - 结果
-
描述符合所请求类型的目标行的
Line.Info
对象的数组。 如果不支持匹配的目标行,则返回长度为0的数组。
-
isLineSupported
boolean isLineSupported(Line.Info info)
指示混音器是否支持与指定的Line.Info
对象匹配的行(或行)。 只有当这台混音器打开时,才可以支持某些线路。- 参数
-
info
- 描述查询支持的行 - 结果
-
true
,如果至少一个匹配线被支撑,false
否则
-
getLine
Line getLine(Line.Info info) throws LineUnavailableException
获取可用的行,并与指定的Line.Info
对象中的描述相匹配。如果
DataLine
请求,并info
是实例DataLine.Info
至少指定一个完全合格的音频格式,最后一个将被用作返回的默认格式DataLine
。- 参数
-
info
- 描述所需的行 - 结果
-
一条可供使用的行,并且与指定的
Line.Info
对象中的描述相匹配 - 异常
-
LineUnavailableException
- 如果由于资源限制,匹配行不可用 -
IllegalArgumentException
- 如果此混音器不支持符合说明的任何行 -
SecurityException
- 如果由于安全限制,匹配的行不可用
-
getMaxLines
int getMaxLines(Line.Info info)
获得可以在混音器上同时打开的所请求类型的最大行数。 某些类型的混合器不具有硬限制,并且可能允许打开更多的线。 由于某些行是共享资源,所以如果另一个进程打开了这个混音器的行,混音器可能无法打开最大行数。 请求的类型是与提供的Line.Info
对象中的描述匹配的任何行。 例如,如果信息对象表示扬声器端口,并且混音器仅支持一个扬声器端口,则该方法应返回1.如果信息对象表示源数据线,并且混频器同时支持同时使用32个源数据线,则返回值应为32.如果没有限制,此函数返回AudioSystem.NOT_SPECIFIED
。- 参数
-
info
- 描述支持的实例被查询的行的Line.Info
- 结果
-
支持的匹配行的最大数量,或
AudioSystem.NOT_SPECIFIED
-
getSourceLines
Line[] getSourceLines()
获取当前打开这个混音器的所有源线的集合。- 结果
- 源线当前打开到混音器。 如果此混音器当前未打开任何源线,则返回长度为0的数组。
- 异常
-
SecurityException
- 如果匹配的行由于安全限制而不可用
-
getTargetLines
Line[] getTargetLines()
获取当前从此混音器打开的所有目标线的集合。- 结果
- 目标线当前从混音器打开。 如果此混音器当前没有打开目标行,则返回长度为0的数组。
- 异常
-
SecurityException
- 如果由于安全限制,匹配的行不可用
-
synchronize
void synchronize(Line[] lines, boolean maintainSync)
同步两条或更多条线。 对于这些行之一启动或停止音频播放或捕获的任何后续命令将对组中的其他线路施加相同的效果,以便它们同时启动或停止播放或捕获数据。- 参数
-
lines
- 应该同步的行 -
maintainSync
-true
如果必须在线路运行期间的任何时候都必须精确地维护同步(即,同步必须是采样准确的),或者如果仅在启动和停止操作期间需要精确同步,则false
- 异常
-
IllegalArgumentException
- 如果行不能同步。 如果线路不同类型或具有不同格式的混频器不支持同步,或者指定的所有线路不属于此混频器,则可能会发生这种情况。
-
unsynchronize
void unsynchronize(Line[] lines)
释放指定行的同步。 阵列必须与已经建立同步的阵列相同; 否则可能会抛出异常。 但是,可以指定null
,在这种情况下,属于此混音器的所有当前同步的行都将不同步。- 参数
-
lines
- 应同步发布的同步线路,或所有此混频器同步线路的null
- 异常
-
IllegalArgumentException
- 如果行不能不同步。 如果指定的参数与已经建立同步的一组行不完全匹配,则可能会发生这种情况。
-
isSynchronizationSupported
boolean isSynchronizationSupported(Line[] lines, boolean maintainSync)
报告此混音器是否支持同步指定的一组行。- 参数
-
lines
- 查询同步支持的一组行 -
maintainSync
-true
如果必须在线路运行期间的任何时候都必须精确地保持同步(即,同步必须是采样精度的),或者如果仅在启动和停止操作期间需要精确同步,则false
- 结果
-
true
如果行可以同步,否则为false
-
-