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

# PlayFab Party 聊天权限和静音

> 在聊天控件对之间配置 PlayFab Party 聊天权限和静音，以控制团队和玩家之间的传入和传出语音以及文本。

## 概述

PlayFab Party 让你能够精细控制玩家彼此间的通信方式。PlayFab Party 不指定团队或频道，而是要求定义每对聊天控件之间的显式权限。聊天权限系统允许你控制任何一对聊天控件之间的传入和传出语音通信以及传入文本通信。

## 聊天权限

聊天控件之间的通信默认是禁用的，游戏需要在每对聊天控件之间设置正确的 `PartyChatPermissionOptions`。聊天权限应反映每个聊天控件之间的关系，由你尝试实现的场景决定。例如，在团队对战场景中，你可能希望设置聊天权限以允许同一团队成员之间的所有类型通信，阻止对立团队成员之间的音频通信，并允许会话中每个人之间接收文本。

以下示例展示了如何在本地聊天控件和远程聊天控件之间启用所有通信。变量 `localChatControlA` 指向有效的 `PartyLocalChatControl` 对象，而 `remoteChatControlB` 指向表示远程设备上的聊天控件的有效 `PartyChatControl` 对象。

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

<Note>
  请注意，聊天权限仅在本地应用。在前面的示例中，只有当 `remoteChatControlB` 在远程配置为允许与 `localChatControlA` 的所有通信时，才会发生完全的双向通信
</Note>

## 静音

游戏还能够将传出音频静音 (`PartyLocalChatControl::SetAudioInputMuted()`) 以及来自远程聊天控件的传入音频静音 (`PartyLocalChatControl::SetIncomingAudioInputMuted()`)。这些静音的状态可以通过它们各自的获取器访问，也通过 `PartyLocalChatControl::GetChatIndicator()` 和 `PartyLocalChatControl::GetLocalChatIndicator()` 返回的聊天指示器反映出来。

静音特别适用于向玩家提供某种形式的临时控制，而无需更改你可能在游戏会话开始时设置的任何聊天权限。

## 如何配置常见场景

### 按键讲话

按键讲话应使用本地静音实现。调用 `PartyLocalChatControl::SetAudioInputMuted(false)` 以允许讲话，`PartyLocalChatControl::SetAudioInputMuted(true)` 以限制讲话。

### 团队

假设我们有 4 个用户 A、B、C 和 D，每个人使用自己的独立设备。用户 A 和用户 B 在蓝队，用户 C 和用户 D 在红队。

在用户 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);
```

### 广播

假设用户 A 是发布命令的领导者，用户 B、C 和 D 只能听。

在用户 A 的设备上：

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

在用户 B 的设备上：

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

在用户 C 的设备上：

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

在用户 D 的设备上：

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


## Related topics

- [了解 PlayFab Party 聊天的工作原理](/zh-CN/services/playfab/community/voice-communications/concepts-chat.md)
- [XBOX 要求](/zh-CN/services/playfab/multiplayer/networking/xbox-requirements.md)
- [使用实时音频操作应用自定义语音效果](/zh-CN/services/playfab/community/voice-communications/concepts-realtime-audio-manipulation.md)
- [适用于 PlayFab Party 的 XBOX Live 辅助库](/zh-CN/services/playfab/multiplayer/networking/party-xbox-live-guide.md)
- [PartyXblChatPermissionInfo](/zh-CN/services/playfab/multiplayer/networking/xblreference/structs/partyxblchatpermissioninfo.md)
