JavaTM Platform
Standard Ed. 6

javax.sound.sampled
インタフェース Line

既知のサブインタフェースの一覧:
Clip, DataLine, Mixer, Port, SourceDataLine, TargetDataLine

public interface Line

Line インタフェースは、モノラルチャネルまたは多重チャネルのオーディオ送りを表します。ラインは、ミキサー、入出力ポート、ミキサーへのデータ入出力パスなどの、デジタルオーディオ「パイプライン」の 1 要素です。

ラインはゲイン、パン、リーバーブなどをコントロールすることができます。コントロール自体は、基底 Control クラスを拡張するクラスのインスタンスです。Line インタフェースはラインをコントロールするためのアクセス用メソッドを 2 つ提供します。getControls はセット全体を返し、getControl は指定された単一のコントロールを返します。

ラインは時間によってさまざまな状態で存在します。ラインが開くと、ライン自体のためにシステムリソースが確保され、ラインが閉じると、これらのリソースはほかのオブジェクトまたはアプリケーションのために解放されます。isOpen() メソッドにより、ラインが開いているか閉じているかを確認できます。ただしラインが開いていても、データを処理しているとは限りません。データ処理は通常、SourceDataLine.writeTargetDataLine.read などのサブインタフェースのメソッドによって開始されます。

オブジェクトを登録して、ラインの状態が変化するたびに通知を受け取ることができます。オブジェクトは、単一のメソッド update で構成される LineListener インタフェースを実装している必要があります。このメソッドはラインの開閉時に呼び出されます。 ラインが DataLine である場合は、開始および停止時に呼び出されます。

オブジェクトを登録して複数のラインを監視することができます。オブジェクトが update メソッドで受信するイベントは、どのラインがイベントを作成したのか、それはどのタイプのイベントか (OPENCLOSESTART、または 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 イベントがラインのリスナーにディスパッチされます。

例外:
SecurityException - セキュリティーの制約のために ラインを閉じることができない場合
関連項目:
open(), isOpen(), LineEvent

isOpen

boolean isOpen()
ラインが開いているかどうか、つまり現在はサウンドを再生または収集していなくてもシステムリソースを確保し操作可能であるかどうかを示します。

戻り値:
ラインが開いている場合は true、そうでない場合は false
関連項目:
open(), close()

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() メソッドが呼び出され、変化を説明する update() オブジェクトが示されます。

パラメータ:
listener - リスナーとしてこのラインに追加するオブジェクト
関連項目:
removeLineListener(javax.sound.sampled.LineListener), LineListener.update(javax.sound.sampled.LineEvent), LineEvent

removeLineListener

void removeLineListener(LineListener listener)
このラインのリスナーのリストから、指定されたリスナーを削除します。

パラメータ:
listener - 削除するリスナー
関連項目:
addLineListener(javax.sound.sampled.LineListener)

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。