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