|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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 Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。