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

# Permisos de chat y silenciado de PlayFab Party

> Configure los permisos de chat y el silenciado de PlayFab Party entre pares de controles de chat para controlar la voz y el texto entrantes y salientes entre equipos y jugadores.

## Información general

PlayFab Party le ofrece un control detallado sobre cómo pueden comunicarse sus jugadores entre sí. En lugar de
especificar equipos o canales, PlayFab Party requiere que se definan permisos explícitos entre cada par de controles de
chat. El sistema de permisos de chat le permite controlar la comunicación de voz entrante y saliente, así como la comunicación de texto entrante, entre cualquier par de controles de chat.

## Permisos de chat

La comunicación entre controles de chat está deshabilitada de forma predeterminada, y corresponde al juego establecer las
`PartyChatPermissionOptions` correctas entre cada par de controles de chat. Los permisos de chat deben reflejar la relación entre
cada control de chat según lo determine el escenario que intenta lograr. Por ejemplo, en un escenario de equipo contra equipo,
podría querer establecer los permisos de chat para permitir todos los tipos de comunicación entre miembros del mismo equipo, bloquear
la comunicación de audio entre miembros del equipo contrario y permitir la recepción de texto entre todos los participantes de la sesión.

El ejemplo siguiente muestra cómo habilitar toda la comunicación entre un control de chat local y uno remoto. La variable
`localChatControlA` apunta a un objeto `PartyLocalChatControl` válido, mientras que `remoteChatControlB` apunta a un
objeto `PartyChatControl` válido que representa un control de chat en un dispositivo remoto.

```cpp theme={null}
PartyChatPermissionOptions allOptions = PartyChatPermissionOptions::SendAudio | PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText;
localChatControlA->SetPermissions(remoteChatControlB, allOptions);
```

<Note>
  Tenga en cuenta que los permisos de chat solo se aplican localmente. En el ejemplo anterior, la comunicación bidireccional completa solo se producirá si `remoteChatControlB` está configurado de forma remota para permitir toda la comunicación con `localChatControlA`.
</Note>

## Silenciado

Los juegos también tienen la capacidad de silenciar el audio saliente (`PartyLocalChatControl::SetAudioInputMuted()`), así como
el audio entrante procedente de un control de chat remoto (`PartyLocalChatControl::SetIncomingAudioInputMuted()`). Se puede acceder a los estados de
estos silencios mediante sus captadores respectivos, y también se reflejan en los indicadores de chat devueltos
por `PartyLocalChatControl::GetChatIndicator()` y `PartyLocalChatControl::GetLocalChatIndicator()`.

Los silencios son especialmente útiles para dar alguna forma de control temporal al jugador sin tener que cambiar ninguno de los
permisos de chat que pueda haber establecido al principio de la sesión de juego.

## Cómo configurar escenarios populares

### Pulsar para hablar

La función de pulsar para hablar debe implementarse mediante silenciado local. Llame a `PartyLocalChatControl::SetAudioInputMuted(false)` para permitir
hablar y a `PartyLocalChatControl::SetAudioInputMuted(true)` para restringirlo.

### Equipos

Supongamos que tenemos 4 usuarios, A, B, C y D, cada uno en su propio dispositivo independiente. El usuario A y el usuario B están en el equipo azul, y
el usuario C y el usuario D están en el equipo rojo.

En el dispositivo del usuario A:

```cpp theme={null}
// Enable all communication with teammate B
localChatControlA->SetPermissions(chatControlB, PartyChatPermissionOptions::SendAudio | PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText);

// Disable all communication with opponents
localChatControlA->SetPermissions(chatControlC, PartyChatPermissionOptions::None);
localChatControlA->SetPermissions(chatControlD, PartyChatPermissionOptions::None);
```

### Difusión

Supongamos que el usuario A es el líder que da órdenes, y los usuarios B, C y D solo pueden escuchar.

En el dispositivo del usuario A:

```cpp theme={null}
localChatControlA->SetPermissions(chatControlB, PartyChatPermissionOptions::SendAudio);
localChatControlA->SetPermissions(chatControlC, PartyChatPermissionOptions::SendAudio);
localChatControlA->SetPermissions(chatControlD, PartyChatPermissionOptions::SendAudio);
```

En el dispositivo del usuario B:

```cpp theme={null}
localChatControlB->SetPermissions(chatControlA, PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText);
localChatControlB->SetPermissions(chatControlC, PartyChatPermissionOptions::None);
localChatControlB->SetPermissions(chatControlD, PartyChatPermissionOptions::None);
```

En el dispositivo del usuario C:

```cpp theme={null}
localChatControlC->SetPermissions(chatControlA, PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText);
localChatControlC->SetPermissions(chatControlB, PartyChatPermissionOptions::None);
localChatControlC->SetPermissions(chatControlD, PartyChatPermissionOptions::None);
```

En el dispositivo del usuario D:

```cpp theme={null}
localChatControlD->SetPermissions(chatControlA, PartyChatPermissionOptions::ReceiveAudio | PartyChatPermissionOptions::ReceiveText);
localChatControlD->SetPermissions(chatControlB, PartyChatPermissionOptions::None);
localChatControlD->SetPermissions(chatControlC, PartyChatPermissionOptions::None);
```


## Related topics

- [Descripción de cómo funciona el chat de PlayFab Party](/es/services/playfab/community/voice-communications/concepts-chat.md)
- [Biblioteca auxiliar de XBOX Live para PlayFab Party](/es/services/playfab/multiplayer/networking/party-xbox-live-guide.md)
- [Requisitos de XBOX](/es/services/playfab/multiplayer/networking/xbox-requirements.md)
- [Notas de la versión de PlayFab Party](/es/services/playfab/multiplayer/networking/release-notes.md)
- [Documentación de PlayFab Community](/es/services/playfab/community/index.md)
