|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
DataLine
は、メディア関連の機能をそのスーパーインタフェース、
に追加します。この機能には、ラインを介して渡されるオーディオデータを開始、停止、排出、およびフラッシュする移送制御メソッドが含まれます。データラインは現在の位置、ボリューム、メディアのオーディオ形式についてもレポートできます。データラインは、アプリケーションプログラムでデータの書き込みを可能にするサブインタフェース、Line
または SourceDataLine
によって、オーディオの出力用に使用されます。同様に、オーディオ入力は、データの読み込みを可能にするサブインタフェース、Clip
で処理されます。
TargetDataLine
データラインには、受信または送信オーディオデータをキューに入れる内部バッファがあります。通常キューに入れられたデータはすべて処理されるため、
メソッドは内部バッファが空になるまでブロックされます。drain()
メソッドは、内部バッファからキューに入れられた使用可能なデータをすべて破棄します。
flush()
データラインは、データのアクティブな表示や取り込みが開始または停止されると常に、
および START
イベントを生成します。これらのイベントは、特定の要求に応答して、または直接変更された状態が少ない場合に生成されます。たとえば、STOP
がアクティブでないデータラインに呼び出され、データの取り込みまたは再生が可能な場合は、実際にデータの再生や取り込みを開始すると、start()
START
イベントがただちに生成されます。あるいは、アクティブなデータラインに対するデータのフローを収縮した結果、データの表示にギャップが生じると、STOP
イベントが生成されます。
ミキサーは、複数のデータラインの同期制御をサポートする場合がよくあります。同期化は、ミキサーインタフェースの
メソッドを介して確立できます。詳細は、synchronize
インタフェースの説明を参照してください。
Mixer
LineEvent
入れ子クラスの概要 | |
static class |
DataLine.Info
スーパークラスから継承されたクラス情報以外に、 DataLine.Info はデータラインに固有の追加情報を提供します。 |
クラス javax.sound.sampled.Line から継承した入れ子クラス |
|
メソッドの概要 | |
int |
available()
アプリケーションがデータラインの内部バッファ内で現在処理できるデータのバイト数を取得します。 |
void |
drain()
データの入出力をデータラインの内部バッファが空になるまで継続して、そのラインからキューに入っているデータを排出します。 |
void |
flush()
ラインからキューに入っているデータをフラッシュします。 |
int |
getBufferSize()
データラインの内部バッファ内に収まるデータの最大バイト数を取得します。 |
AudioFormat |
getFormat()
データラインのオーディオデータの現在の形式 (エンコーディング、サンプルレート、チャネル数など) を取得します。 |
int |
getFramePosition()
オーディオデータの現在の位置をサンプルフレーム数で取得します。 |
float |
getLevel()
ラインの現在のボリュームレベルを取得します。 |
long |
getMicrosecondPosition()
オーディオデータ内の現在の位置をマイクロ秒単位で取得します。 |
boolean |
isActive()
ラインがアクティブな入出力 (再生や取り込みなど) を実行しているかどうかを示します。 |
boolean |
isRunning()
ラインが実行中かどうかを示します。 |
void |
start()
ラインでのデータ入出力を可能にします。 |
void |
stop()
ラインを停止します。 |
インタフェース javax.sound.sampled.Line から継承したメソッド |
addLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListener |
メソッドの詳細 |
public void drain()
drain()
を呼び出すと、ラインが実行されてデータキューが空になるまでこのメソッドはブロックされます。drain()
を 1 つのスレッドで呼び出し、別のスレッドでデータキューの格納を継続すると、操作は完了しません。このメソッドはデータラインが閉じると常に返されます。
flush()
public void flush()
stop()
,
drain()
public void start()
START
イベントが生成されます。
stop()
,
isRunning()
,
LineEvent
public void stop()
flush
メソッドを呼び出して保持されているデータを破棄できます。オーディオ取り込みまたは再生を停止すると、STOP
イベントが生成されます。
start()
,
isRunning()
,
flush()
,
LineEvent
public boolean isRunning()
false
です。開かれたラインは、start
メソッドの呼び出しに応じて最初のデータが提示されると実行が開始され、stop
メソッドの呼び出しに応じて、あるいは再生が完了して、表示されなくなるまで継続して実行されます。
true
、そうでない場合は false
start()
,
stop()
public boolean isActive()
START
イベントをそのリスナーに送信します。同様に、アクティブなラインがアクティブでなくなると、ラインは STOP
イベントを送信します。
true
、そうでない場合は false
Line.isOpen()
,
Line.addLineListener(javax.sound.sampled.LineListener)
,
Line.removeLineListener(javax.sound.sampled.LineListener)
,
LineEvent
,
LineListener
public AudioFormat getFormat()
AudioFormat
public int getBufferSize()
public int available()
使用される単位はバイトですが、単位はオーディオデータのサンプルフレームの積分数に常に一致します。
アプリケーションでは、available()
から返されたバイト数までの読み込みまたは書き込み操作はブロックされません。ただし、そのバイト数より多くのデータの読み込みまたは書き込み操作を実行するとブロックされるかどうか確実ではありません。
public int getFramePosition()
public long getMicrosecondPosition()
public float getLevel()
AudioSystem.NOT_SPECIFIED
|
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.