Compartilhar via


Interface ISpatialAudioClient (spatialaudioclient.h)

A interface ISpatialAudioClient permite que um cliente crie fluxos de áudio que emitem áudio de uma posição no espaço 3D. Essa interface faz parte do Windows Sonic, plataforma de áudio da Microsoft para áudio mais imersivo que inclui som espacial integrado no Xbox e no Windows.

Herança

A interface ISpatialAudioClient herda da interface IUnknown . ISpatialAudioClient também tem estes tipos de membros:

Métodos

A interface ISpatialAudioClient tem esses métodos.

 
ISpatialAudioClient::ActivateSpatialAudioStream

Ativa e inicializa o fluxo de áudio espacial usando uma das estruturas de ativação de fluxo de áudio espacial.
ISpatialAudioClient::GetMaxDynamicObjectCount

Obtém o número máximo de objetos de áudio dinâmicos para o cliente de áudio espacial.
ISpatialAudioClient::GetMaxFrameCount

Obtém a contagem máxima de quadros possível por passagem de processamento. Esse método pode ser usado para determinar o tamanho do buffer de origem que deve ser alocado para transmitir dados de áudio para cada passagem de processamento.
ISpatialAudioClient::GetNativeStaticObjectTypeMask

Obtém uma máscara de canal que representa o subconjunto de canais estáticos de cama de alto-falante nativos para o mecanismo de renderização atual.
ISpatialAudioClient::GetStaticObjectPosition

Obtém a posição no espaço 3D do canal de áudio espacial estático especificado.
ISpatialAudioClient::GetSupportedAudioObjectFormatEnumerator

Obtém um IAudioFormatEnumerator que contém todos os formatos de áudio com suporte para objetos de áudio espaciais, o primeiro item na lista representa o formato mais preferível.
ISpatialAudioClient::IsAudioObjectFormatSupported

Obtém um valor que indica se ISpatialAudioObjectRenderStream dá suporte a um formato especificado.
ISpatialAudioClient::IsSpatialAudioStreamAvailable

Quando bem-sucedido, obtém um valor que indica se o mecanismo de renderização espacial ativo no momento dá suporte ao fluxo de renderização de áudio espacial especificado.

Comentários

O código de exemplo a seguir ilustra como inicializar essa interface 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);

Para aplicativos UWP que não têm acesso ao IMMDevice, você deve obter uma instância de ISpatialAudioClient chamando ActivateAudioInterfaceAsync. Para obter um exemplo, consulte o exemplo WindowsAudioSession.

Nota Ao usar as interfaces ISpatialAudioClient em um título do XDK (Kit de Desenvolvimento do Xbox One), você deve primeiro chamar EnableSpatialAudio antes de chamar IMMDeviceEnumerator::EnumAudioEndpoints ou IMMDeviceEnumerator::GetDefaultAudioEndpoint. Se não fizer isso, um erro de E_NOINTERFACE será retornado da chamada para Ativar. EnableSpatialAudio só está disponível para títulos XDK e não precisa ser chamado para Plataforma Universal do Windows aplicativos em execução no Xbox One, nem para dispositivos não Xbox One.
 
Para acessar ActivateAudioIntefaceAsync, você precisará vincular a mmdevapi.lib.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1703 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2016 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho spatialaudioclient.h