JavaTM 2
Platform
Std. Ed. v1.4.0

javax.sound.sampled
クラス AudioFormat

java.lang.Object
  |
  +--javax.sound.sampled.AudioFormat

public class AudioFormat
extends Object

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 に復号化してから参照するため、サンプルレートやサンプルサイズは、フレームレートやフレームサイズとはまったく異なるものになります。

導入されたバージョン:
1.3
関連項目:
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(float sampleRate, int sampleSizeInBits, int channels, boolean signed, boolean bigEndian)
          リニア PCM エンコーディングおよび指定されたパラメータを持つ AudioFormat を構築します。
 
メソッドの概要
 int getChannels()
          チャネル数を取得します。
 AudioFormat.Encoding getEncoding()
          サウンドのエンコーディングタイプをこの形式で取得します。
 float getFrameRate()
          フレームレートを 1 秒当たりのフレーム数で取得します。
 int getFrameSize()
          フレームサイズをバイト数で取得します。
 float getSampleRate()
          サンプルレートを取得します。
 int getSampleSizeInBits()
          サンプルのサイズを取得します。
 boolean isBigEndian()
          オーディオデータをビッグエンディアンあるいはリトルエンディアンのどちらのバイト順序で格納するかを指定します。
 boolean matches(AudioFormat format)
          この形式が指定された形式と一致するかどうかを示します。
 String toString()
          「PCM SIGNED 22050 Hz 16 bit mono big-endian audio data」などの、形式を記述する文字列を返します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

encoding

protected AudioFormat.Encoding encoding
この形式で使用されるオーディオエンコーディング手法


sampleRate

protected float sampleRate
この形式をもつサウンドの、1 秒当たりに再生または録音されたサンプル数


sampleSizeInBits

protected int sampleSizeInBits
この形式をもつサウンドの各サンプルのビット数


channels

protected int channels
この形式のオーディオチャネル数 (モノ用に 1 つ、ステレオ用に 2 つ)


frameSize

protected int frameSize
この形式をもつサウンドの各フレームのバイト数


frameRate

protected float frameRate
この形式をもつサウンドの、1 秒当たりに再生または録音されたフレーム数


bigEndian

protected boolean bigEndian
データをビッグエンディアンあるいはリトルエンディアンのどちらの順序で格納するかを示します。

コンストラクタの詳細

AudioFormat

public AudioFormat(AudioFormat.Encoding encoding,
                   float sampleRate,
                   int sampleSizeInBits,
                   int channels,
                   int frameSize,
                   float frameRate,
                   boolean bigEndian)
指定されたパラメータを持つ AudioFormat を構築します。エンコーディングは、データを表す場合に使用される規則を指定します。その他のパラメータについては、class description で詳しく説明します。

パラメータ:
encoding - オーディオエンコーディング手法
sampleRate - 1 秒当たりのサンプル数
sampleSizeInBits - 各サンプルのビット数
channels - チャネル数 (モノ用に 1 つ、ステレオ用に 2 つなど)
frameSize - 各フレームのバイト数
frameRate - 1 秒当たりのフレーム数
bigEndian - 単一サンプルのデータをビッグエンディアンのバイト順序で格納するかどうかを示す (false はリトルエンディアンを示す)

AudioFormat

public AudioFormat(float sampleRate,
                   int sampleSizeInBits,
                   int channels,
                   boolean signed,
                   boolean bigEndian)
リニア PCM エンコーディングおよび指定されたパラメータを持つ AudioFormat を構築します。フレームサイズは、各チャンネルから 1 つのサンプルを含むために必要なバイト数に設定され、フレームレートは、サンプルレートに設定されます。

パラメータ:
sampleRate - 1 秒当たりのサンプル数
sampleSizeInBits - 各サンプルのビット数
channels - チャネル数 (モノ用に 1 つ、ステレオ用に 2 つなど)
signed - データが符号付きか符号なしかを示す
bigEndian - 単一サンプルのデータをビッグエンディアンのバイト順序で格納するかどうかを示す (false はリトルエンディアンを示す)
メソッドの詳細

getEncoding

public AudioFormat.Encoding getEncoding()
サウンドのエンコーディングタイプをこの形式で取得します。

戻り値:
エンコーディングタイプ
関連項目:
AudioFormat.Encoding.PCM_SIGNED, AudioFormat.Encoding.PCM_UNSIGNED, AudioFormat.Encoding.ULAW, AudioFormat.Encoding.ALAW

getSampleRate

public float getSampleRate()
サンプルレートを取得します。

戻り値:
1 秒当たりのサンプル数
関連項目:
getFrameRate()

getSampleSizeInBits

public int getSampleSizeInBits()
サンプルのサイズを取得します。

戻り値:
各サンプルのビット数
関連項目:
getFrameSize()

getChannels

public int getChannels()
チャネル数を取得します。

戻り値:
チャネル数 (モノ用に 1 つ、ステレオ用に 2 つなど)

getFrameSize

public int getFrameSize()
フレームサイズをバイト数で取得します。

戻り値:
1 フレーム当たりのバイト数
関連項目:
getSampleSizeInBits()

getFrameRate

public float getFrameRate()
フレームレートを 1 秒当たりのフレーム数で取得します。

戻り値:
1 秒当たりのフレーム数
関連項目:
getSampleRate()

isBigEndian

public boolean isBigEndian()
オーディオデータをビッグエンディアンあるいはリトルエンディアンのどちらのバイト順序で格納するかを指定します。サンプルサイズが 1 バイト以下の場合、戻り値は不適切な値になります。

戻り値:
データがビッグエンディアンのバイト順序で格納される場合は true、リトルエンディアンバイト順序の場合は false

matches

public boolean matches(AudioFormat format)
この形式が指定された形式と一致するかどうかを示します。形式を一致させるためには、2 つの形式のエンコーディング、チャネル数、および 1 サンプル当たりのビット数と 1 フレーム当たりのバイト数を同一にする必要があります。また、指定した形式に、どのサンプルレートにも合致する AudioSystem.NOT_SPECIFIED がない場合は、2 つの形式のサンプルレートも同一にする必要があります。同様に、指定した形式に、フレームレート値 AudioSystem.NOT_SPECIFIED がない場合は、フレームレートも同一にする必要があります。バイト順序 (ビッグエンディアンまたはリトルエンディアン) は、サンプルサイズが 1 バイトより大きい場合に一致させる必要があります。

パラメータ:
format - 一致しているか判別する形式
戻り値:
指定された形式がこの形式に一致する場合は true、そうでない場合は false

toString

public String toString()
「PCM SIGNED 22050 Hz 16 bit mono big-endian audio data」などの、形式を記述する文字列を返します。文字列の内容は、Java Sound の実装によって異なります。

オーバーライド:
クラス Object 内の toString
戻り値:
形式パラメータを記述する文字列

JavaTM 2
Platform
Std. Ed. v1.4.0

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

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.