Passer au contenu principal
Utilisez Game Chat 2 pour ajouter des communications par chat vocal et textuel à votre application tout en respectant les paramètres de confidentialité de vos utilisateurs et en satisfaisant aux exigences des titres GDK pour console XBOX relatives au chat vocal et textuel. Game Chat 2 s’appuie sur votre titre GDK pour fournir le transport réseau. Si vous recherchez une solution tout-en-un qui inclut à la fois l’audio du chat et le transport, envisagez Microsoft Azure PlayFab Party. Pour plus d’informations sur les références propres à l’API, consultez Sommaire de l’API (Game Chat 2).
Les API Game Chat 2 et PlayFab Party utilisent les mêmes fonctionnalités internes de la plateforme et ne peuvent pas être utilisées en parallèle dans un titre.
Game Chat 2 fournit les fonctionnalités présentées dans le tableau suivant pour gérer les communications de votre jeu. L’application informe la bibliothèque des utilisateurs de l’appareil local et des utilisateurs des appareils distants qui sont censés discuter ensemble. L’application configure ensuite les relations entre chaque utilisateur. Game Chat 2 interroge l’audio des microphones des utilisateurs locaux, effectue le contrôle automatique du gain et la détection de l’activité vocale, encode les données, puis expose les données audio à transmettre aux instances distantes de Game Chat 2 via chat_manager::start/finish_processing_data_frames. L’application transmet les données contenues dans l’objet game_chat_state_change aux instances distantes de Game Chat 2 spécifiées dans ce même objet. À la réception des données, les instances distantes de l’application les soumettent à leur propre instance de Game Chat 2 via chat_manager::process_incoming_data. Game Chat 2 décode les données entrantes, puis les restitue sur l’appareil audio de l’utilisateur local.

Privilèges de communication et confidentialité

Game Chat 2 applique les exigences de privilèges et de confidentialité des services XBOX. Aucune donnée audio n’est générée par les utilisateurs qui ne disposent pas des privilèges de communication. Aucune donnée audio n’est restituée pour les utilisateurs bloqués via les paramètres de confidentialité.

Initialisation du réseau

Vous n’avez pas besoin d’attendre l’initialisation du réseau avant d’initialiser la bibliothèque Game Chat 2. Vous devrez toutefois attendre l’initialisation du réseau avant de créer des sockets pour envoyer ou recevoir des paquets Game Chat 2. Game Chat 2 ne génère aucun paquet à envoyer tant que le réseau n’est pas initialisé. Pour plus d’informations sur l’initialisation du réseau, consultez Initialisation et connectivité du réseau.

Suspension et reprise

Vous devez vous inscrire aux événements de suspension et de reprise via RegisterAppStateChangeNotification. Lors de la suspension, vous devez nettoyer Game Chat 2 en appelant chat_manager::cleanup(). Cet appel peut prendre quelques centaines de millisecondes ; vous devez donc l’effectuer en parallèle ou de manière asynchrone par rapport à votre autre logique de suspension, afin d’éviter que votre gestionnaire de suspension n’expire. L’appel cleanup n’a pas besoin d’être terminé avant le retour de votre gestionnaire de suspension. Lors de la reprise, une fois l’appel cleanup terminé, vous devez appeler chat_manager::singleton_instance().initialize(...) pour réinitialiser Game Chat 2. Si vous n’appelez pas cleanup et initialize lors d’un changement d’état de suspension/reprise, votre titre plantera si vous continuez à utiliser Game Chat 2.

Modifications de l’API de la plateforme Windows universelle (UWP) et de l’ERA XBOX One vers le GDK

Les modifications suivantes ont été apportées à l’API pour prendre en charge Game Chat 2.
  • game_chat_audio_encoding_type_and_bitrate a été remplacé par game_chat_audio_encoding_bitrate.
  • set_audio_encoding_type_and_bitrate a été remplacé par set_audio_encoding_bitrate.
  • audio_encoding_type_and_bitrate a été remplacé par audio_encoding_bitrate.
  • game_chat_communication_relationship_adjuster::privilege a été mis à jour pour indiquer les problèmes de privilèges que le titre peut résoudre.
  • game_chat_communication_relationship_adjuster::privilege_check_failed a été ajouté.
  • L’API chat_manager::set_legacy_era_uwp_compat_mode_enabled() a été ajoutée afin de permettre à la version GDK de Game Chat 2 d’interagir avec les versions UWP et ERA de Game Chat 2.
  • Game Chat 2 n’est disponible que si la fonctionnalité XGameRuntimeFeature::XNetworking est disponible, comme l’indique XGameRuntimeIsFeatureAvailable.
  • Les utilisateurs sont ajoutés au Microsoft Game Development Kit avec XUserAddAsync avant d’être ajoutés à l’instance de Game Chat 2.
  • La prise en charge de la détection du focus audio sera disponible dans une future préversion du GDK.

Modifications fonctionnelles de l’UWP et de l’ERA vers le GDK

  • Attendez l’initialisation du réseau au lancement du titre, et après la reprise de votre titre, avant d’envoyer des paquets pour le compte de Game Chat 2. Game Chat 2 s’initialise avant le réseau.
  • Inscrivez-vous aux événements de suspension et de reprise via RegisterAppStateChangeNotification. Après la suspension, nettoyez Game Chat 2 avec chat_manager::cleanup(). Après la reprise, réinitialisez Game Chat 2. Il peut planter si vous l’utilisez au-delà d’un cycle de suspension/reprise.

Documentation de référence de l’API

Voir aussi

Sommaire de l’API (GameChat2) Utilisation de l’API C++ de Game Chat 2 Manipulation audio en temps réel Microsoft Game Development Kit
Dernière modification le 8 octobre 2026