Module  java.desktop
软件包  javax.sound.sampled

Interface Mixer

  • All Superinterfaces:
    AutoCloseableLine


    public interface Mixer
    extends Line
    混音器是具有一行或多行的音频设备。 它不需要设计用于混合音频信号。 实际混合音频的混音器具有多个输入(源)线和至少一个输出(目标)线。 前者通常是实现SourceDataLine的类的实例,后者是TargetDataLine Port对象也是源行或目标行。 混音器可以通过将其一些源行作为实现Clip接口的对象的实例来接受预先记录的,可回放的声音作为输入。

    通过Line接口的扩展方法, Mixer扩展,混合器可能提供一组对混频器是全局的控制。 例如,混频器可以具有主增益控制。 这些全局控制与属于混合器各个线路的控制不同。

    一些混音器,特别是具有内部数字混音功能的混音器,可以通过实现DataLine接口来提供额外的功能。

    混音器可以支持其线路的同步。 当同步组中的一行启动或停止时,组中的其他行将自动与显式影响的行同时启动或停止。

    从以下版本开始:
    1.3
    • 方法详细信息

      • 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