> ## 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 语音和文本聊天概述，涵盖 PartyLocalChatControl、网络、硬件编解码器以及内置的语音转文本和翻译功能。

借助 PlayFab Party，你可以轻松地为游戏添加语音和文本通信。

PlayFab Party 聊天：

* **灵活**：让你完全控制希望玩家如何进行通信。
* **强大**：在支持的平台上使用硬件编解码器加速。
* **易于访问**：由 Azure Cognitive Services 提供支持，内置语音转文本、文本转语音和翻译功能，且易于启用。
* **高效**：让你的聊天系统与网络层紧密集成，意味着语音数据以最高效的方式发送到需要的地方。

## 聊天基础

要向游戏添加语音和文本通信，你首先需要创建 `PartyLocalChatControl` 对象。此 `PartyLocalChatControl` 对象将作为与特定本地用户相关的聊天操作的管理对象，允许你选择输入和输出设备、静音状态和可访问性首选项。每个本地用户不能有超过一个聊天控件。要使本地聊天控件与另一个聊天控件通信，必须满足以下要求：

1. 两个聊天控件必须位于同一网络中。
2. 两个聊天控件之间的[聊天权限](/services/playfab/community/voice-communications/concepts-chat-permissions-and-muting)必须允许音频和/或文本通信流动。

准备好本地聊天控件后，你现在可以通过调用 `PartyNetwork::ConnectChatControl()` 使其连接到网络。连接后，将通过 `PartyChatControlJoinedNetworkStateChange` 状态更改通知网络中的其他设备你的聊天控件已加入网络。对于已经在网络中的每个其他聊天控件，你也将收到一个 `PartyChatControlJoinedNetworkStateChange`，并立即可以与它们通信。

## 音频输入和输出

Party 允许你通过 `PartyLocalChatControl::SetAudioInput()` 和 `PartyLocalChatControl::SetAudioOutput()` 方法选择聊天控件将使用的音频设备。使用 `PartyAudioDeviceSelectionType` 枚举更改这些方法的行为：

### `PartyAudioDeviceSelectionType::None`

选择此音频设备选择类型时，聊天控件将不使用任何音频设备。此音频设备选择类型是默认设置。

### `PartyAudioDeviceSelectionType::SystemDefault`

选择此音频设备选择类型时，聊天控件将尝试使用系统的默认通信设备。在 Windows 上，玩家可以随时通过 Windows 声音控制面板更改此设备，Party 将自动响应这些更改。此选择类型在 XBOX One 上不受支持，并且如果你有多个本地用户同时参与聊天，通常不建议使用。

### `PartyAudioDeviceSelectionType::PlatformUserDefault`

选择此音频设备选择类型时，`PartyLocalChatControl::SetAudioInput()` 和 `PartyLocalChatControl::SetAudioOutput()` 要求将 `audioDeviceSelectionContext` 参数设置为平台用户 ID。然后 Party 尝试使用与该用户关联的平台默认通信设备。在 XBOX One 上，`audioDeviceSelectionContext` 应该是与当前绑定到聊天控件的用户关联的 XBOX 用户 ID。

### `PartyAudioDeviceSelectionType::Manual`

选择此音频设备选择类型时，`PartyLocalChatControl::SetAudioInput()` 和 `PartyLocalChatControl::SetAudioOutput()` 将使用 `audioDeviceSelectionContext` 参数作为有效的音频设备标识符，并尝试使用与该标识符匹配的任何设备。请参阅下表以查看 PlayFab Party 支持哪种标识符：

| **平台**     | **使用什么**                                                                                                                                                                                                               |
| :--------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Windows 10 | [`IMMDevice`](https://learn.microsoft.com/en-us/windows/win32/api/mmdeviceapi/nf-mmdeviceapi-immdevice-getid) 或 [`Windows.Media.Devices`](https://learn.microsoft.com/en-us/uwp/api/windows.media.devices.mediadevice) |
| XBOX       | 请参阅 XBOX GDK 文档                                                                                                                                                                                                        |

<Note>
  我们强烈建议在 XBOX One 上使用 `PartyAudioDeviceSelectionType::PlatformUserDefault`，在 Windows 平台上使用 `PartyAudioDeviceSelectionType::SystemDefault`。
</Note>

## 聊天权限和静音

Party 让你能够精细控制玩家彼此间的通信方式。Party 不指定团队或频道，而是要求显式定义每对聊天控件之间的权限。若要详细了解聊天权限、静音以及如何构建常见的聊天场景，请参阅[聊天权限概述](/services/playfab/community/voice-communications/concepts-chat-permissions-and-muting)页面。

## 文本聊天、翻译和审核

Party 还允许你从其他聊天控件发送和接收文本聊天。虽然 `PartyLocalChatControl::SendText()` 方法允许你向任意数量的聊天控件发送文本消息，但你可以放心，只有具有适当 `PartyChatPermissionOptions::ReceiveText` 聊天权限的聊天控件才会接收消息。

也可以通过调用 `PartyLocalChatControl::SetTextChatOptions()` 启用文本聊天翻译。通过设置 `PartyTextChatOptions::TranslateToLocalLanguage` 选项，Party 将把传入的文本消息翻译为本地聊天控件的语言。聊天控件的语言可以在创建聊天控件时选择性配置，并可通过调用 `PartyLocalChatControl::GetLanguage()` 访问。翻译也将应用于传入的语音转文本转录。

文本聊天也提供文本审核。若要详细了解此功能，请参阅[使用文本审核](/services/playfab/community/voice-communications/concepts-text-moderation)页面。

## 无障碍聊天

由 Azure 语音服务提供支持，Party 可以转录玩家语音聊天并从文本合成语音。此功能有多种用途，但主要设计为辅助功能。我们建议将此功能的激活与易于访问的玩家设置关联起来。有关如何使用 Party 提供的辅助功能的更多信息，请参阅[文本转语音指南](/services/playfab/community/voice-communications/party-text-to-speech-ux-guidelines)和[语音转文本指南](/services/playfab/community/voice-communications/party-speech-to-text-ux-guidelines)。

## 音频输入噪声抑制

Party 使你能够在将捕获的麦克风音频传输到远程聊天控件之前抑制其中的背景噪声。这可以显著提高玩家语音音频的质量。有关如何启用噪声抑制的更多信息，请参阅[使用噪声抑制](/services/playfab/community/voice-communications/concepts-noise-suppression)页面。

<Note>
  噪声抑制目前仅可用于 iOS 和 Android。
</Note>

## 后续步骤

* [详细了解 PlayFab Party 聊天权限和静音](/services/playfab/community/voice-communications/concepts-chat-permissions-and-muting)


## Related topics

- [使用文本审核](/zh-CN/services/playfab/community/voice-communications/concepts-text-moderation.md)
- [使用 Microsoft Azure PlayFab Party 添加聊天](/zh-CN/services/xbox-services/multiplayer/chat/playfab-party-intro-chat.md)
- [匹配的工作原理](/zh-CN/services/playfab/multiplayer/matchmaking/how-matchmaking-works.md)
- [Winter Starfall PlayFab 演示游戏概览](/zh-CN/services/playfab/demo-game/overview.md)
- [PlayFab Party 功能](/zh-CN/services/playfab/multiplayer/networking/party-features.md)
