マルチチャネル オーディオの読み取り

Windows Media Audio 9 Professional コーデックでは、マルチチャネル オーディオ (2 つ以上のチャネル) をエンコードできます。 マルチチャンネル オーディオでファイルを読み取る場合は、出力を適切に構成する必要があります。または、オーディオは低品質でステレオで配信されます。 マルチチャネル オーディオ配信の出力を設定するには、g_wszEnableDiscreteOutputとg_wszSpeakerConfigの 2 つの出力設定を設定する必要があります。

g_wszEnableDiscreteOutputを TRUE に設定すると、高品位オーディオ出力を配信するコーデックが設定されます。 高解像度オーディオは、ステレオまたは複数のチャンネルの 24 ビット サンプルを含む Windows Media Audio 9 コーデックによってエンコードされます。 この設定が FALSE の場合、16 ビットステレオ出力のみが配信されます。

再生中のコンピューター上のスピーカーの数は、g_wszSpeakerConfigで設定されます。 この設定は、次の表に示す DirectSound スピーカー定数のいずれかに設定された DWORD 値です。 コンパイラのこれらの定数名を解決するには、dsound.h を含める必要があります。

定数 説明
DSSPEAKER_DIRECTOUT 0x00000000 オーディオは、スピーカー用に構成されずに直接パススルーされます。
DSSPEAKER_HEADPHONE 0x00000001 クライアント コンピューターにはヘッドフォンが装備されています。
DSSPEAKER_MONO 0x00000002 クライアント コンピューターには、モノラル スピーカーが装備されています。
DSSPEAKER_QUAD 0x00000003 クライアント コンピューターには、クワッドラフォニック スピーカーが装備されています。
DSSPEAKER_STEREO 0x00000004 クライアント コンピューターにはステレオ スピーカーが装備されています。
DSSPEAKER_SURROUND 0x00000005 クライアント コンピューターには、4 チャンネルのサラウンド サウンド スピーカーが装備されています。
DSSPEAKER_5POINT1 0x00000006 クライアント コンピューターには、5 つのスピーカーとサブウーファーが装備されています。
DSSPEAKER_7POINT1 0x00000007 クライアント コンピューターには、7 つのスピーカーとサブウーファーが装備されています。

 

これらの設定を設定するには、 IWMReaderAdvanced2::SetOutputSetting を使用します。

最後に、ステレオに折りたたまずにチャンネルを個別に出力するには、次の手順に従って出力に正しいメディアの種類を設定する必要があります。

  1. IWMReader::GetOutputFormatCount を呼び出して、関連するオーディオ出力でサポートされている形式の数を取得します。 出力形式のインデックスは 0 から始まります。
  2. サポートされている各形式について、 IWMReader::GetOutputFormat を呼び出して、出力メディア プロパティ オブジェクトの IWMOutputMediaProps インターフェイスを取得します。
  3. IWMMediaProps::GetMediaType を呼び出してメディアの種類を取得します。
  4. 取得したメディアの種類が目的のマルチチャネル型の場合は、 IWMReader::SetOutputProps を呼び出して設定します。

個別の出力とスピーカーの構成を設定した後、リーダーによって列挙される出力形式には、 WAVEFORMATEXTENSIBLE 構造体を使用するマルチチャネル形式が含まれている必要があります。 プロパティを設定する前に出力形式を列挙すると、1 つまたは 2 つのチャネルとチャネルあたり最大 16 ビットの形式のみが含まれます。 他のオーディオ形式と同様に、リーダーによって列挙された形式のみを使用する必要があります。独自の構成を行わないでください。

Note

アプリケーションが Microsoft Windows XP 以降のバージョンの Microsoft Windows で実行されている場合にのみ、マルチチャネル オーディオを出力できます。

 

入力、ストリーム、出力

ASF ファイルの読み取り

出力設定

High-Resolution PCM オーディオの操作