- すべてのスーパー・インタフェース:
AutoCloseable
- 既知のすべてのサブインタフェース:
Clip
,DataLine
,Mixer
,Port
,SourceDataLine
,TargetDataLine
public interface Line extends AutoCloseable
Line
インタフェースは、モノラル・チャネルまたは多重チャネルのオーディオ・フィードを表します。 ラインは、ミキサー、入出力ポート、ミキサーへのデータ入出力パスなどの、デジタル・オーディオ「パイプライン」の1要素です。
ラインにはゲイン、パン、リバーブなどのコントロールがあります。 コントロール自体は、基本のControl
クラスを拡張するクラスのインスタンスです。 Line
インタフェースには、ラインのコントロールを取得するためのアクセス用メソッドが2つ用意されています。getControls
はセット全体を返し、getControl
は指定されたタイプの単一のコントロールを返します。
ラインは時間によってさまざまな状態で存在します。 ラインが開くと、ライン自体のためにシステム・リソースが確保され、ラインが閉じると、これらのリソースはほかのオブジェクトまたはアプリケーションのために解放されます。 isOpen()
メソッドを使用すると、行が開いているか閉じているかを調べることができます。 ただしラインが開いていても、データを処理しているとは限りません。 このような処理は、通常、SourceDataLine.write
やTargetDataLine.read
などのサブ・インタフェース・メソッドによって開始されます。
オブジェクトを登録して、ラインの状態が変化するたびに通知を受け取ることができます。 オブジェクトは、LineListener
インタフェースを実装する必要があります。LineListener
インタフェースは、単一のメソッドupdate
で構成されています。 このメソッドは、(DataLine
であれば、起動し停止)を開いたり閉じたりするときに呼び出されます。
オブジェクトを登録して複数のラインを監視することができます。 オブジェクトがupdate
メソッドで受信するイベントは、どのラインがイベントを作成したのか、それはどのタイプのイベントか(OPEN
、CLOSE
、START
、またはSTOP
)、およびイベント発生時ラインがどれだけのサンプル・フレームを処理し終わっているかを指定します。
開閉などの一定のライン操作は、ラインが共有オーディオ・リソースであるときに特権を持たないコードによって呼び出された場合、セキュリティ例外を生成することがあります。
- 導入されたバージョン:
- 1.3
- 関連項目:
LineEvent
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 インタフェース 説明 static class
Line.Info
Line.Info
オブジェクトは、ラインに関する情報を含んでいます。 -
メソッドのサマリー
修飾子と型 メソッド 説明 void
addLineListener(LineListener listener)
リスナーをこのラインに追加します。void
close()
ラインを閉じ、ラインで使用していたシステム・リソースを解放できることを示します。Control
getControl(Control.Type control)
指定されたタイプのコントロールがある場合、そのコントロールを取得します。Control[]
getControls()
このラインに関連付けられたコントロールのセットを取得します。Line.Info
getLineInfo()
このラインを説明するLine.Info
オブジェクトを取得します。boolean
isControlSupported(Control.Type control)
指定されたタイプのコントロールをラインがサポートしているかどうかを示します。boolean
isOpen()
ラインが開いているかどうか、つまり現在はサウンドを再生または収集していなくてもシステム・リソースを確保し操作可能であるかどうかを示します。void
open()
ラインを開き、必要なシステム・リソースを獲得して操作可能になっていることを示します。void
removeLineListener(LineListener listener)
このラインのリスナーのリストから、指定されたリスナーを削除します。
-
メソッドの詳細
-
getLineInfo
Line.Info getLineInfo()このラインを説明するLine.Info
オブジェクトを取得します。- 戻り値:
- ラインの説明
-
open
void open() throws LineUnavailableExceptionラインを開き、必要なシステム・リソースを獲得して操作可能になっていることを示します。 この操作が完了すると、ラインは開いている状態としてマークされ、OPEN
イベントがラインのリスナーにディスパッチされます。ラインによっては、一度閉じると再度開くことができない場合があります。 こうしたラインを再度開こうとすると、常に
LineUnavailableException
が表示されます。ラインの種類によっては、リソースの割当てに影響を与える設定可能なプロパティを持っているものもあります。 たとえば、
DataLine
は特定のフォーマットおよびバッファ・サイズで開く必要があります。 こうしたラインは、open
メソッドや、目的の設定をアプリケーションで指定できるメソッドを追加するなどして、これらのプロパティを構成するメカニズムを提供します。このメソッドは引数をとらず、現在の設定でラインを開きます。
SourceDataLine
オブジェクトとTargetDataLine
オブジェクトの場合、これは行がデフォルト設定で開かれていることを意味します。 しかしClip
の場合、バッファ・サイズはデータのロード時に決定されます。 このメソッドは、アプリケーションがロードするデータを指定することを許可しないため、IllegalArgumentException
がスローされます。 したがって、この代わりに、Clip
インタフェースに備わっているopen
メソッドの1つを使用して、データをClip
にロードするようにしてください。DataLine
では、ラインの取得に使用されたDataLine.Info
オブジェクトが、1つ以上の完全指定オーディオ形式を指定する場合、最後の形式がデフォルトになります。- 例外:
IllegalArgumentException
- このメソッドがClipインスタンスに対して呼び出された場合LineUnavailableException
- リソースの制約のためにラインを開けない場合SecurityException
- セキュリティの制約のためにラインを開けない場合- 関連項目:
close()
、isOpen()
、LineEvent
、DataLine
、Clip.open(AudioFormat, byte[], int, int)
、Clip.open(AudioInputStream)
-
close
void close()ラインを閉じ、ラインで使用していたシステム・リソースを解放できることを示します。 この操作が完了すると、ラインは閉じられている状態としてマークされ、CLOSE
イベントがラインのリスナーにディスパッチされます。- 定義:
close
、インタフェース:AutoCloseable
- 例外:
SecurityException
- セキュリティの制約のためにラインを閉じることができない場合- 関連項目:
open()
、isOpen()
、LineEvent
-
isOpen
boolean isOpen()ラインが開いているかどうか、つまり現在はサウンドを再生または収集していなくてもシステム・リソースを確保し操作可能であるかどうかを示します。 -
getControls
Control[] getControls()このラインに関連付けられたコントロールのセットを取得します。 一部のコントロールはラインが開いているときしか使用できません。 コントロールがない場合、このメソッドは長さ0の配列を返します。- 戻り値:
- コントロールの配列
- 関連項目:
getControl(javax.sound.sampled.Control.Type)
-
isControlSupported
boolean isControlSupported(Control.Type control)指定されたタイプのコントロールをラインがサポートしているかどうかを示します。 一部のコントロールはラインが開いているときしか使用できません。- パラメータ:
control
- サポートが照会されるコントロールのタイプ- 戻り値:
- 指定されたタイプのコントロールの少なくとも1つがサポートされている場合は
true
、そうでない場合はfalse
-
getControl
Control getControl(Control.Type control)指定されたタイプのコントロールがある場合、そのコントロールを取得します。 一部のコントロールはラインが開いているときしか使用できません。- パラメータ:
control
- 要求されたコントロールのタイプ- 戻り値:
- 指定されたタイプのコントロール
- 例外:
IllegalArgumentException
- 指定されたタイプのコントロールがサポートされていない場合- 関連項目:
getControls()
,isControlSupported(Control.Type control)
-
addLineListener
void addLineListener(LineListener listener)リスナーをこのラインに追加します。 ラインの状態が変化するたびに、リスナーのupdate()
メソッドが呼び出され、変化を説明するLineEvent
オブジェクトが示されます。- パラメータ:
listener
- リスナーとしてこのラインに追加するオブジェクト- 関連項目:
removeLineListener(javax.sound.sampled.LineListener)
、LineListener.update(javax.sound.sampled.LineEvent)
、LineEvent
-
removeLineListener
void removeLineListener(LineListener listener)このラインのリスナーのリストから、指定されたリスナーを削除します。- パラメータ:
listener
- 削除するリスナー- 関連項目:
addLineListener(javax.sound.sampled.LineListener)
-