|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
ターゲットデータラインは、オーディオデータをそこから読み込めるタイプの
です。もっとも一般的な例は、データをオーディオ取得デバイスから取得するデータラインです。デバイスはターゲットデータラインに書き込むミキサーとして実装されます。
DataLine
このインタフェースの命名規則は、ラインとミキサーの関係を反映しています。アプリケーションから見ると、ターゲットデータラインはオーディオデータのソースの役割をします。
ターゲットデータラインは、Mixer
の
メソッドと getLine
オブジェクトを呼び出して、ミキサーから取得できます。
DataLine.Info
TargetDataLine
インタフェースは、ターゲットデータラインのバッファから取得したデータを読み込むメソッドを提供します。オーディオを録音するアプリケーションは、バッファがオーバーフローする前に、ターゲットデータラインからデータを素早く読み込みます。オーバーフローすると、取得したデータに不連続部が生じて、クリック音が聞こえることがあります。アプリケーションは、DataLine
インタフェースで定義された
メソッドを使用して、データラインのバッファで現在キューに入っているデータの量を判別することができます。バッファがオーバーフローを起こした場合、キューに入っているもっとも古いデータが破棄され、新しいデータに置き換えられます。
available
Mixer
,
DataLine
,
SourceDataLine
入れ子クラスの概要 |
クラス javax.sound.sampled.DataLine から継承した入れ子クラス |
DataLine.Info |
クラス javax.sound.sampled.Line から継承した入れ子クラス |
Line.Info |
メソッドの概要 | |
void |
open(AudioFormat format)
指定されたフォーマットでラインを開き、ラインが必要なシステムリソースを獲得して操作可能になるようにします。 |
void |
open(AudioFormat format,
int bufferSize)
指定されたフォーマットと指定されたバッファサイズでラインを開き、ラインが必要なシステムリソースを獲得して操作可能になるようにします。 |
int |
read(byte[] b,
int off,
int len)
データラインの入力バッファからオーディオデータを読み込みます。 |
インタフェース javax.sound.sampled.DataLine から継承したメソッド |
available, drain, flush, getBufferSize, getFormat, getFramePosition, getLevel, getMicrosecondPosition, isActive, isRunning, start, stop |
インタフェース javax.sound.sampled.Line から継承したメソッド |
addLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListener |
メソッドの詳細 |
public void open(AudioFormat format, int bufferSize) throws LineUnavailableException
バッファサイズはバイトで指定されますが、サンプルフレームの積分数を表示する必要があります。この条件に適合しないバッファサイズでこのメソッドを呼び出すと、IllegalArgumentException が表示されることがあります。開いたラインの実際のバッファサイズは、指定されたバッファサイズとは異なることがあります。実際に設定された値は、後続の呼び出し
によって照会できます。
DataLine.getBufferSize()
この操作が完了すると、ラインは開くものとしてマークされ、
イベントがラインのリスナーにディスパッチされます。
OPEN
すでに開いているラインでこのメソッドを呼び出すのは不適切であり、IllegalStateException
が表示されることがあります。
ラインによっては、一度閉じると再度開けない場合があります。こうしたラインを再度開こうとすると、常に LineUnavailableException
が表示されます。
format
- 望ましいオーディオ形式bufferSize
- 望ましいバッファサイズ、バイト単位
LineUnavailableException
- リソースの制約のためにラインを開けない場合
IllegalArgumentException
- バッファサイズがサンプルフレームの積分数を表示しない場合
IllegalStateException
- ラインがすでに開いている場合
SecurityException
- セキュリティ上の制約のためにラインを開けない場合open(AudioFormat)
,
Line.open()
,
Line.close()
,
Line.isOpen()
,
LineEvent
public void open(AudioFormat format) throws LineUnavailableException
実装側がバッファサイズを選択します。バッファサイズはバイトで決定されますが、サンプルフレームの積分数を含んでいます。システムが選択したバッファサイズは、後続の
を呼び出して照会できます。
DataLine.getBufferSize()
この操作が完了すると、ラインは開くものとしてマークされ、
イベントがラインのリスナーにディスパッチされます。
OPEN
すでに開いているラインでこのメソッドを呼び出すのは不適切であり、IllegalStateException
が表示されることがあります。
ラインによっては、一度閉じると再度開けない場合があります。こうしたラインを再度開こうとすると、常に LineUnavailableException
が表示されます。
format
- 望ましいオーディオ形式
LineUnavailableException
- リソースの制約のためにラインを開けない場合
IllegalStateException
- ラインがすでに開いている場合
SecurityException
- セキュリティ上の制約のためにラインを開けない場合open(AudioFormat, int)
,
Line.open()
,
Line.close()
,
Line.isOpen()
,
LineEvent
public int read(byte[] b, int off, int len)
ブロックせずに読み込めるバイト数は、DataLine
インタフェースの
メソッドを使って確認できます。このバイト数はブロックせずに確実に読み込めますが、追加データを読み込もうとするとブロックされるかどうかは確実ではありません。
available
読み込まれるバイト数は、次のような完全なサンプルフレーム数を表す必要があります。
[読み込まれるバイト数] % [フレームサイズのバイト数] == 0
b
- このメソッドが返すときの、要求された入力データを含むバイト配列off
- 配列の先頭からの座標、バイト単位len
- 読み込み要求されたバイト数
IllegalArgumentException
- 要求されたバイト数が完全なサンプルフレーム数に相当しない場合SourceDataLine.write(byte[], int, int)
,
DataLine.available()
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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.