Interface ISpatialAudioClient (spatialaudioclient.h)

L’interface ISpatialAudioClient permet à un client de créer des flux audio qui émettent de l’audio à partir d’une position dans l’espace 3D. Cette interface fait partie de Windows Sonic, la plateforme audio de Microsoft pour un son plus immersif qui inclut un son spatial intégré sur Xbox et Windows.

Héritage

L’interface ISpatialAudioClient hérite de l’interface IUnknown . ISpatialAudioClient a également les types de membres suivants :

Méthodes

L’interface ISpatialAudioClient a ces méthodes.

 
ISpatialAudioClient ::ActivateSpatialAudioStream

Active et initialise le flux audio spatial à l’aide de l’une des structures d’activation de flux audio spatial.
ISpatialAudioClient ::GetMaxDynamicObjectCount

Obtient le nombre maximal d’objets audio dynamiques pour le client audio spatial.
ISpatialAudioClient ::GetMaxFrameCount

Obtient le nombre maximal possible de trames par passe de traitement. Cette méthode peut être utilisée pour déterminer la taille de la mémoire tampon source qui doit être allouée pour transmettre des données audio pour chaque passe de traitement.
ISpatialAudioClient ::GetNativeStaticObjectTypeMask

Obtient un masque de canal qui représente le sous-ensemble des canaux de lit d’orateur statiques natifs du moteur de rendu actuel.
ISpatialAudioClient ::GetStaticObjectPosition

Obtient la position dans l’espace 3D du canal audio spatial statique spécifié.
ISpatialAudioClient ::GetSupportedAudioObjectFormatEnumerator

Obtient un IAudioFormatEnumerator qui contient tous les formats audio pris en charge pour les objets audio spatiaux. Le premier élément de la liste représente le format le plus préférable.
ISpatialAudioClient ::IsAudioObjectFormatSupported

Obtient une valeur indiquant si ISpatialAudioObjectRenderStream prend en charge un format spécifié.
ISpatialAudioClient ::IsspatialAudioStreamAvailable

En cas de réussite, obtient une valeur indiquant si le moteur de rendu spatial actuellement actif prend en charge le flux de rendu audio spatial spécifié.

Remarques

L’exemple de code suivant montre comment initialiser cette interface à l’aide d’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);

Pour les applications UWP qui n’ont pas accès à IMMDevice, vous devez obtenir une instance de ISpatialAudioClient en appelant ActivateAudioInterfaceAsync. Pour obtenir un exemple, consultez l’exemple WindowsAudioSession.

Note Lorsque vous utilisez les interfaces ISpatialAudioClient sur un titre XDK (Xbox One Development Kit), vous devez d’abord appeler EnableSpatialAudio avant d’appeler IMMDeviceEnumerator ::EnumAudioEndpoints ou IMMDeviceEnumerator ::GetDefaultAudioEndpoint. Si vous ne le faites pas, une erreur E_NOINTERFACE est retournée à partir de l’appel à Activer. EnableSpatialAudio est disponible uniquement pour les titres XDK et n’a pas besoin d’être appelé pour plateforme Windows universelle applications s’exécutant sur Xbox One, ni pour les appareils non Xbox One.
 
Pour accéder à ActivateAudioIntefaceAsync, vous devez créer un lien vers mmdevapi.lib.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 1703 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2016 (applications de bureau uniquement)
Plateforme cible Windows
En-tête spatialaudioclient.h