Skip to main content
Cette rubrique décrit comment les API audio du XBOX One Software Development Kit ont été modifiées pour le Microsoft Game Development Kit (GDK).

Directives

  • Pour aider à offrir aux utilisateurs la meilleure expérience de jeu possible, déterminez si le point de terminaison prend en charge l’audio multicanal. D’abord, appelez IAudioClient::IsFormatSupported. Si le format préféré n’est pas pris en charge, revenez au rendu dans le format de mixage, IAudioClient::GetMixFormat.
  • Au lieu de gérer uniquement les points de terminaison 7.1, les titres doivent également être en mesure de gérer nativement les points de terminaison 2.0, 5.1 et 7.1 et de réagir en temps réel si les formats changent en raison d’invalidations du client audio. Si un titre ne veut pas fournir trois sources audio différentes (en ce qui concerne le nombre de canaux), il peut demander au système d’exploitation d’effectuer le mixage ascendant et descendant à sa place, avec l’indicateur de flux AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM lors de l’initialisation d’Audioclient. Même si le jeu demande au système d’exploitation d’effectuer le mixage ascendant et descendant, il recevra tout de même les invalidations du client audio et devra y réagir.
  • Pour énumérer les appareils audio (de rendu et de capture), utilisez l’API MMDevice. Si vous effectuez le rendu audio uniquement vers le point de terminaison HDMI principal, appelez GetDefaultAudioEndpoint
  • Sur XBOX, effectuez le rendu audio à partir d’un seul processus à la fois.
  • La télécommande de XBOX Manager est conçue pour prendre en charge l’audio au moyen de Windows Audio Session API (WASAPI). Cependant, elle ne prend pas en charge la diffusion audio à partir d’ISpatialAudioClient (ISAC) lorsque les paramètres de cinéma maison Dolby/DTS sont activés.
  • De nombreuses méthodes associées à WASAPI peuvent retourner le code d’erreur AUDCLNT_E_DEVICE_INVALIDATED si le périphérique de point de terminaison audio utilisé par l’application cliente devient non valide. Assurez-vous que votre titre répond correctement à ces erreurs, qui peuvent survenir si un périphérique de point de terminaison est modifié de quelque façon que ce soit. Vous trouverez plus d’informations sur la récupération après une erreur de périphérique non valide avec WASAPI ici. Une façon simple de confirmer que votre titre gère correctement l’invalidation d’un appareil audio consiste à passer à la page des paramètres audio pendant que votre titre s’exécute et à modifier le nombre de canaux de l’appareil HDMI. Dans un scénario d’invalidation, les codes d’erreur suivants peuvent être retournés par WASAPI :
    • AUDCLNT_E_DEVICE_INVALIDATED
    • AUDCLNT_E_RESOURCES_INVALIDATED
    • AUDCLNT_E_UNSUPPORTED_FORMAT
    • AUDCLNT_E_ENDPOINT_CREATE_FAILED
  • Lorsque votre titre utilise le son spatial, vous interagissez avec les API ISAC, qui retournent également des codes d’erreur liés à l’invalidation des appareils. Pour ISAC, l’invalidation se produit lorsque le point de terminaison audio est modifié ou que le mode de rendu spatial est modifié pendant la lecture. Vous trouverez plus d’informations sur la récupération après une erreur de périphérique non valide avec ISAC ici. Cela se produit lorsque l’une des méthodes suivantes retourne l’une des valeurs suivantes. Méthodes : Valeurs :
    • SPTLAUDCLNT_E_DESTROYED
    • AUDCLNT_E_DEVICE_INVALIDATED
    • AUDCLNT_E_RESOURCES_INVALIDATED
    • AUDCLNT_E_UNSUPPORTED_FORMAT
    • SPTLAUDCLNT_E_INTERNAL De plus, brancher ou débrancher un casque d’écoute de la manette lorsque la console est configurée pour utiliser un format spatial (comme Windows Sonic pour casque) entraînera probablement ces événements.
  • Une invalidation d’appareil audio peut survenir à tout moment après l’obtention de IMMDevice à partir de l’API MMDevice. Tous les appels, y compris IMMDevice::Activate, peuvent retourner une erreur d’invalidation. Chaque fois que le jeu rencontre une erreur d’invalidation, il doit recréer ses flux audio en obtenant d’abord un nouvel IMMDevice au moyen d’IMMDeviceEnumerator.

Modifications des API

| Plateforme cible| API du XBOX One Software Development Kit| API de remplacement du Microsoft Game Development Kit (GDK)| Description| | --- | --- | --- | --- | --- | --- | --- | --- | --- | | PC et XBOX| ActivateAudioInterfaceAsync et IActivateAudioInterfaceAsync| IMMDevice::Activate()| Pour activer un client audio de façon synchrone à partir d’un IMMDevice. Utilisez l’API MMDevice pour énumérer les points de terminaison.| | PC et XBOX| IAudioClient2::RegisterXBoxVolumeNotificationCallback et IAudioClient2::UnregisterXBoxVolumeNotificationCallback| API AudioStateMonitor| Ces API servaient auparavant à avertir les titres que les flux multimédias du jeu étaient atténués. La nouvelle façon de procéder consiste à utiliser l’API AudioStateMonitor.| | PC et XBOX| ExcludeFromGameDVRCapture| Sans objet| Lors de la création d’un AudioClient, utilisez AUDCLNT_STREAMFLAGS_EXCLUDE_FROM_GAMEDVR_CAPTURE comme constante StreamFlags. Incluez XAUDIO2XBOX.H.| | PC et XBOX| IMMGameDVRDeviceCreator| Sans objet| Déconseillé.| | XBOX| IMMXBoxDevice| Sans objet| Déconseillé.| | PC et XBOX| GetPnpId| Sans objet| Déconseillé.| | XBOX| IMMXboxDeviceEnumerator| IAudioClient::GetMixFormat| | | XBOX| GetHdAudioChannelCounts, RegisterChannelCountNotificationCallback et UnregisterChannelCountNotificationCallback| IAudioClient::GetMixFormat| Si le format du point de terminaison change, vos flux seront invalidés. Le prochain appel à IAudioClient::GetMixFormat retournera le nombre de canaux approprié pour le point de terminaison.| | XBOX| DisableBitStreamOut et RestoreBitstreamOut| Sans objet| Déconseillé.| | PC et XBOX| EnableSpatialAudio| Sans objet| L’appel n’est plus nécessaire pour utiliser le son spatial.| | PC et XBOX| SetWasapiThreadAffinityMask| Sans objet| Déconseillé. Les jeux qui utilisent XAudio2 peuvent choisir d’ajuster le paramètre XAudio2Processor avec XAudio2CreateWithSharedContexts pour indiquer sur quel processeur XAudio2 s’exécute.|

Documentation de référence des API

Voir aussi

Liste des exemples du Microsoft Game Development Kit
Last modified on October 6, 2026