ISpatialAudioClient インターフェイス (spatialaudioclient.h)

ISpatialAudioClient インターフェイスを使用すると、クライアントは 3D 空間内の位置からオーディオを出力するオーディオ ストリームを作成できます。 このインターフェイスは、Microsoft のオーディオ プラットフォームである Windows Sonic の一部であり、Xbox と Windows の統合された空間サウンドを含む、よりイマーシブなオーディオを実現します。

継承

ISpatialAudioClient インターフェイスは、IUnknown インターフェイスから継承されます。 ISpatialAudioClient には、次の種類のメンバーもあります。

メソッド

ISpatialAudioClient インターフェイスには、これらのメソッドがあります。

 
ISpatialAudioClient::ActivateSpatialAudioStream

空間オーディオ ストリームのアクティブ化構造のいずれかを使用して、空間オーディオ ストリームをアクティブ化および初期化します。
ISpatialAudioClient::GetMaxDynamicObjectCount

空間オーディオ クライアントの動的オーディオ オブジェクトの最大数を取得します。
ISpatialAudioClient::GetMaxFrameCount

処理パスごとに可能な最大フレーム数を取得します。 このメソッドを使用して、各処理パスのオーディオ データを伝達するために割り当てるソース バッファーのサイズを決定できます。
ISpatialAudioClient::GetNativeStaticObjectTypeMask

現在のレンダリング エンジンにネイティブな静的スピーカー ベッド チャネルのサブセットを表すチャネル マスクを取得します。
ISpatialAudioClient::GetStaticObjectPosition

指定した静的空間オーディオ チャネルの 3D 空間内の位置を取得します。
ISpatialAudioClient::GetSupportedAudioObjectFormatEnumerator

空間オーディオ オブジェクトでサポートされているすべてのオーディオ形式を含む IAudioFormatEnumerator を取得します。リストの最初の項目が最も優先される形式を表します。
ISpatialAudioClient::IsAudioObjectFormatSupported

ISpatialAudioObjectRenderStream が指定した形式をサポートしているかどうかを示す値を取得します。
ISpatialAudioClient::IsSpatialAudioStreamAvailable

成功した場合、現在アクティブな空間レンダリング エンジンが指定された空間オーディオ レンダリング ストリームをサポートするかどうかを示す値を取得します。

注釈

次のコード例は、 IMMDevice を使用してこのインターフェイスを初期化する方法を示しています。

HRESULT hr;
Microsoft::WRL::ComPtr<IMMDeviceEnumerator> deviceEnum;
Microsoft::WRL::ComPtr<IMMDevice> defaultDevice;

hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), nullptr, CLSCTX_ALL, __uuidof(IMMDeviceEnumerator), (void**)&deviceEnum);
hr = deviceEnum->GetDefaultAudioEndpoint(EDataFlow::eRender, eMultimedia, &defaultDevice);

Microsoft::WRL::ComPtr<ISpatialAudioClient> spatialAudioClient;
hr = defaultDevice->Activate(__uuidof(ISpatialAudioClient), CLSCTX_INPROC_SERVER, nullptr, (void**)&spatialAudioClient);

IMMDevice にアクセスできない UWP アプリの場合は、ActivateAudioInterfaceAsync を呼び出して ISpatialAudioClient のインスタンスを取得する必要があります。 例については、 WindowsAudioSession サンプルを参照してください。

メモXbox One 開発キット (XDK) タイトルで ISpatialAudioClient インターフェイスを使用する場合は、IMMDeviceEnumerator::EnumAudioEndpoints または IMMDeviceEnumerator::GetDefaultAudioEndpoint を呼び出す前に、まず EnableSpatialAudio を呼び出す必要があります。 これを行わないと、Activate の呼び出しからE_NOINTERFACE エラーが返されます。 EnableSpatialAudio は XDK タイトルでのみ使用でき、Xbox One で実行されているユニバーサル Windows プラットフォームアプリや Xbox One 以外のデバイスに対して呼び出す必要はありません。
 
ActivateAudioIntefaceAsync にアクセスするには、mmdevapi.lib にリンクする必要があります。

要件

要件
サポートされている最小のクライアント Windows 10、バージョン 1703 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2016 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー spatialaudioclient.h