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

AudioFormatオブジェクトには、一式のプロパティを組み込むことができます。 1つのプロパティは、キーと値のペアから成ります。キーはString型で、対応するプロパティ値は任意のオブジェクトです。 プロパティは、圧縮形式のビット・レートなど、追加の形式仕様を指定します。 主に、サービス・プロバイダとオーディオ形式の追加情報をやりとりするための手段として使用されます。 したがって、プロパティはmatches(AudioFormat)メソッド内では無視されます。 ただし、(AudioFormat, AudioFormat) isConversionSupportedなど、インストール済みサービス・プロバイダに依存するメソッドは、そのサービス・プロバイダ実装によっては、プロパティを考慮する場合があります。

次の表に、サービス・プロバイダが使用する(適用可能な場合)一般的なプロパティのいくつかを一覧表示します。

オーディオ形式のプロパティ
プロパティ・キー 値のタイプ 説明
"「bitrate」" Integer 平均ビット・レート(ビット/秒)
"「vbr」" Boolean ファイルが可変ビット・レート(VBR)でエンコードされている場合はtrue
"「quality」" Integer エンコーディング/変換の品質(1から100)

サービス・プロバイダ(プラグイン)のベンダーは、サード・パーティ・プラグイン内にすでに確立されているその他のプロパティの情報を探し、同じ規則に従うことをお勧めします。

導入されたバージョン:
1.3
関連項目: