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

# Solução de problemas do chat de voz

> Solucione problemas do chat de voz do PlayFab Party usando indicadores de chat, diagnósticos de dispositivos de áudio e verificações de estado de mudo para corrigir casos em que os jogadores não conseguem ouvir uns aos outros.

Se dois jogadores estiverem tentando conversar e um ou ambos não conseguirem ouvir o outro, experimente estas etapas de solução de problemas.

## Verificar os indicadores de chat

Os indicadores de chat do PlayFab Party podem ser usados para solucionar problemas de áudio.

Use `PartyLocalChatControl::GetLocalChatIndicator()` para inspecionar o estado instantâneo de áudio do controle de chat local. Um controle de chat íntegro deve retornar `PartyLocalChatControlChatIndicator::Silent` ou `PartyLocalChatControlChatIndicator::Talking`, dependendo de a biblioteca estar detectando voz na entrada do microfone.

* Se `PartyLocalChatControlChatIndicator::AudioInputMuted` for retornado, o fluxo de áudio de saída do controle de chat foi silenciado anteriormente por meio de uma chamada a `PartyLocalChatControl::SetAudioInputMuted(true)`, e o mudo deve ser desativado chamando `PartyLocalChatControl::SetAudioInputMuted(false)`

* Se `PartyLocalChatControlChatIndicator::NoAudioInput` for retornado, a entrada de áudio do controle de chat local nunca foi definida chamando `PartyLocalChatControl::SetAudioInputMuted()` ou a entrada de áudio não foi inicializada. Continue na próxima [seção](#verify-that-the-audio-device-is-successfully-initialized) para obter dicas sobre como diagnosticar falhas de inicialização da entrada de áudio.

Use `PartyLocalChatControl::GetChatIndicator()` para inspecionar o estado da entrada de áudio de um controle de chat remoto, em relação a um controle de chat local.

* Se `PartyChatControlChatIndicator::Silent` for retornado quando você esperava ouvir áudio, isso pode significar que há um problema com o dispositivo de áudio remoto ou que as permissões de chat no dispositivo remoto não estão configuradas para enviar áudio a este controle de chat. Continue na [seção](#verify-that-the-chat-controls-have-the-right-chat-permissions) seguinte se isso parecer com o que você está enfrentando.

* Se `PartyChatControlChatIndicator::Talking` for retornado, mas você ainda não conseguir ouvir nenhum áudio, pode haver um problema com o dispositivo de saída de áudio local. Continue na próxima [seção](#verify-that-the-audio-device-is-successfully-initialized) para saber como verificar se um dispositivo de áudio está íntegro.

* Se `PartyChatControlChatIndicator::IncomingVoiceDisabled` for retornado, isso significa que as permissões de chat do controle de chat local não foram configuradas para permitir áudio do controle de chat remoto. Continue na seção de [permissão de chat](#verify-that-the-chat-controls-have-the-right-chat-permissions).

* Se `PartyChatControlChatIndicator::IncomingCommunicationsMuted` for retornado, isso significa que o áudio de entrada foi silenciado por meio de uma chamada anterior a `PartyLocalChatControl::SetIncomingAudioMuted()`. Chame `PartyLocalChatControl::SetIncomingAudioMuted()` para reativar o som do controle de chat remoto.

## Verificar se o dispositivo de áudio foi inicializado com êxito

Pouco depois de chamar `PartyLocalChatControl::SetAudioInput()` ou `PartyLocalChatControl::SetAudioOutput()`, você receberá um `PartyLocalChatAudioInputChangedStateChange` ou um `PartyLocalChatAudioOutputChangedStateChange`. Ambas as alterações de estado conterão informações que podem ajudar você a solucionar qualquer problema relacionado a dispositivos de áudio. Essas alterações de estado contêm um campo `PartyAudioInputState` e um campo `PartyAudioOutputState` que fornecerão informações sobre o estado do dispositivo de áudio. Se o estado do dispositivo de áudio for diferente de `Initialized`, isso significa que o PlayFab Party não conseguiu usar o dispositivo de áudio desejado. O campo `errorDetail` na alteração de estado também pode ser usado para obter mais informações sobre a situação. Chame `PartyManager::GetErrorMessage()` para obter a forma legível do detalhe do erro.

<Note>
  Por padrão, os controles de chat não estarão associados a nenhum dispositivo de áudio. Certifique-se de chamar `PartyLocalChatControl::SetAudioInput()` e `PartyLocalChatControl::SetAudioOutput()` em todos os seus controles de chat.
</Note>

## Verificar se os controles de chat têm as permissões de chat corretas

Use `PartyLocalChatControl::GetPermissions()` para consultar as `PartyChatPermissionOptions` entre dois controles de chat. Por exemplo, se uma usuária Alice não consegue ouvir outro usuário Bob, você deverá garantir que Alice tenha permissão para receber áudio de Bob e que Bob tenha permissão para enviar áudio para Alice.

No dispositivo de Alice:

```cpp theme={null}
PartyChatPermissionOptions chatPermissions;
PartyError error = localChatControlAlice->GetPermissions(remoteChatControlBob, &chatPermissions);
if (PARTY_SUCCEEDED(error))
{
    if (static_cast<bool>(chatPermissions & PartyChatPermissionOptions::ReceiveAudio))
    {
        printf("Alice can receive audio from Bob!");
    }
}
```

No dispositivo de Bob:

```cpp theme={null}
PartyChatPermissionOptions chatPermissions;
PartyError error = localChatControlBob->GetPermissions(remoteChatControlAlice, &chatPermissions);
if (PARTY_SUCCEEDED(error))
{
    if (static_cast<bool>(chatPermissions & PartyChatPermissionOptions::SendAudio))
    {
        printf("Bob can send audio to Alice!");
    }
}
```

## Verificar o dispositivo padrão versus o dispositivo de comunicação padrão no Windows

Um ponto frequente de confusão em relação ao áudio no Windows envolve os conceitos de dispositivo padrão e dispositivo de comunicação padrão. O Windows dá suporte a ambos os conceitos, e eles podem ser dispositivos diferentes. Por design, o PlayFab Party usa o dispositivo de comunicação padrão na versão para Windows da biblioteca quando `AudioDeviceSelectionType::SystemDefault` é passado para `PartyLocalChatControl::SetAudioInput` ou `PartyLocalChatControl::SetAudioOutput`. A solução de problemas e os testes devem sempre ser realizados em relação ao dispositivo de comunicação padrão.


## Related topics

- [Solución de problemas del chat de voz](/es/services/playfab/community/voice-communications/concepts-audio-troubleshooting.md)
- [XAG 119: Chat de voz a texto y de texto a voz](/es/build/game-principles/accessibility/xag-deep-dives/xag-119-chat.md)
- [Características de PlayFab Party](/es/services/playfab/multiplayer/networking/party-features.md)
- [Notas de versão do SDK C++ do PlayFab Multiplayer](/pt-BR/services/playfab/multiplayer/lobby/lobby-matchmaking-sdks/lobby-and-matchmaking-release-notes.md)
- [Notas de versão do PlayFab Party](/pt-BR/services/playfab/multiplayer/networking/release-notes.md)
