JavaTM Platform
Standard Ed. 6

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 クラスは、製品の名前、バージョン、ベンダー、テキスト説明など、オーディオミキサーに関する情報を表します。
 
メソッドの概要
 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

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 - 望ましいラインの記述
例外:
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 あるいは開始および停止の操作中のみ正確な同期が必要である場合は false
例外:
IllegalArgumentException - ラインを同期化できない場合。 これはラインのタイプが異なるか、このミキサーが同期をサポートしない異なる フォーマットをラインが持っている場合、あるいは指定された全ラインがこのミキサーに 属していない場合に発生する

unsynchronize

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

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

isSynchronizationSupported

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

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

JavaTM Platform
Standard Ed. 6

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

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。