Interfaz ISpatialAudioClient (spatialaudioclient.h)

La interfaz ISpatialAudioClient permite a un cliente crear secuencias de audio que emiten audio desde una posición en el espacio 3D. Esta interfaz forma parte de Windows Sonic, la plataforma de audio de Microsoft para un audio más inmersivo que incluye sonido espacial integrado en Xbox y Windows.

Herencia

La interfaz ISpatialAudioClient hereda de la interfaz IUnknown . ISpatialAudioClient también tiene estos tipos de miembros:

Métodos

La interfaz ISpatialAudioClient tiene estos métodos.

 
ISpatialAudioClient::ActivateSpatialAudioStream

Activa e inicializa la secuencia de audio espacial mediante una de las estructuras de activación de secuencias de audio espaciales.
ISpatialAudioClient::GetMaxDynamicObjectCount

Obtiene el número máximo de objetos de audio dinámicos para el cliente de audio espacial.
ISpatialAudioClient::GetMaxFrameCount

Obtiene el número máximo posible de fotogramas por paso de procesamiento. Este método se puede usar para determinar el tamaño del búfer de origen que se debe asignar para transmitir datos de audio para cada paso de procesamiento.
ISpatialAudioClient::GetNativeStaticObjectTypeMask

Obtiene una máscara de canal que representa el subconjunto de canales de cama de altavoz estáticos nativos del motor de representación actual.
ISpatialAudioClient::GetStaticObjectPosition

Obtiene la posición en el espacio 3D del canal de audio espacial estático especificado.
ISpatialAudioClient::GetSupportedAudioObjectFormatEnumerator

Obtiene un IAudioFormatEnumerator que contiene todos los formatos de audio admitidos para objetos de audio espacial, el primer elemento de la lista representa el formato más preferible.
ISpatialAudioClient::IsAudioObjectFormatSupported

Obtiene un valor que indica si ISpatialAudioObjectRenderStream admite un formato especificado.
ISpatialAudioClient::IsSpatialAudioStreamAvailable

Cuando se ejecuta correctamente, obtiene un valor que indica si el motor de representación espacial actualmente activo admite la secuencia de representación de audio espacial especificada.

Comentarios

En el código de ejemplo siguiente se muestra cómo inicializar esta interfaz mediante 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 las aplicaciones para UWP que no tienen acceso a IMMDevice, debes obtener una instancia de ISpatialAudioClient llamando a ActivateAudioInterfaceAsync. Para obtener un ejemplo, consulte el ejemplo WindowsAudioSession.

Nota Al usar las interfaces ISpatialAudioClient en un título del Kit de desarrollo de Xbox One (XDK), primero debes llamar a EnableSpatialAudio antes de llamar a IMMDeviceEnumerator::EnumAudioEndpoints o IMMDeviceEnumerator::GetDefaultAudioEndpoint. Si no lo hace, se producirá un error E_NOINTERFACE que se devuelve de la llamada a Activate. EnableSpatialAudio solo está disponible para los títulos XDK y no es necesario llamar a las aplicaciones de Plataforma universal de Windows que se ejecutan en Xbox One ni para ningún dispositivo que no sea Xbox One.
 
Para acceder a ActivateAudioIntefaceAsync, deberá vincular a mmdevapi.lib.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1703 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2016 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado spatialaudioclient.h