Skip to main content
En este tema se describe cómo cambiaron las API de audio del kit de desarrollo de software de XBOX One para Microsoft Game Development Kit (GDK).

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: Valores:
    • 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.

Cambios en la API

| Plataforma de destino| API del kit de desarrollo de software de XBOX One| Reemplazo en la API de Microsoft Game Development Kit (GDK)| Descripción| | --- | --- | --- | --- | --- | --- | --- | --- | --- | | PC y XBOX| ActivateAudioInterfaceAsync e IActivateAudioInterfaceAsync| IMMDevice::Activate()| Para activar un cliente de audio de forma sincrónica desde un IMMDevice. Use la API MMDevice para enumerar los puntos de conexión.| | PC y XBOX| IAudioClient2::RegisterXBoxVolumeNotificationCallback e IAudioClient2::UnregisterXBoxVolumeNotificationCallback| API AudioStateMonitor| Estas API estaban destinadas anteriormente a alertar a los títulos de que las secuencias multimedia del juego estaban atenuadas. La nueva manera de hacerlo es mediante la API AudioStateMonitor.| | PC y XBOX| ExcludeFromGameDVRCapture| No aplicable| Al crear un AudioClient, use AUDCLNT_STREAMFLAGS_EXCLUDE_FROM_GAMEDVR_CAPTURE como constante de StreamFlags. Incluya XAUDIO2XBOX.H.| | PC y XBOX| IMMGameDVRDeviceCreator| No aplicable| En desuso.| | XBOX| IMMXBoxDevice| No aplicable| En desuso.| | PC y XBOX| GetPnpId| No aplicable| En desuso.| | XBOX| IMMXboxDeviceEnumerator| IAudioClient::GetMixFormat| | | XBOX| GetHdAudioChannelCounts, RegisterChannelCountNotificationCallback y UnregisterChannelCountNotificationCallback| IAudioClient::GetMixFormat| Si el formato del punto de conexión cambia, las secuencias se invalidarán. La siguiente llamada a IAudioClient::GetMixFormat devolverá el recuento de canales adecuado para el punto de conexión.| | XBOX| DisableBitStreamOut y RestoreBitstreamOut| No aplicable| En desuso.| | PC y XBOX| EnableSpatialAudio| No aplicable| Ya no es necesario llamarla para usar Sonido espacial.| | PC y XBOX| SetWasapiThreadAffinityMask| No aplicable| En desuso. Los juegos que usan XAudio2 pueden optar por ajustar el parámetro XAudio2Processor con XAudio2CreateWithSharedContexts para especificar en qué procesador se ejecuta XAudio2.|

Documentación de referencia de la API

Consulte también

Lista de ejemplos de Microsoft Game Development Kit
Última modificación el 28 de agosto de 2026