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 以外のデバイスに対して呼び出す必要はありません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10、バージョン 1703 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2016 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | spatialaudioclient.h |