Interfaccia ISpatialAudioClient (spatialaudioclient.h)

L'interfaccia ISpatialAudioClient consente a un client di creare flussi audio che generano audio da una posizione nello spazio 3D. Questa interfaccia fa parte di Windows Sonic, la piattaforma audio di Microsoft per un audio più immersivo che include audio spaziale integrato su Xbox e Windows.

Ereditarietà

L'interfaccia ISpatialAudioClient eredita dall'interfaccia IUnknown . ISpatialAudioClient include anche questi tipi di membri:

Metodi

L'interfaccia ISpatialAudioClient include questi metodi.

 
ISpatialAudioClient::ActivateSpatialAudioStream

Attiva e inizializza il flusso audio spaziale usando una delle strutture di attivazione del flusso audio spaziale.
ISpatialAudioClient::GetMaxDynamicObjectCount

Ottiene il numero massimo di oggetti audio dinamici per il client audio spaziale.
ISpatialAudioClient::GetMaxFrameCount

Ottiene il numero massimo di fotogrammi possibile per ogni passaggio di elaborazione. Questo metodo può essere usato per determinare le dimensioni del buffer di origine allocato per trasmettere dati audio per ogni passaggio di elaborazione.
ISpatialAudioClient::GetNativeStaticObjectTypeMask

Ottiene una maschera di canale che rappresenta il sottoinsieme dei canali del letto di altoparlanti statici nativi al motore di rendering corrente.
ISpatialAudioClient::GetStaticObjectPosition

Ottiene la posizione nello spazio 3D del canale audio spaziale statico specificato.
ISpatialAudioClient::GetSupportedAudioObjectFormatEnumerator

Ottiene un IAudioFormatEnumerator che contiene tutti i formati audio supportati per gli oggetti audio spaziali, il primo elemento nell'elenco rappresenta il formato più preferibile.
ISpatialAudioClient::IsAudioObjectFormatSupported

Ottiene un valore che indica se ISpatialAudioObjectRenderStream supporta un formato specificato.
ISpatialAudioClient::IsSpatialAudioStreamAvailable

In caso di esito positivo, ottiene un valore che indica se il motore di rendering spaziale attualmente attivo supporta il flusso di rendering audio spaziale specificato.

Commenti

Il codice di esempio seguente illustra come inizializzare questa interfaccia usando 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);

Per le app UWP che non hanno accesso a IMMDevice, è necessario ottenere un'istanza di ISpatialAudioClient chiamando ActivateAudioInterfaceAsync. Per un esempio, vedere l'esempio WindowsAudioSession.

Nota Quando si usano le interfacce ISpatialAudioClient in un titolo XDK (Xbox One Development Kit), è prima necessario chiamare EnableSpatialAudio prima di chiamare IMMDeviceEnumerator::EnumAudioEndpoints o IMMDeviceEnumerator::GetDefaultAudioEndpoint. In caso contrario, verrà generato un errore E_NOINTERFACE restituito dalla chiamata a Attiva. EnableSpatialAudio è disponibile solo per i titoli XDK e non deve essere chiamato per le app piattaforma UWP (Universal Windows Platform) in esecuzione in Xbox One, né per i dispositivi non Xbox One.
 
Per accedere a ActivateAudioIntefaceAsync, è necessario collegarsi a mmdevapi.lib.

Requisiti

Requisito Valore
Client minimo supportato Windows 10 versione 1703 [solo app desktop]
Server minimo supportato Windows Server 2016 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione spatialaudioclient.h