> ## 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 Chat Permissions and Muting

> Configure PlayFab Party chat permissions and muting between pairs of chat controls to control incoming and outgoing voice and text between teams and players.

## 개요

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()`가 반환하는 채팅 표시기에도 반영됩니다.

음소거는 게임 세션 시작 시 설정한 채팅 권한을 변경하지 않고도 플레이어에게 일시적인 제어권을 제공할 때 특히 유용합니다.

## 인기 시나리오 구성 방법

### Push-to-talk

Push-to-talk는 로컬 음소거를 사용하여 구현해야 합니다. `PartyLocalChatControl::SetAudioInputMuted(false)`를 호출하여 발화를 허용하고, `PartyLocalChatControl::SetAudioInputMuted(true)`를 호출하여 제한합니다.

### 팀

각각 별도의 장치를 사용하는 4명의 사용자 A, B, C, D가 있다고 가정하겠습니다. 사용자 A와 B는 Blue 팀에 있고, 사용자 C와 D는 Red 팀에 있습니다.

사용자 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);
```

### 방송(Broadcast)

사용자 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

- [XBOX Live helper library for PlayFab Party](/ko/services/playfab/multiplayer/networking/party-xbox-live-guide.md)
- [Understanding How PlayFab Party chat works](/ko/services/playfab/community/voice-communications/concepts-chat.md)
- [PlayFab Party 릴리스 정보](/ko/services/playfab/multiplayer/networking/release-notes.md)
- [PlayFab Party Typedefs](/ko/services/playfab/multiplayer/networking/reference/typedefs.md)
- [PartyChatPermissionOptions](/ko/services/playfab/multiplayer/networking/reference/enums/partychatpermissionoptions.md)
