public interface Line extends AutoCloseable
Line
インタフェースは、モノラル・チャネルまたは多重チャネルのオーディオ・フィードを表します。ラインは、ミキサー、入出力ポート、ミキサーへのデータ入出力パスなどの、デジタル・オーディオ「パイプライン」の1要素です。
ラインにはゲイン、パン、リバーブなどのコントロールがあります。コントロール自体は、基底
クラスを継承するクラスのインスタンスです。Control
Line
インタフェースには、ラインのコントロールを取得するためのアクセス用メソッドが2つ用意されています。
はセット全体を返し、getControls
は指定されたタイプの単一のコントロールを返します。
getControl
ラインは時間によってさまざまな状態で存在します。ラインが開くと、ライン自体のためにシステム・リソースが確保され、ラインが閉じると、これらのリソースはほかのオブジェクトまたはアプリケーションのために解放されます。
メソッドにより、ラインが開いているか閉じているかを確認できます。ただしラインが開いていても、データを処理しているとは限りません。データ処理は通常、isOpen()
やSourceDataLine.write
などのサブインタフェースのメソッドによって開始されます。
TargetDataLine.read
オブジェクトを登録して、ラインの状態が変化するたびに通知を受け取ることができます。オブジェクトは、単一のメソッド
で構成されるupdate
インタフェースを実装している必要があります。このメソッドはラインの開閉時に呼び出されます。ラインがLineListener
DataLine
である場合は、開始および停止時に呼び出されます。
オブジェクトを登録して複数のラインを監視することができます。オブジェクトがupdate
メソッドで受信するイベントは、どのラインがイベントを作成したのか、それはどのタイプのイベントか(OPEN
、CLOSE
、START
、またはSTOP
)、およびイベント発生時ラインがどれだけのサンプル・フレームを処理し終わっているかを指定します。
開閉などの一定のライン操作は、ラインが共有オーディオ・リソースであるときに特権を持たないコードによって呼び出された場合、セキュリティ例外を生成することがあります。
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)
このラインのリスナーのリストから、指定されたリスナーを削除します。
|
Line.Info getLineInfo()
Line.Info
オブジェクトを取得します。void open() throws LineUnavailableException
OPEN
イベントがラインのリスナーにディスパッチされます。
ラインによっては、一度閉じると再度開くことができない場合があります。こうしたラインを再度開こうとすると、常にLineUnavailableException
が表示されます。
ラインの種類によっては、リソースの割当てに影響を与える設定可能なプロパティを持っているものもあります。たとえば、DataLine
は特定のフォーマットおよびバッファ・サイズで開く必要があります。こうしたラインは、open
メソッドや、目的の設定をアプリケーションで指定できるメソッドを追加するなどして、これらのプロパティを構成するメカニズムを提供します。
このメソッドは引数をとらず、現在の設定でラインを開きます。これは、
オブジェクトやSourceDataLine
オブジェクトの場合、ラインがデフォルト設定で開くことを意味します。しかしTargetDataLine
の場合、バッファ・サイズはデータのロード時に決定されます。このメソッドではロードするデータをアプリケーションで指定できないため、IllegalArgumentExceptionがスローされます。したがって、この代わりに、Clip
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)
void close()
CLOSE
イベントがラインのリスナーにディスパッチされます。close
、インタフェース: AutoCloseable
SecurityException
- セキュリティの制約のためにラインを閉じることができない場合。open()
、isOpen()
、LineEvent
boolean isOpen()
Control[] getControls()
getControl(javax.sound.sampled.Control.Type)
boolean isControlSupported(Control.Type control)
control
- サポートが照会されるコントロールのタイプtrue
、そうでない場合はfalse
。Control getControl(Control.Type control)
control
- 要求されたコントロールのタイプIllegalArgumentException
- 指定されたタイプのコントロールがサポートされていない場合getControls()
, isControlSupported(Control.Type control)
void addLineListener(LineListener listener)
update()
メソッドが呼び出され、変化を説明するLineEvent
オブジェクトが示されます。listener
- リスナーとしてこのラインに追加するオブジェクトremoveLineListener(javax.sound.sampled.LineListener)
、LineListener.update(javax.sound.sampled.LineEvent)
、LineEvent
void removeLineListener(LineListener listener)
listener
- 削除するリスナーaddLineListener(javax.sound.sampled.LineListener)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.