-
- All Superinterfaces:
-
AutoCloseable
,Line
public interface Mixer extends Line
混音器是具有一条或多条线的音频设备。 它不需要设计用于混合音频信号。 实际混合音频的混音器具有多个输入(源)线和至少一个输出(目标)线。 前者通常是实现SourceDataLine
的类的实例,后者是TargetDataLine
。Port
对象也可以是源行或目标行。 混音器可以接受预先录制的可循环声音作为输入,方法是将其某些源行作为实现Clip
接口的对象的实例。通过
Mixer
扩展的Line
接口的方法,混频器可以提供一组对混频器而言是全局的控制。 例如,混频器可以具有主增益控制。 这些全局控件不同于属于每个调音台各个控制线的控件。某些混频器,尤其是具有内部数字混音功能的混频器,可通过实现
DataLine
接口提供额外功能。混频器可以支持其线路的同步。 当启动或停止同步组中的一行时,组中的其他行将自动与明确受影响的行一起启动或停止。
- 从以下版本开始:
- 1.3
-
-
嵌套类汇总
嵌套类 变量和类型 接口 描述 static class
Mixer.Info
Mixer.Info
类表示有关音频混音器的信息,包括产品的名称,版本和供应商,以及文本说明。
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 Line
getLine(Line.Info info)
获得可供使用且与指定的Line.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)
释放指定行的同步。-
声明方法的接口 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
对象中的描述匹配的Line.Info
。如果
DataLine
请求,并info
是实例DataLine.Info
至少指定一个完全合格的音频格式,最后一个将被用作返回的默认格式DataLine
。- 参数
-
info
- 描述了所需的行 - 结果
-
一行可供使用且与指定的
Line.Info
对象中的描述匹配的Line.Info
- 异常
-
LineUnavailableException
- 如果由于资源限制,匹配的行不可用 -
IllegalArgumentException
- 如果此混音器不支持与描述匹配的任何行 -
SecurityException
- 如果由于安全限制,匹配的行不可用
-
getMaxLines
int getMaxLines(Line.Info info)
获得可在混音器上同时打开的请求类型的近似最大行数。某些类型的混合器没有硬边界,可能允许打开更多线条。 由于某些行是共享资源,如果另一个进程打开了该混音器的行,则混音器可能无法打开最大行数。
请求的类型是与提供的
Line.Info
对象中的描述匹配的任何行。 例如,如果info对象表示扬声器端口,并且混音器仅支持一个扬声器端口,则此方法应返回1.如果info对象表示源数据线,并且混音器支持同时使用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
-
-