マルチチャネル オーディオの読み取り
[このページに関連付けられている機能である Windows Media Format 11 SDK は、レガシ機能です。 これは、ソース リーダーとシンク ライターによって置き換えられます。 ソース リーダーとシンク ライターは、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、Windows Media Format 11 SDK ではなくソース リーダーとシンク ライターを使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
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 を使用します。
最後に、ステレオにフォールドダウンなしでチャネルを個別に出力するには、次の手順に従って出力に正しいメディアの種類を設定する必要があります。
- IWMReader::GetOutputFormatCount を呼び出して、関連するオーディオ出力でサポートされている形式の数を取得します。 出力形式のインデックスは 0 から始まります。
- サポートされている各形式について、 IWMReader::GetOutputFormat を呼び出して、出力メディア プロパティ オブジェクトの IWMOutputMediaProps インターフェイスを取得します。
- IWMMediaProps::GetMediaType を呼び出して、メディアの種類を取得します。
- 取得したメディアの種類が目的のマルチチャネル型の場合は、 IWMReader::SetOutputProps を呼び出して設定します。
個別の出力とスピーカーの構成を設定した後、リーダーによって列挙される出力形式には、 WAVEFORMATEXTENSIBLE 構造体を使用するマルチチャネル形式が含まれている必要があります。 プロパティを設定する前に出力形式を列挙する場合は、1 つまたは 2 つのチャネルとチャネルあたり最大 16 ビットの形式のみが含まれます。 他のオーディオ形式と同様に、リーダーによって列挙された形式のみを使用する必要があります。独自の を構成しないでください。
注意
マルチチャネル オーディオは、アプリケーションが Microsoft Windows XP 以降のバージョンの Microsoft Windows で実行されている場合にのみ出力できます。
関連トピック