モジュール java.desktop
パッケージ javax.sound.sampled

インタフェースMixer

  • すべてのスーパー・インタフェース:
    AutoCloseable, Line

    public interface Mixer
    extends Line
    ミキサーは1つ以上のラインを持つオーディオ装置です。 必ずしもオーディオ信号をミキシングするよう設計されている必要はありません。 実際にオーディオをミキシングするミキサーには、複数の入力(ソース)ラインおよび少なくとも1つの出力(ターゲット)ラインがあります。 前者は、多くの場合、SourceDataLineを実装するクラスのインスタンスであり、後者はTargetDataLineです。 Portオブジェクトもまた、ソース・ラインまたはターゲット・ラインのどちらかです。 ソース・ラインのいくつかをClipインスタンスを実装するオブジェクトのインスタンスにすることによって、ミキサーは事前に録音されたループするサウンドを入力として受け入れることができます。

    Mixerが継承するLineインタフェースのメソッドを通じて、ミキサーはそのミキサー全体に影響するようなコントロールのセットを提供できます。 たとえば、ミキサーはマスター・ゲイン・コントロールを持つことができます。 これらのグローバルなコントロールは、ミキサーの個々のラインに属するコントロールとは異なっています。

    ミキサーの中で、特に内部デジタル・ミキシング機能を持つものは、DataLineインタフェースを実装することによって機能を追加することができます。

    ミキサーはラインの同期をサポートできます。 同期化されたグループの1つのラインが開始または停止すると、グループのほかのラインは、開始または停止を明示されたラインとともに、自動的に同時に開始または停止します。

    導入されたバージョン:
    1.3
    • ネストされたクラスのサマリー

      ネストされたクラス 
      修飾子と型 インタフェース 説明
      static class  Mixer.Info
      Mixer.Infoクラスは、製品の名前、バージョン、ベンダー、テキスト説明など、オーディオ・ミキサーに関する情報を表します。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド 
      修飾子と型 メソッド 説明
      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)
      2つ以上のラインを同期化します。
      void unsynchronize​(Line[] lines)
      指定されたラインに対して同期を解除します。
    • メソッドの詳細

      • 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 - サポートの有無について照会するラインの記述
        戻り値:
        一致するラインが少なくとも1つサポートされる場合はtrue、そうでない場合はfalse
      • getLine

        Line getLine​(Line.Info info)
              throws LineUnavailableException
        使用可能で、かつ指定されたLine.Infoオブジェクトの記述に一致するラインを取得します。

        DataLineが要求され、かつinfoDataLine.Infoのインスタンスであって、1つ以上の完全指定のオーディオ形式を指定する場合、最後のものが返されるDataLineのデフォルトの形式になります。

        パラメータ:
        info - 目的のラインの記述
        戻り値:
        使用可能で、かつ指定されたLine.Infoオブジェクトの記述に一致するライン
        例外:
        LineUnavailableException - リソースの制約のために、一致するラインを使用できない場合
        IllegalArgumentException - 記述に一致するラインをこのミキサーがサポートしていない場合
        SecurityException - セキュリティ上の制約のために、一致するラインを使用できない場合
      • getMaxLines

        int getMaxLines​(Line.Info info)
        ミキサー上で同時に開くことができる要求されたタイプのラインの最大数の近似値を取得します。

        一部のミキサーにはハード・バウンドがなく、複数のラインを開くことができます。 いくつかのラインは共有リソースなので、別のプロセスがこのミキサーのラインを開いている場合、ミキサーで開くことができるライン数は最大ライン数より少なくなります。

        要求されたタイプとは、提供されたLine.Infoオブジェクトの記述に一致するラインです。 たとえば、情報オブジェクトがスピーカ・ポートを表し、ミキサーがちょうど1つのスピーカ・ポートをサポートしている場合、このメソッドは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)
        2つ以上のラインを同期化します。 これらのラインの1つに対してオーディオの再生または取込みを開始または停止させる後続コマンドは、グループのほかのラインにも同じ影響を及ぼし、それらのラインがデータの再生または取込みを同時に開始または停止するようにします。
        パラメータ:
        lines - 同期化されるライン
        maintainSync - trueラインの動作中に常に同期を正確に(すなわち、同期はサンプル精度でなければならない)維持する必要がある場合はtrue、開始および停止操作中にのみ正確な同期が必要な場合はfalse
        例外:
        IllegalArgumentException - ラインを同期化できない場合。 これはラインのタイプが異なるか、このミキサーが同期をサポートしない異なるフォーマットをラインが持っている場合、あるいは指定された全ラインがこのミキサーに属していない場合に発生する。
      • unsynchronize

        void unsynchronize​(Line[] lines)
        指定されたラインに対して同期を解除します。 配列は、同期がすでに確立されている配列と同一であることが必要です。そうでない場合は、例外がスローされます。 ただし、nullを指定することもできます。この場合は、このミキサーに属する現在同期化されているすべてのラインが同期解除されます。
        パラメータ:
        lines - 同期を解除する同期化ライン、またはこのミキサーの全同期化ラインの場合はnull
        例外:
        IllegalArgumentException - ラインを同期解除できない場合。 これは、指定された引数が、同期がすでに確立されているラインのセットに正確に一致しない場合に発生する。
      • isSynchronizationSupported

        boolean isSynchronizationSupported​(Line[] lines,
                                           boolean maintainSync)
        指定されたラインのセットの同期をこのミキサーがサポートしているかどうかを報告します。
        パラメータ:
        lines - 同期サポートの有無について照会するラインのセット
        maintainSync - trueラインの動作中に常に同期を正確に(すなわち、同期はサンプル精度でなければならない)維持する必要がある場合はtrue、開始および停止操作中にのみ正確な同期が必要な場合はfalse
        戻り値:
        ラインを同期化できる場合はtrue、そうでない場合はfalse