JavaTM 2
Platform
Std. Ed. v1.4.0

javax.sound.sampled
インタフェース Mixer

すべてのスーパーインタフェース:
Line

public interface Mixer
extends Line

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

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

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

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

導入されたバージョン:
1.3

入れ子クラスの概要
static class Mixer.Info
          Mixer.Info クラスは、製品の名前、バージョン、ベンダー、テキスト説明など、オーディオミキサーに関する情報を表します。
 
クラス javax.sound.sampled.Line から継承した入れ子クラス
Line.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)
          指定されたラインに対して同期を解除します。
 
インタフェース javax.sound.sampled.Line から継承したメソッド
addLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListener
 

メソッドの詳細

getMixerInfo

public Mixer.Info getMixerInfo()
製品の名前、バージョン、ベンダーなど、このミキサーに関する情報を取得します。

戻り値:
このミキサーを説明するミキサー情報オブジェクト
関連項目:
Mixer.Info

getSourceLineInfo

public Line.Info[] getSourceLineInfo()
このミキサーがサポートしているソースラインのセットに関する情報を取得します。

戻り値:
このミキサーのソースラインを表す Line.Info オブジェクトの配列。サポートするソースラインがない場合、長さ 0 の配列が返される

getTargetLineInfo

public Line.Info[] getTargetLineInfo()
このミキサーがサポートしているターゲットラインのセットに関する情報を取得します。

戻り値:
このミキサーのターゲットラインを表す Line.Info オブジェクトの配列。サポートするターゲットラインがない場合、長さ 0 の配列が返される

getSourceLineInfo

public Line.Info[] getSourceLineInfo(Line.Info info)
このミキサーがサポートしている特定のタイプのソースラインに関する情報を取得します。

パラメータ:
info - 情報を照会するラインを記述する Line.Info オブジェクト
戻り値:
要求されたタイプに一致するソースラインを記述する Line.Info オブジェクトの配列。一致するソースラインがサポートされていない場合、長さ 0 の配列が返される

getTargetLineInfo

public Line.Info[] getTargetLineInfo(Line.Info info)
このミキサーがサポートしている特定のタイプのターゲットラインに関する情報を取得します。

パラメータ:
info - 情報を照会するラインを記述する Line.Info オブジェクト
戻り値:
要求されたタイプに一致するターゲットラインを記述する Line.Info オブジェクトの配列。一致するターゲットラインがサポートされていない場合、長さ 0 の配列が返される

isLineSupported

public boolean isLineSupported(Line.Info info)
指定された Line.Info オブジェクトに一致するラインをミキサーがサポートしているかどうかを示します。

パラメータ:
info - サポートの有無について照会するラインの記述
戻り値:
一致するラインが少なくとも 1 つサポートされる場合は true、そうでない場合は false

getLine

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

パラメータ:
info - 望ましいラインの記述
例外:
LineUnavailableException - リソースの制約のために、一致するラインを使用できない場合
IllegalArgumentException - 記述に一致するラインをこのミキサーがサポートしていない場合
SecurityException - セキュリティ上の制約のために、一致するラインを使用できない場合

getMaxLines

public int getMaxLines(Line.Info info)
ミキサーで同時に開ける、要求されたタイプのラインの最大数を取得します。要求されたタイプは、提供された Line.Info オブジェクトの記述に一致するラインです。たとえば、情報オブジェクトがスピーカーポートを表し、ミキサーがちょうど 1 つのスピーカーポートをサポートしている場合、このメソッドは 1 を返します。情報オブジェクトがソースデータラインを表し、ミキサーが 32 のソースデータラインの使用を同時にサポートする場合は、戻り値は 32 です。

パラメータ:
info - サポート対象のインスタンスの数を照会するラインを記述する Line.Info
戻り値:
サポート対象の一致するラインの最大数

getSourceLines

public Line[] getSourceLines()
このミキサーに現在開いている全ソースラインのセットを取得します。

戻り値:
このミキサーに現在開いているソースライン。このミキサーに現在開いているソースラインがない場合、長さ 0 の配列が返される
例外:
SecurityException - セキュリティ上の制約のために、一致するラインを使用できない場合

getTargetLines

public Line[] getTargetLines()
このミキサーから現在開いている全ターゲットラインのセットを取得します。

戻り値:
このミキサーから現在開いているターゲットライン。このミキサーから現在開いているターゲットラインがない場合、長さ 0 の配列が返される
例外:
SecurityException - セキュリティ上の制約のために、一致するラインを使用できない場合

synchronize

public void synchronize(Line[] lines,
                        boolean maintainSync)
2 つ以上のラインを同期化します。これらのラインの 1 つに対してオーディオの再生または取得を開始または停止させる後続コマンドは、グループの他のラインにも同じ影響を及ぼし、それらのラインがデータの再生または取得を同時に開始または停止するようにします。

パラメータ:
lines - 同期化されるライン
maintainSync - ラインの操作中の全時点で同期を正確に維持する必要がある (つまり、同期にサンプルレベルの正確さが必要である) 場合は true、あるいは開始および停止の操作中のみ正確な同期が必要である場合は false
例外:
IllegalArgumentException - ラインを同期化できない場合。これはラインのタイプが異なるか、このミキサーが同期をサポートしない異なるフォーマットをラインが持っている場合、あるいは指定された全ラインがこのミキサーに属していない場合に発生する

unsynchronize

public void unsynchronize(Line[] lines)
指定されたラインに対して同期を解除します。配列は、同期がすでに確立されている配列と同一であることが必要です。そうでない場合は、例外がスローされます。ただし、このミキサーに属する、現在同期化されている全ラインが同期を解除された場合は、null が指定されます。

パラメータ:
lines - 同期を解除する同期化ライン、またはこのミキサーの全同期化ラインの場合は null
例外:
IllegalArgumentException - ラインを同期解除できない場合。これは、指定された引数が、同期がすでに確立されているラインのセットに正確に一致しない場合に発生する

isSynchronizationSupported

public boolean isSynchronizationSupported(Line[] lines,
                                          boolean maintainSync)
指定されたラインのセットの同期をこのミキサーがサポートしているかどうかを報告します。

パラメータ:
lines - 同期サポートの有無について照会するラインのセット
maintainSync - ラインの操作中の全時点で同期を正確に維持する必要がある (つまり、同期にサンプルレベルの正確さが必要である) 場合は true、あるいは開始および停止の操作中のみ正確な同期が必要である場合は false
戻り値:
ラインを同期化できる場合は true、そうでない場合は false

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.