Share via


ISpatialAudioClient-Schnittstelle (spatialaudioclient.h)

Die ISpatialAudioClient-Schnittstelle ermöglicht es einem Client, Audiostreams zu erstellen, die Audiodaten von einer Position im 3D-Raum ausgeben. Diese Schnittstelle ist Teil von Windows Sonic, der Audioplattform von Microsoft für immersivere Audiowiedergabe, die integrierte raumbezogene Sound auf Xbox und Windows umfasst.

Vererbung

Die ISpatialAudioClient-Schnittstelle erbt von der IUnknown-Schnittstelle . ISpatialAudioClient verfügt auch über folgende Membertypen:

Methoden

Die ISpatialAudioClient-Schnittstelle verfügt über diese Methoden.

 
ISpatialAudioClient::ActivateSpatialAudioStream

Aktiviert und initialisiert den räumlichen Audiodatenstrom mithilfe einer der Aktivierungsstrukturen für räumliche Audiodatenströme.
ISpatialAudioClient::GetMaxDynamicObjectCount

Ruft die maximale Anzahl dynamischer Audioobjekte für den Räumlichen Audioclient ab.
ISpatialAudioClient::GetMaxFrameCount

Ruft die maximal mögliche Frameanzahl pro Verarbeitungsdurchlauf ab. Diese Methode kann verwendet werden, um die Größe des Quellpuffers zu bestimmen, der zugeordnet werden soll, um Audiodaten für jeden Verarbeitungsdurchlauf zu übermitteln.
ISpatialAudioClient::GetNativeStaticObjectTypeMask

Ruft eine Kanalmaske ab, die die Teilmenge der statischen Sprecherbettkanäle darstellt, die der aktuellen Rendering-Engine nativ sind.
ISpatialAudioClient::GetStaticObjectPosition

Ruft die Position des angegebenen statischen räumlichen Audiokanals im 3D-Bereich ab.
ISpatialAudioClient::GetSupportedAudioObjectFormatEnumerator

Ruft einen IAudioFormatEnumerator ab, der alle unterstützten Audioformate für räumliche Audioobjekte enthält. Das erste Element in der Liste stellt das am besten bevorzugte Format dar.
ISpatialAudioClient::IsAudioObjectFormatSupported

Ruft einen Wert ab, der angibt, ob ISpatialAudioObjectRenderStream ein angegebenes Format unterstützt.
ISpatialAudioClient::IsSpatialAudioStreamAvailable

Ruft bei erfolgreicher Ausführung einen Wert ab, der angibt, ob die derzeit aktive Räumliche Rendering-Engine den angegebenen Renderdatenstrom für räumliche Audiodaten unterstützt.

Hinweise

Der folgende Beispielcode veranschaulicht, wie diese Schnittstelle mithilfe von IMMDevice initialisiert wird.

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);

Für UWP-Apps, die keinen Zugriff auf IMMDevice haben, sollten Sie eine instance von ISpatialAudioClient erhalten, indem Sie ActivateAudioInterfaceAsync aufrufen. Ein Beispiel finden Sie im WindowsAudioSession-Beispiel.

Hinweis Wenn Sie die ISpatialAudioClient-Schnittstellen in einem XDK-Titel (Xbox One Development Kit) verwenden, müssen Sie zuerst EnableSpatialAudio aufrufen, bevor Sie IMMDeviceEnumerator::EnumAudioEndpoints oder IMMDeviceEnumerator::GetDefaultAudioEndpoint aufrufen. Andernfalls wird ein E_NOINTERFACE Fehler vom Aufruf von Activate zurückgegeben. EnableSpatialAudio ist nur für XDK-Titel verfügbar und muss weder für Universelle Windows-Plattform Apps aufgerufen werden, die auf Xbox One ausgeführt werden, noch für Nicht-Xbox One-Geräte.
 
Um auf ActivateAudioIntefaceAsync zuzugreifen, müssen Sie einen Link zu mmdevapi.lib erstellen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 1703 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2016 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile spatialaudioclient.h