模块 java.desktop

接口 Mixer

所有父级接口:
AutoCloseable , Line

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

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

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

混音器可以支持其线路的同步。当同步组中的一条线路启动或停止时,该组中的其他线路将与明确受影响的线路同时自动启动或停止。

自从:
1.3
  • 方法详情

    • getMixerInfo

      Mixer.Info  getMixerInfo()
      获取关于此混音器的信息,包括产品的名称、版本、供应商等。
      返回:
      描述此混音器的混音器信息对象
      参见:
    • 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,并且 infoDataLine.Info 的实例,指定至少一种完全合格的音频格式,最后一个将用作返回的 DataLine 的默认格式。

      参数:
      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 否则