Pular para o conteúdo principal
Use o Game Chat 2 para adicionar comunicações por chat de voz e de texto ao seu aplicativo, respeitando as configurações de privacidade dos usuários e cumprindo os requisitos de títulos do GDK para console XBOX relacionados ao chat de voz e de texto. O Game Chat 2 depende do seu título do GDK para fornecer o transporte de rede. Se você estiver procurando uma solução completa que inclua tanto o áudio do chat quanto o transporte, considere o Microsoft Azure PlayFab Party. Para obter mais informações sobre referências específicas da API, consulte Conteúdo da API (Game Chat 2).
As APIs do Game Chat 2 e do PlayFab Party usam a mesma funcionalidade interna da plataforma e não podem ser usadas em paralelo em um título.
O Game Chat 2 oferece os recursos mostrados na tabela a seguir para gerenciar as comunicações do seu jogo. O aplicativo informa à biblioteca quais usuários do dispositivo local e quais usuários dos dispositivos remotos devem conversar entre si. Em seguida, o aplicativo configura os relacionamentos entre cada usuário. O Game Chat 2 captura o áudio dos microfones dos usuários locais, faz o controle automático de ganho e a detecção de atividade de voz, codifica os dados e, em seguida, expõe os dados de áudio a serem entregues às instâncias remotas do Game Chat 2 por meio de chat_manager::start/finish_processing_data_frames. O aplicativo entrega os dados contidos no objeto game_chat_state_change às instâncias remotas do Game Chat 2 especificadas no mesmo objeto. Ao receber os dados, as instâncias remotas do aplicativo os enviam à própria instância do Game Chat 2 por meio de chat_manager::process_incoming_data. O Game Chat 2 decodifica os dados recebidos e os renderiza no dispositivo de áudio do usuário local.

Privilégios de comunicação e privacidade

O Game Chat 2 aplica os privilégios e os requisitos de privacidade dos serviços do XBOX. Os dados de áudio não são gerados por usuários que não têm privilégios de comunicação. Os dados de áudio não são renderizados para usuários bloqueados pelas configurações de privacidade.

Inicialização da rede

Você não precisa aguardar a inicialização da rede antes de inicializar a biblioteca do Game Chat 2. No entanto, precisará aguardar a inicialização da rede antes de criar quaisquer sockets para enviar/receber pacotes do Game Chat 2. O Game Chat 2 não gerará nenhum pacote para envio até que a rede seja inicializada. Para obter mais informações sobre a inicialização da rede, consulte Inicialização e conectividade da rede.

Suspensão/retomada

Você deve se registrar para os eventos de suspensão e retomada por meio de RegisterAppStateChangeNotification. Na suspensão, você deve limpar o Game Chat 2 chamando chat_manager::cleanup(). Essa chamada pode levar algumas centenas de milissegundos para ser concluída; por isso, você deve fazê-la em paralelo ou de forma assíncrona em relação à sua outra lógica de suspensão, para evitar que o manipulador de suspensão atinja o tempo limite. A chamada cleanup não precisa ser concluída antes que o manipulador de suspensão retorne. Na retomada, depois que a chamada cleanup for concluída, você deve chamar chat_manager::singleton_instance().initialize(...) para reinicializar o Game Chat 2. Deixar de chamar cleanup e initialize em uma alteração de estado de suspensão/retomada resultará em travamentos do título se você continuar tentando usar o Game Chat 2.

Alterações na API da Plataforma Universal do Windows (UWP) e do XBOX One ERA para o GDK

As alterações a seguir foram feitas na API para oferecer suporte ao Game Chat 2.
  • game_chat_audio_encoding_type_and_bitrate foi atualizado para game_chat_audio_encoding_bitrate.
  • set_audio_encoding_type_and_bitrate foi atualizado para set_audio_encoding_bitrate.
  • audio_encoding_type_and_bitrate foi atualizado para audio_encoding_bitrate.
  • game_chat_communication_relationship_adjuster::privilege foi atualizado para indicar problemas de privilégio que podem ser resolvidos pelo título.
  • game_chat_communication_relationship_adjuster::privilege_check_failed foi adicionado.
  • A API chat_manager::set_legacy_era_uwp_compat_mode_enabled() foi adicionada para permitir que a versão do GDK do Game Chat 2 interopere com as versões UWP e ERA do Game Chat 2.
  • O Game Chat 2 só estará disponível se o recurso XGameRuntimeFeature::XNetworking estiver disponível, conforme indicado por XGameRuntimeIsFeatureAvailable.
  • Os usuários são adicionados ao Microsoft Game Development Kit com XUserAddAsync antes de serem adicionados à instância do Game Chat 2.
  • O suporte à detecção de foco de áudio estará disponível em uma versão prévia futura do GDK.

Alterações funcionais da UWP e do ERA para o GDK

  • Aguarde a inicialização da rede ao iniciar o título, e depois de retomá-lo, antes de enviar pacotes em nome do Game Chat 2. O Game Chat 2 é inicializado antes da rede.
  • Registre-se para os eventos de suspensão e retomada por meio de RegisterAppStateChangeNotification. Após a suspensão, limpe o Game Chat 2 com chat_manager::cleanup(). Após a retomada, reinicialize o Game Chat 2. Ele pode travar se você o usar ao longo de um ciclo de suspensão/retomada.

Documentação de referência da API

Confira também

Conteúdo da API (GameChat2) Usando a API C++ do Game Chat 2 Manipulação de áudio em tempo real Microsoft Game Development Kit
Última modificação em 8 de outubro de 2026