> ## 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()`) 設為靜音。這些靜音的狀態
可以透過各自的 getter 存取，也會反映在
`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-TW/services/playfab/multiplayer/networking/release-notes.md)
- [XBOX 合作夥伴加入流程:取得存取權限與發行](/zh-TW/home/onboarding.md)
- [聊天](/zh-CN/services/xbox-services/multiplayer/chat/gc-chat-toc.md)
- [XR015 管理玩家通訊](/zh-TW/publishing/certification/fma/xr-015.md)
- [XBOX 主機遊戲的認證測試 XBOX 需求](/zh-TW/publishing/certification/console-cert-tested-requirements.md)
