public interface DataLine extends Line
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()
ラインを停止します。
|
addLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListenervoid drain()
drain() を呼び出すと、ラインが実行されてデータキューが空になるまでこのメソッドはブロックされます。drain() を 1 つのスレッドで呼び出し、別のスレッドでデータキューの格納を継続すると、操作は完了しません。このメソッドはデータラインが閉じると常に戻ります。flush()void flush()
void start()
START イベントが生成されます。stop()、isRunning()、LineEventvoid stop()
flush メソッドを呼び出して、保持されているデータを破棄できます。オーディオの取り込みまたは再生を停止すると、STOP イベントが生成されます。boolean isRunning()
false です。開かれたラインは、start メソッドの呼び出しに応じて最初のデータが提示されると実行が開始され、stop メソッドの呼び出しに応じて、あるいは再生が完了して、提示されなくなるまで継続して実行されます。boolean isActive()
START イベントをそのリスナーに送信します。同様に、アクティブなラインがアクティブでなくなると、ラインは STOP イベントを送信します。true、そうでない場合は falseLine.isOpen()、Line.addLineListener(javax.sound.sampled.LineListener)、Line.removeLineListener(javax.sound.sampled.LineListener)、LineEvent、LineListenerAudioFormat getFormat()
現在開いておらず、これまでも開いたことがないラインは、デフォルトの形式を返します。デフォルトの形式は、実装固有のオーディオ形式になります。または、DataLine.Info オブジェクト (この DataLine の取得に使用) が 1 つ以上の完全指定オーディオ形式を指定する場合、最後のものがデフォルトの形式になります。特定のオーディオ形式 (SourceDataLine.open(AudioFormat) など) でラインを開くと、デフォルトの形式はオーバーライドされます。
AudioFormatint getBufferSize()
int available()
使用される単位はバイトですが、オーディオデータのサンプルフレームの整数値に常に一致します。
アプリケーションでは、available() から返されたバイト数までの読み込みまたは書き込み操作はブロックされません。ただし、そのバイト数より多くのデータの読み込みまたは書き込み操作を実行するとブロックされるかどうかは確実ではありません。
int getFramePosition()
getLongFramePosition を使用することをお勧めします。getLongFramePosition()long getLongFramePosition()
long getMicrosecondPosition()
float getLevel()
AudioSystem.NOT_SPECIFIED バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.