|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface TargetDataLine
ターゲットデータラインは、オーディオデータをそこから読み込めるタイプの
です。もっとも一般的な例は、データをオーディオキャプチャデバイスから取得するデータラインです。デバイスはターゲットデータラインに書き込むミキサーとして実装されます。
DataLine
このインタフェースの命名規則は、ラインとミキサーの関係を反映しています。アプリケーションから見ると、ターゲットデータラインはオーディオデータのソースの役割をします。
ターゲットデータラインをミキサーから取得するには、適切な
オブジェクトを指定して DataLine.Info
Mixer
の
メソッドを呼び出します。
getLine
TargetDataLine
インタフェースは、ターゲットデータラインのバッファから取得したデータを読み込むメソッドを提供します。オーディオを録音するアプリケーションは、バッファがオーバーフローしないようにターゲットデータラインからデータを素早く読み込みます。オーバーフローすると、取得したデータに不連続部が生じて、クリック音が聞こえることがあります。アプリケーションでは、DataLine
インタフェースで定義されている
メソッドを使用して、データラインのバッファで現在キューに入っているデータの量を判別することができます。バッファがオーバーフローを起こした場合、キューに入っているもっとも古いデータが破棄されて新しいデータに置き換えられます。
available
Mixer
,
DataLine
,
SourceDataLine
入れ子のクラスの概要 |
---|
インタフェース javax.sound.sampled.DataLine から継承された入れ子のクラス/インタフェース |
---|
DataLine.Info |
メソッドの概要 | |
---|---|
void |
open(AudioFormat format)
指定された形式でラインを開き、ラインが必要なシステムリソースを獲得して操作可能になるようにします。 |
void |
open(AudioFormat format,
int bufferSize)
指定されたフォーマットと指定されたバッファサイズでラインを開き、ラインが必要なシステムリソースを獲得して操作可能になるようにします。 |
int |
read(byte[] b,
int off,
int len)
データラインの入力バッファからオーディオデータを読み込みます。 |
インタフェース javax.sound.sampled.DataLine から継承されたメソッド |
---|
available, drain, flush, getBufferSize, getFormat, getFramePosition, getLevel, getLongFramePosition, getMicrosecondPosition, isActive, isRunning, start, stop |
インタフェース javax.sound.sampled.Line から継承されたメソッド |
---|
addLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListener |
メソッドの詳細 |
---|
void open(AudioFormat format, int bufferSize) throws LineUnavailableException
バッファサイズはバイト単位で指定しますが、サンプルフレームサイズの倍数であることが必要です。この要件に適合しないバッファサイズを指定してこのメソッドを呼び出すと、IllegalArgumentException がスローされることがあります。開いたラインの実際のバッファサイズは、指定したバッファサイズとは異なることがあります。実際に設定された値は、続いて
を呼び出せば照会できます。
DataLine.getBufferSize()
この操作が成功すると、ラインは開いている状態としてマークされ、
イベントがラインのリスナーにディスパッチされます。
OPEN
すでに開いているラインでこのメソッドを呼び出すのは無効であり、IllegalStateException
がスローされることがあります。
ラインによっては、一度閉じると再度開けない場合があります。こうしたラインを再度開こうとすると、常に LineUnavailableException
が表示されます。
format
- 設定したいオーディオ形式bufferSize
- 設定したいバッファサイズ、バイト単位
LineUnavailableException
- リソースの制約のためにラインを開けない場合
IllegalArgumentException
- バッファサイズがサンプルフレームサイズの倍数でない場合、あるいは format
の指定が不完全または無効な場合
IllegalStateException
- ラインがすでに開いている場合
SecurityException
- セキュリティ上の制約のためにラインを開けない場合open(AudioFormat)
,
Line.open()
,
Line.close()
,
Line.isOpen()
,
LineEvent
void open(AudioFormat format) throws LineUnavailableException
バッファサイズは実装により選択されます。バッファサイズはバイト単位ですが、サンプルフレームサイズの倍数であることが必要です。システムが選択したバッファサイズは、続いて
を呼び出せば照会できます。
DataLine.getBufferSize()
この操作が成功すると、ラインは開いている状態としてマークされ、
イベントがラインのリスナーにディスパッチされます。
OPEN
すでに開いているラインでこのメソッドを呼び出すのは無効であり、IllegalStateException
がスローされることがあります。
ラインによっては、一度閉じると再度開けない場合があります。こうしたラインを再度開こうとすると、常に LineUnavailableException
が表示されます。
format
- 設定したいオーディオ形式
LineUnavailableException
- リソースの制約のためにラインを開けない場合
IllegalArgumentException
- format
の指定が不完全または無効な場合
IllegalStateException
- ラインがすでに開いている場合
SecurityException
- セキュリティ上の制約のためにラインを開けない場合open(AudioFormat, int)
,
Line.open()
,
Line.close()
,
Line.isOpen()
,
LineEvent
int read(byte[] b, int off, int len)
ブロックされずに読み込めるバイト数は、DataLine
インタフェースの
メソッドを使って確認できます。このバイト数はブロックされずに確実に読み込めますが、追加データを読み込もうとしたときにブロックされるかどうかは確実ではありません。
available
読み込むバイト数は、サンプルフレームサイズの倍数であることが必要です。つまり、次の条件を満たしている必要があります。
[読み込まれるバイト数] % [フレームサイズのバイト数] == 0
b
- このメソッドが戻るときに要求された入力データを含んでいるバイト配列off
- 配列の先頭からのオフセット、バイト単位len
- 読み込みを要求されたバイト数
IllegalArgumentException
- 要求されたバイト数がサンプルフレームサイズの倍数でない場合、または len
が負の場合
ArrayIndexOutOfBoundsException
- off
が負の場合、または off+len
が配列 b
の長さより大きい場合SourceDataLine.write(byte[], int, int)
,
DataLine.available()
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。