模块  java.desktop
软件包  javax.sound.sampled

Interface Mixer

  • All Superinterfaces:
    AutoCloseableLine

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

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

    某些混频器,尤其是具有内部数字混音功能的混频器,可通过实现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对象中的描述匹配的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