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

# Solución de problemas del chat de voz

> Solucione problemas del chat de voz de PlayFab Party mediante indicadores de chat, diagnósticos de dispositivos de audio y comprobaciones del estado de silencio para arreglar situaciones en las que los jugadores no pueden oírse entre sí.

Si dos jugadores intentan chatear juntos y uno o ambos no pueden oírse entre sí, pruebe estos pasos de solución de problemas.

## Comprobar los indicadores de chat

Los indicadores de chat de PlayFab Party se pueden usar para solucionar problemas de audio.

Use `PartyLocalChatControl::GetLocalChatIndicator()` para inspeccionar el estado de audio instantáneo del control de chat local. Un control de chat en buen estado debería devolver `PartyLocalChatControlChatIndicator::Silent` o `PartyLocalChatControlChatIndicator::Talking`, según si la biblioteca está detectando voz procedente de la entrada del micrófono.

* Si se devuelve `PartyLocalChatControlChatIndicator::AudioInputMuted`, la secuencia de audio saliente del control de chat se silenció previamente mediante una llamada a `PartyLocalChatControl::SetAudioInputMuted(true)` y el silencio debe deshabilitarse llamando a `PartyLocalChatControl::SetAudioInputMuted(false)`.

* Si se devuelve `PartyLocalChatControlChatIndicator::NoAudioInput`, o bien la entrada de audio del control de chat local nunca se estableció llamando a `PartyLocalChatControl::SetAudioInputMuted()`, o bien la entrada de audio no se pudo inicializar. Continúe con la siguiente [sección](#verify-that-the-audio-device-is-successfully-initialized) para obtener sugerencias sobre cómo diagnosticar errores de inicialización de la entrada de audio.

Use `PartyLocalChatControl::GetChatIndicator()` para inspeccionar el estado de entrada de audio de un control de chat remoto, en relación con un control de chat local.

* Si se devuelve `PartyChatControlChatIndicator::Silent` cuando esperaba oír audio, esto podría significar que hay un problema con el dispositivo de audio remoto o que los permisos de chat del dispositivo remoto no están configurados para enviar audio a este control de chat. Continúe con la siguiente [sección](#verify-that-the-chat-controls-have-the-right-chat-permissions) si esto se parece a lo que está experimentando.

* Si se devuelve `PartyChatControlChatIndicator::Talking` pero aún no puede oír ningún audio, es posible que haya un problema con el dispositivo de salida de audio local. Continúe con la siguiente [sección](#verify-that-the-audio-device-is-successfully-initialized) para aprender a comprobar si un dispositivo de audio está en buen estado.

* Si se devuelve `PartyChatControlChatIndicator::IncomingVoiceDisabled`, esto significa que los permisos de chat del control de chat local no se han configurado para permitir audio procedente del control de chat remoto. Continúe con la sección de [permisos de chat](#verify-that-the-chat-controls-have-the-right-chat-permissions).

* Si se devuelve `PartyChatControlChatIndicator::IncomingCommunicationsMuted`, esto significa que el audio entrante se ha silenciado mediante una llamada anterior a `PartyLocalChatControl::SetIncomingAudioMuted()`. Llame a `PartyLocalChatControl::SetIncomingAudioMuted()` para reactivar el audio del control de chat remoto.

## Comprobar que el dispositivo de audio se ha inicializado correctamente

Poco después de llamar a `PartyLocalChatControl::SetAudioInput()` o `PartyLocalChatControl::SetAudioOutput()`, recibirá un `PartyLocalChatAudioInputChangedStateChange` o un `PartyLocalChatAudioOutputChangedStateChange`. Ambos cambios de estado contendrán información que puede ayudarle a solucionar cualquier problema relacionado con los dispositivos de audio. Estos cambios de estado contienen un campo `PartyAudioInputState` y un campo `PartyAudioOutputState` que le proporcionarán información sobre el estado del dispositivo de audio. Si el estado del dispositivo de audio es distinto de `Initialized`, significa que PlayFab Party no pudo usar el dispositivo de audio deseado. El campo `errorDetail` del cambio de estado también se puede usar para obtener más información sobre la situación. Llame a `PartyManager::GetErrorMessage()` para obtener la forma legible por humanos del detalle del error.

<Note>
  De forma predeterminada, los controles de chat no estarán asociados con ningún dispositivo de audio. Asegúrese de llamar a `PartyLocalChatControl::SetAudioInput()` y `PartyLocalChatControl::SetAudioOutput()` en todos sus controles de chat.
</Note>

## Comprobar que los controles de chat tienen los permisos de chat correctos

Use `PartyLocalChatControl::GetPermissions()` para consultar las `PartyChatPermissionOptions` entre dos controles de chat. Por ejemplo, si una usuaria llamada Alice no puede oír a otro usuario llamado Bob, querrá asegurarse de que Alice tiene permiso para recibir audio de Bob y de que Bob tiene permiso para enviar audio a Alice.

En el 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!");
    }
}
```

En el 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!");
    }
}
```

## Comprobar el dispositivo predeterminado frente al dispositivo de comunicaciones predeterminado en Windows

Un punto de confusión frecuente respecto al audio en Windows tiene que ver con los conceptos de dispositivo predeterminado y dispositivo de comunicaciones predeterminado. Windows admite ambos conceptos, y pueden ser dispositivos diferentes. PlayFab Party, por diseño, usa el dispositivo de comunicaciones predeterminado en la versión de Windows de la biblioteca cuando se pasa `AudioDeviceSelectionType::SystemDefault` a `PartyLocalChatControl::SetAudioInput` o `PartyLocalChatControl::SetAudioOutput`. La solución de problemas y las pruebas siempre deben realizarse en relación con el dispositivo de comunicaciones predeterminado.


## Related topics

- [Directrices de experiencia de usuario de texto a voz y entrada de texto de PlayFab Party](/es/services/playfab/community/voice-communications/party-text-to-speech-ux-guidelines.md)
- [Solución de problemas](/es/services/xbox-services/develop/troubleshooting/index.md)
- [Solución de problemas de errores de inicio de sesión y sandbox](/es/services/xbox-services/develop/troubleshooting/live-troubleshoot-sandboxes.md)
- [Solución de problemas y comentarios](/es/build/core-features/common/game-streaming/tak-editor/game-streaming-tak-editor-troubleshooting.md)
- [Preguntas frecuentes y solución de problemas de multijugador](/es/services/xbox-services/multiplayer/mpsd/concepts/live-multiplayer-2015-faq.md)
