Directrices
- Para ayudar a garantizar que los usuarios tengan la mejor experiencia de juego posible, determine si el punto de conexión admite audio multicanal. En primer lugar, llame a IAudioClient::IsFormatSupported. Si el formato preferido no es compatible, recurra a la representación en el formato de mezcla, IAudioClient::GetMixFormat.
- En lugar de administrar solo puntos de conexión 7.1, los títulos también deben poder administrar de forma nativa puntos de conexión 2.0, 5.1 y 7.1, y reaccionar en tiempo real si los formatos cambian mediante invalidaciones del cliente de audio. Si un título no desea proporcionar tres fuentes de audio diferentes (con respecto a los recuentos de canales), puede pedirle al sistema operativo que realice la mezcla ascendente y descendente por él, con la marca de secuencia AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM al inicializar el cliente de audio. Incluso si el juego le pide al sistema operativo que realice la mezcla ascendente y descendente, seguirá recibiendo invalidaciones del cliente de audio y deberá reaccionar a ellas.
- Para enumerar los dispositivos de audio (representación y captura), use la API MMDevice. Si representa audio solo en el punto de conexión HDMI principal, llame a GetDefaultAudioEndpoint
- En XBOX, represente el audio desde un proceso a la vez.
- El control remoto de XBOX Manager está diseñado para admitir audio mediante la API de sesión de audio de Windows (WASAPI). Sin embargo, no admite la transmisión de audio desde ISpatialAudioClient (ISAC) cuando están activadas las configuraciones de cine en casa Dolby/DTS.
-
Muchos métodos asociados a WASAPI pueden devolver el código de error AUDCLNT_E_DEVICE_INVALIDATED si el dispositivo de punto de conexión de audio que usa la aplicación cliente deja de ser válido. Asegúrese de que el título responde correctamente a estos errores, que pueden producirse si un dispositivo de punto de conexión se cambia de alguna manera. Aquí encontrará más información sobre la recuperación de un error de dispositivo no válido con WASAPI. Una manera sencilla de confirmar que el título administra correctamente la invalidación de dispositivos de audio es cambiar a la página de configuración de audio mientras el título se está ejecutando y cambiar el recuento de canales en el dispositivo HDMI. Durante un escenario de invalidación, WASAPI puede devolver los siguientes códigos de error:
- AUDCLNT_E_DEVICE_INVALIDATED
- AUDCLNT_E_RESOURCES_INVALIDATED
- AUDCLNT_E_UNSUPPORTED_FORMAT
- AUDCLNT_E_ENDPOINT_CREATE_FAILED
-
Cuando el título usa Sonido espacial, interactuará con las API de ISAC, que también devuelven códigos de error relacionados con la invalidación de dispositivos. En el caso de ISAC, la invalidación se produce cuando se cambia el punto de conexión de audio o cuando se cambia el modo de representación espacial durante la reproducción. Aquí encontrará más información sobre la recuperación de un error de dispositivo no válido con ISAC. Esto ocurre cuando cualquiera de los métodos siguientes devuelve uno de los valores siguientes.
Métodos:
- ISpatialAudioObjectRenderStreamBase
- ISpatialAudioObjectRenderStream
- ISpatialAudioObjectRenderStreamForMetadata
- ISpatialAudioObjectRenderStreamForHrtf
- SPTLAUDCLNT_E_DESTROYED
- AUDCLNT_E_DEVICE_INVALIDATED
- AUDCLNT_E_RESOURCES_INVALIDATED
- AUDCLNT_E_UNSUPPORTED_FORMAT
- SPTLAUDCLNT_E_INTERNAL Además, conectar o desconectar unos auriculares del mando cuando la consola está configurada para usar un formato espacial (como Windows Sonic para auriculares) probablemente dará lugar a estos eventos.
- Una invalidación del dispositivo de audio puede producirse en cualquier momento después de obtener IMMDevice de la API MMDevice. Todas las llamadas, incluida IMMDevice::Activate, pueden devolver un error de invalidación. Cada vez que el juego encuentre un error de invalidación, debe volver a crear sus secuencias de audio obteniendo primero un nuevo IMMDevice mediante IMMDeviceEnumerator.
