|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.sound.sampled.AudioFormat
public class AudioFormat
AudioFormat
は、サウンドストリーム内でデータの特定の配列を指定するクラスです。オーディオ形式で格納されている情報を参照すると、バイナリサウンドデータ内のビットの解釈方法がわかります。
すべてのデータラインには、そのデータストリームに関連したオーディオ形式があります。ソース (再生) データラインのオーディオ形式はデータラインが出力用に受信するデータの種類を示します。ターゲット (取得) データラインの場合、オーディオ形式はそのラインから読み込めるデータの種類を指定します。当然、サウンドファイルにもオーディオ形式があります。
クラスは、他のファイル固有の情報以外に AudioFileFormat
AudioFormat
をカプセル化します。同様に、
にも AudioInputStream
AudioFormat
があります。
AudioFormat
クラスには、パルス符号変調 (PCM)、mu-law エンコーディング、a-law エンコーディングなどの、多くの共通サウンドファイル符号化手法が含まれています。これらの符号化手法は事前に定義されていますが、サービスプロバイダは新しいエンコーディング型を作成することができます。特定の形式で使用されるエンコーディングは、その encoding
フィールドによって指定されます。
オーディオ形式には、エンコーディング以外にもデータの正確な配列をより詳細に指定するその他のプロパティもあります。これらのプロパティには、チャネル数、サンプルレート、サンプルサイズ、バイト順序、フレームレート、フレームサイズなどがあります。サウンドには、モノ用に 1 つ、ステレオ用に 2 つなど、異なる数のオーディオチャネルがある場合があります。サンプルレートは、サウンド圧力の「スナップショット」 (サンプル) を、チャンネルごとに 1 秒あたりいくつとれるか測定します。サウンドがモノではなくステレオの場合は、実際に 2 つのサンプルが瞬間ごとに測定されます。この場合 1 つは左チャネル用で、もう 1 つは右チャンネル用です。ただし、サンプルレートは、1 チャネルあたりの数も測定するため、チャネル数に関係なくレートは同じになります。これは、サンプルレートの標準的な使用法です。サンプルサイズは、各スナップショットを格納する場合に使用されるビット数を示します。8 および 16 が通常の値です。16 ビットのサンプルその他 1 バイトよりも大きいサイズのサンプルの場合、バイト順序は重要です。各サンプルのバイトは、「リトルエンディアン」形式または「ビッグエンディアン」形式のどちらかで配列されます。PCM のようなエンコーディングの場合は、1 つのフレームが指定された時点のすべてのチャンネルのサンプルのセットで構成され、フレームサイズ (バイト数) は、常にサンプルサイズ (バイト単位) と同じになります。ただし、他の種類のエンコーディングの場合、フレームに一連のサンプル全体の大量の圧縮データ以外に、サンプル以外の追加データも含むことができます。そのようなエンコーディングでは、サンプルレートおよびサンプルサイズは、データを PCM に復号化してから参照するため、サンプルレートやサンプルサイズは、フレームレートやフレームサイズとはまったく異なるものになります。
AudioFormat
オブジェクトには、プロパティセットを含めることができます。1 つのプロパティは、鍵と値のペアから成ります。鍵は String
型で、対応するプロパティ値は任意のオブジェクトです。プロパティは、圧縮形式のビットレートなど、追加の形式仕様を指定し、主に、サービスプロバイダとオーディオ形式の追加情報をやりとりするための手段として使用されます。したがって、プロパティは matches(AudioFormat)
メソッド内では無視されます。ただし、(AudioFormat, AudioFormat) isConversionSupported
など、インストール済みサービスプロバイダに依存するメソッドは、そのサービスプロバイダ実装によって、プロパティを考慮する場合があります。
次の表に、サービスプロバイダが使用する (適用可能な場合) 一般的なプロパティのいくつかを一覧表示します。
プロパティキー | 値の型 | 説明 |
---|---|---|
「bitrate」 | Integer | 平均ビットレート (ビット/秒) |
「vbr」 | Boolean | ファイルが可変ビットレート (VBR) で符号化されている場合は true |
「quality」 | Integer | 符号化/変換の品質 (1 〜 100) |
サービスプロバイダ (プラグイン) のベンダーは、サードパーティプラグイン内にすでに確立されているその他のプロパティの情報を探し、同じ規則に従うことをお勧めします。
DataLine.getFormat()
,
AudioInputStream.getFormat()
,
AudioFileFormat
,
FormatConversionProvider
入れ子のクラスの概要 | |
---|---|
static class |
AudioFormat.Encoding
Encoding クラスは、オーディオストリームに使用されるデータ表現の特定の種類を指定します。 |
フィールドの概要 | |
---|---|
protected boolean |
bigEndian
データをビッグエンディアンあるいはリトルエンディアンのどちらの順序で格納するかを示します。 |
protected int |
channels
この形式のオーディオチャネル数 (モノ用に 1 つ、ステレオ用に 2 つ) |
protected AudioFormat.Encoding |
encoding
この形式で使用されるオーディオエンコーディング手法 |
protected float |
frameRate
この形式を持つサウンドの、1 秒あたりに再生または録音されたフレーム数 |
protected int |
frameSize
この形式を持つサウンドの各フレームのバイト数 |
protected float |
sampleRate
この形式を持つサウンドの、1 秒あたりに再生または録音されたサンプル数 |
protected int |
sampleSizeInBits
この形式を持つサウンドの各サンプルのビット数 |
コンストラクタの概要 | |
---|---|
AudioFormat(AudioFormat.Encoding encoding,
float sampleRate,
int sampleSizeInBits,
int channels,
int frameSize,
float frameRate,
boolean bigEndian)
パラメータを指定して AudioFormat を構築します。 |
|
AudioFormat(AudioFormat.Encoding encoding,
float sampleRate,
int sampleSizeInBits,
int channels,
int frameSize,
float frameRate,
boolean bigEndian,
Map<String,Object> properties)
パラメータを指定して AudioFormat を構築します。 |
|
AudioFormat(float sampleRate,
int sampleSizeInBits,
int channels,
boolean signed,
boolean bigEndian)
リニア PCM エンコーディングおよび指定されたパラメータを持つ AudioFormat を構築します。 |
メソッドの概要 | |
---|---|
int |
getChannels()
チャネル数を取得します。 |
AudioFormat.Encoding |
getEncoding()
サウンドのエンコーディング型をこの形式で取得します。 |
float |
getFrameRate()
フレームレートを 1 秒あたりのフレーム数で取得します。 |
int |
getFrameSize()
フレームサイズをバイト数で取得します。 |
Object |
getProperty(String key)
キーによって指定されたプロパティ値を取得します。 |
float |
getSampleRate()
サンプルレートを取得します。 |
int |
getSampleSizeInBits()
サンプルサイズを取得します。 |
boolean |
isBigEndian()
オーディオデータをビッグエンディアンあるいはリトルエンディアンのどちらのバイト順序で格納するかを指定します。 |
boolean |
matches(AudioFormat format)
この形式が指定された形式と一致するかどうかを示します。 |
Map<String,Object> |
properties()
修正不能のプロパティのマップを取得します。 |
String |
toString()
「PCM SIGNED 22050 Hz 16 bit mono big-endian」などの、形式を記述する文字列を返します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
---|
protected AudioFormat.Encoding encoding
protected float sampleRate
protected int sampleSizeInBits
protected int channels
protected int frameSize
protected float frameRate
protected boolean bigEndian
コンストラクタの詳細 |
---|
public AudioFormat(AudioFormat.Encoding encoding, float sampleRate, int sampleSizeInBits, int channels, int frameSize, float frameRate, boolean bigEndian)
AudioFormat
を構築します。エンコーディングは、データ表現に使用される規則を指定します。その他のパラメータについては、クラスの説明
を参照してください。
encoding
- オーディオエンコーディング手法sampleRate
- 1 秒あたりのサンプル数sampleSizeInBits
- 各サンプルのビット数channels
- チャネル数 (モノ用に 1 つ、ステレオ用に 2 つなど)frameSize
- 各フレームのバイト数frameRate
- 1 秒あたりのフレーム数bigEndian
- 単一サンプルのデータをビッグエンディアンのバイト順序で格納するかどうかを示す (false
はリトルエンディアンを示す)public AudioFormat(AudioFormat.Encoding encoding, float sampleRate, int sampleSizeInBits, int channels, int frameSize, float frameRate, boolean bigEndian, Map<String,Object> properties)
AudioFormat
を構築します。エンコーディングは、データ表現に使用される規則を指定します。その他のパラメータについては、クラスの説明
を参照してください。
encoding
- オーディオエンコーディング手法sampleRate
- 1 秒あたりのサンプル数sampleSizeInBits
- 各サンプルのビット数channels
- チャネル数 (モノ用に 1 つ、ステレオ用に 2 つなど)frameSize
- 各フレームのバイト数frameRate
- 1 秒あたりのフレーム数bigEndian
- 単一サンプルのデータをビッグエンディアンのバイト順序で格納するかどうかを示す (false
はリトルエンディアンを示す)properties
- 形式のプロパティを含む Map<String,Object>
オブジェクトpublic AudioFormat(float sampleRate, int sampleSizeInBits, int channels, boolean signed, boolean bigEndian)
AudioFormat
を構築します。フレームサイズは、各チャンネルから 1 つのサンプルを含むために必要なバイト数に設定され、フレームレートは、サンプルレートに設定されます。
sampleRate
- 1 秒あたりのサンプル数sampleSizeInBits
- 各サンプルのビット数channels
- チャネル数 (モノ用に 1 つ、ステレオ用に 2 つなど)signed
- データが符号付きか符号なしかを示すbigEndian
- 単一サンプルのデータをビッグエンディアンのバイト順序で格納するかどうかを示す (false
はリトルエンディアンを示す)メソッドの詳細 |
---|
public AudioFormat.Encoding getEncoding()
AudioFormat.Encoding.PCM_SIGNED
,
AudioFormat.Encoding.PCM_UNSIGNED
,
AudioFormat.Encoding.ULAW
,
AudioFormat.Encoding.ALAW
public float getSampleRate()
AudioSystem.isConversionSupported
など) や機能 (DataLine.Info.getFormats
など) で使用した場合、サンプルレート AudioSystem.NOT_SPECIFIED
は、あらゆるサンプルレートが許容されることを意味します。このオーディオ形式のサンプルレートが未定義のときは AudioSystem.NOT_SPECIFIED
も返されます。
AudioSystem.NOT_SPECIFIED
getFrameRate()
,
AudioSystem.NOT_SPECIFIED
public int getSampleSizeInBits()
AudioSystem.isConversionSupported
など) や機能 (DataLine.Info.getFormats
など) で使用した場合、サンプルサイズ AudioSystem.NOT_SPECIFIED
は、あらゆるサンプルサイズが許容されることを意味します。このオーディオ形式のサンプルサイズが未定義のときは AudioSystem.NOT_SPECIFIED
も返されます。
AudioSystem.NOT_SPECIFIED
getFrameSize()
,
AudioSystem.NOT_SPECIFIED
public int getChannels()
AudioSystem.isConversionSupported
など) や機能 (DataLine.Info.getFormats
など) で使用した場合、戻り値 AudioSystem.NOT_SPECIFIED
は、任意の数のチャネル (ただし正の数) が許容されることを意味します。
AudioSystem.NOT_SPECIFIED
AudioSystem.NOT_SPECIFIED
public int getFrameSize()
AudioSystem.isConversionSupported
など) や機能 (DataLine.Info.getFormats
など) で使用した場合、フレームサイズ AudioSystem.NOT_SPECIFIED
は、あらゆるフレームサイズが許容されることを意味します。このオーディオ形式のフレームサイズが未定義のときは AudioSystem.NOT_SPECIFIED
も返されます。
AudioSystem.NOT_SPECIFIED
getSampleSizeInBits()
,
AudioSystem.NOT_SPECIFIED
public float getFrameRate()
AudioSystem.isConversionSupported
など) や機能 (DataLine.Info.getFormats
など) で使用した場合、フレームレート AudioSystem.NOT_SPECIFIED
は、あらゆるフレームレートが許容されることを意味します。このオーディオ形式のフレームレートが未定義のときは AudioSystem.NOT_SPECIFIED
も返されます。
AudioSystem.NOT_SPECIFIED
getSampleRate()
,
AudioSystem.NOT_SPECIFIED
public boolean isBigEndian()
true
、リトルエンディアンバイト順序の場合は false
public Map<String,Object> properties()
クラスの説明
を参照してください。
Map<String,Object>
オブジェクト。認識されるプロパティがない場合、空のマップが返されるgetProperty(String)
public Object getProperty(String key)
クラスの説明
を参照してください。
特定のファイル形式で指定のプロパティが定義されていない場合、このメソッドは null
を返します。
key
- 望ましいプロパティのキー
null
properties
public boolean matches(AudioFormat format)
AudioSystem.NOT_SPECIFIED
がない場合は、2 つの形式のサンプルレートも同一にする必要があります。同様に、指定した形式に、フレームレート値 AudioSystem.NOT_SPECIFIED
がない場合は、フレームレートも同一にする必要があります。バイト順序 (ビッグエンディアンまたはリトルエンディアン) は、サンプルサイズが 1 バイトより大きい場合に一致させる必要があります。
format
- 一致しているか判別する形式
true
、そうでない場合は false
public String toString()
Object
内の toString
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。