> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Comparaison des API audio XDK et GDK

> Comparaison des API audio du XBOX One Software Development Kit et du Microsoft Game Development Kit

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).

## Recommandations

* Pour garantir aux utilisateurs la meilleure expérience de jeu possible, déterminez si le point de terminaison prend en charge l'audio multicanal. Commencez par appeler [IAudioClient::IsFormatSupported](https://learn.microsoft.com/windows/desktop/api/audioclient/nf-audioclient-iaudioclient-isformatsupported). Si le format préféré n'est pas pris en charge, revenez au rendu dans le format de mixage, [IAudioClient::GetMixFormat](https://learn.microsoft.com/windows/desktop/api/audioclient/nf-audioclient-iaudioclient-getmixformat).

* Au lieu de gérer uniquement les points de terminaison 7.1, les titres doivent également être capables 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 par le biais d'invalidations du client audio. Si un titre ne souhaite pas fournir trois sources audio différentes (selon 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](https://learn.microsoft.com/windows/desktop/coreaudio/audclnt-streamflags-xxx-constants) 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 toujours
  les invalidations du client audio et devra y réagir.

* Pour énumérer les périphériques audio (de rendu et de capture), utilisez l'[API MMDevice](https://learn.microsoft.com/windows/desktop/coreaudio/mmdevice-api). Si vous effectuez le rendu audio uniquement vers le point de terminaison HDMI principal, appelez [GetDefaultAudioEndpoint](https://learn.microsoft.com/windows/win32/api/mmdeviceapi/nf-mmdeviceapi-immdeviceenumerator-getdefaultaudioendpoint)

* Sur XBOX, effectuez le rendu audio à partir d'un seul processus à la fois.

* Le contrôle à distance XBOX Manager est conçu pour prendre en charge l'audio via [Windows Audio Session API ](/fr/build/console-features/audio/overviews/wasapi-overview) (WASAPI). Cependant, il ne prend pas en charge la diffusion audio en continu depuis [ISpatialAudioClient](/fr/build/console-features/audio/overviews/spatial-audio-overview) (ISAC) lorsque les paramètres de home cinéma Dolby/DTS sont activés.

* De nombreuses méthodes associées à WASAPI peuvent renvoyer le code d'erreur [AUDCLNT\_E\_DEVICE\_INVALIDATED](https://learn.microsoft.com/windows/win32/api/audioclient/nf-audioclient-iaudioclient-start) 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 se produire si un périphérique de point de terminaison est modifié de quelque manière 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](https://learn.microsoft.com/windows/win32/coreaudio/recovering-from-an-invalid-device-error). Un moyen simple de vérifier que votre titre gère correctement l'invalidation du périphérique audio consiste à accéder à la page des paramètres audio pendant l'exécution de votre titre et à modifier le nombre de canaux du périphérique HDMI. Lors d'un scénario d'invalidation, les codes d'erreur suivants peuvent être renvoyé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 renvoient également des codes d'erreur liés à l'invalidation des périphériques. 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](https://learn.microsoft.com/windows/win32/coreaudio/recovering-from-an-invalid-device-error-spatial-sound). Cela se produit lorsque l'une des méthodes suivantes renvoie l'une des valeurs suivantes.

  Méthodes :

  * [ISpatialAudioObjectRenderStreamBase](https://learn.microsoft.com/windows/win32/api/spatialaudioclient/nn-spatialaudioclient-ispatialaudioobjectrenderstreambase)

  * [ISpatialAudioObjectRenderStream](https://learn.microsoft.com/windows/win32/api/spatialaudioclient/nn-spatialaudioclient-ispatialaudioobjectrenderstream)

  * [ISpatialAudioObjectRenderStreamForMetadata](https://learn.microsoft.com/windows/win32/api/spatialaudiometadata/nn-spatialaudiometadata-ispatialaudioobjectrenderstreamformetadata)

  * [ISpatialAudioObjectRenderStreamForHrtf](https://learn.microsoft.com/windows/win32/api/spatialaudiohrtf/nn-spatialaudiohrtf-ispatialaudioobjectrenderstreamforhrtf)

  Valeurs :

  * SPTLAUDCLNT\_E\_DESTROYED
  * AUDCLNT\_E\_DEVICE\_INVALIDATED
  * AUDCLNT\_E\_RESOURCES\_INVALIDATED
  * AUDCLNT\_E\_UNSUPPORTED\_FORMAT
  * SPTLAUDCLNT\_E\_INTERNAL

    En outre, le branchement ou le débranchement d'un casque sur 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 du périphérique audio peut se produire à tout moment après l'obtention de l'[IMMDevice](https://learn.microsoft.com/windows/win32/api/mmdeviceapi/nn-mmdeviceapi-immdevice) à partir de l'[API MMDevice](https://learn.microsoft.com/windows/desktop/coreaudio/mmdevice-api). Tous les appels, y compris [IMMDevice::Activate](https://learn.microsoft.com/windows/win32/api/mmdeviceapi/nf-mmdeviceapi-immdevice-activate), peuvent renvoyer 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 via [IMMDeviceEnumerator](https://learn.microsoft.com/windows/win32/api/mmdeviceapi/nf-mmdeviceapi-immdevice-activate).

## Modifications de l'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()](https://learn.microsoft.com/windows/desktop/api/mmdeviceapi/nf-mmdeviceapi-immdevice-activate)| Pour activer un client audio de manière synchrone à partir d'un [IMMDevice](https://learn.microsoft.com/windows/desktop/api/Mmdeviceapi/nn-mmdeviceapi-immdevice). Utilisez l'[API MMDevice](https://learn.microsoft.com/windows/desktop/coreaudio/mmdevice-api) pour énumérer les points de terminaison.|
\| PC et XBOX| IAudioClient2::RegisterXBoxVolumeNotificationCallback et IAudioClient2::UnregisterXBoxVolumeNotificationCallback| [API AudioStateMonitor](/fr/reference/audio/audiostatemonitor/interfaces/iaudiostatemonitor)| Ces API étaient auparavant destinées à avertir les titres que les flux multimédias du jeu étaient atténués. La nouvelle méthode consiste à utiliser l'[API AudioStateMonitor](/fr/reference/audio/audiostatemonitor/interfaces/iaudiostatemonitor).|
\| PC et XBOX| ExcludeFromGameDVRCapture| Non applicable| Lors de la création d'un [AudioClient](https://learn.microsoft.com/windows/desktop/api/audioclient/nf-audioclient-iaudioclient-initialize), utilisez AUDCLNT\_STREAMFLAGS\_EXCLUDE\_FROM\_GAMEDVR\_CAPTURE comme constante StreamFlags. Incluez XAUDIO2XBOX.H.|
\| PC et XBOX| IMMGameDVRDeviceCreator| Non applicable| Déprécié.|
\| XBOX| IMMXBoxDevice| Non applicable| Déprécié.|
\| PC et XBOX| GetPnpId| Non applicable| Déprécié.|
\| XBOX| IMMXboxDeviceEnumerator| [IAudioClient::GetMixFormat](https://learn.microsoft.com/windows/desktop/api/audioclient/nf-audioclient-iaudioclient-getmixformat)| |
\| XBOX| GetHdAudioChannelCounts, RegisterChannelCountNotificationCallback et UnregisterChannelCountNotificationCallback| [IAudioClient::GetMixFormat](https://learn.microsoft.com/windows/desktop/api/audioclient/nf-audioclient-iaudioclient-getmixformat)| Si le format du point de terminaison change, vos flux seront invalidés. L'appel suivant à [IAudioClient::GetMixFormat](https://learn.microsoft.com/windows/desktop/api/audioclient/nf-audioclient-iaudioclient-getmixformat) renverra le nombre de canaux approprié pour le point de terminaison.|
\| XBOX| DisableBitStreamOut et RestoreBitstreamOut| Non applicable| Déprécié.|
\| PC et XBOX| EnableSpatialAudio| Non applicable| L'appel n'est plus nécessaire pour utiliser le son spatial.|
\| PC et XBOX| SetWasapiThreadAffinityMask| Non applicable| Déprécié. Les jeux qui utilisent XAudio2 peuvent choisir d'ajuster le paramètre *XAudio2Processor* avec [XAudio2CreateWithSharedContexts](/fr/reference/audio/xaudio2xbox/functions/xaudio2createwithsharedcontexts) pour spécifier le processeur sur lequel XAudio2 s'exécute.|

## Documentation de référence de l'API

* [AudioStateMonitor (contenu de l'API)](/fr/reference/audio/audiostatemonitor/audiostatemonitor_members)
* [XAudio2Xbox (contenu de l'API)](/fr/reference/audio/xaudio2xbox/xaudio2xbox_members)
  * Fonctions
    * [XAudio2CreateWithSharedContexts](/fr/reference/audio/xaudio2xbox/functions/xaudio2createwithsharedcontexts)

## Voir aussi

[Liste des exemples du Microsoft Game Development Kit](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/development-downloads/gdk-samples-list)


## Related topics

- [XDK vs GDK audio API comparison](/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api.md)
- [Comparación de las API de audio del XDK y el GDK](/es/build/console-features/audio/overviews/comparison-of-xdk-and-gdk-audio-api.md)
- [Configurer et installer le GDK](/fr-CA/home/setup-install/get-started.md)
- [XR-003 Qualité du titre pour la soumission](/fr-CA/publishing/certification/xr/xr-003.md)
- [XBOX Requirements pour les jeux XBOX](/fr/publishing/certification/xbox-requirements.md)
