了解 PlayFab 群聊天的工作方式
借助 PlayFab Party,可轻松向游戏添加语音和文本通信。
PlayFab Party 聊天包括:
- 灵活性:完全掌控你想要的与玩家交流方式。
- 功能强大:在支持的平台上使用硬件编解码器加速。
- 易于访问:在 Azure 认知服务的支持下,内置语音转文本、文本转语音和翻译功能,而且易于启用。
- 高效:使聊天系统与网络层紧密集成,意味着语音数据在需要时以尽可能高效的方式发送。
聊天基础知识
若要向游戏添加语音和文本通信,首先需要创建一个 PartyLocalChatControl
对象。 此 PartyLocalChatControl
对象将作为与特定本地用户相关的聊天操作的管理对象,可以选择输入和输出设备、静音状态和辅助功能首选项。 每个本地用户不能具有多个聊天控件。 若要使本地聊天控件与其他聊天控件进行通信,必须满足以下要求:
- 两个聊天控件必须在同一个网络中。
- 两个聊天控件之间的聊天权限必须允许音频和/或文本通信。
有了本地聊天控件,现在可以通过调用 PartyNetwork::ConnectChatControl()
将其连接到网络。
在连接后,网络中的其他设备将收到通知,说明你的聊天控件已加入网络并处于 PartyChatControlJoinedNetworkStateChange
状态更改。 你还会收到一个PartyChatControlJoinedNetworkStateChange
,即已经在网络中的每一个其他聊天控制,并能立即与他们通信。
音频输入和输出
群可以通过方法PartyLocalChatControl::SetAudioInput()
和 PartyLocalChatControl::SetAudioOutput()
,选择聊天控件使用哪个音频设备。 使用 PartyAudioDeviceSelectionType
数字来更改这些方法的行为:
PartyAudioDeviceSelectionType::None
选中此音频设备选择类型后,聊天控件将不使用任何音频设备。 此音频设备选择类型为默认类型。
PartyAudioDeviceSelectionType::SystemDefault
选中此音频设备选择类型后,聊天控件将尝试使用系统默认的通信设备。 在 Windows 上,玩家随时可通过 Windows 声音控制面板更改此设备,且群将自动答复这些更改。 如果同时具有多个本地用户参与聊天,Xbox One 不支持此选择类型,通常不推荐。
PartyAudioDeviceSelectionType::PlatformUserDefault
选择此音频设备选择类型时, PartyLocalChatControl::SetAudioInput()
和 PartyLocalChatControl::SetAudioOutput()
要求 audioDeviceSelectionContext
参数设置为平台用户 ID。 然后,群会尝试使用与该用户关联的平台默认通信设备。 在 Xbox One 上, audioDeviceSelectionContext
应为与当前绑定到聊天控件的用户相关联的 Xbox 用户 ID。
PartyAudioDeviceSelectionType::Manual
选择此音频设备选择类型时, PartyLocalChatControl::SetAudioInput()
和 PartyLocalChatControl::SetAudioOutput()
将使用 audioDeviceSelectionContext
参数作为有效的音频设备标识符,并尝试使用匹配该标识符的任何设备。 请参阅下表,了解 PlayFab 群支持哪种类型的标识符:
平台 | 使用方法 |
---|---|
Windows 10 |
IMMDevice 或 Windows.Media.Devices |
Xbox | 请参阅 Xbox GDK 文档 |
注意
强烈推荐在 Xbox One 和 Windows 平台上使用PartyAudioDeviceSelectionType::PlatformUserDefault
和 PartyAudioDeviceSelectionType::SystemDefault
。
聊天权限和静音
群可以让您对玩家相互通信的方式进行细化控制。 群需要显式定义每对聊天控件之间的权限,而不是指定团队或频道。 若要深入了解聊天权限、静音以及如何构建常见聊天方案,请参阅“聊天权限概览”页面。
文本聊天、翻译和审核
群还可通过其他聊天控件发送和接收文本聊天。 虽然使用 PartyLocalChatControl::SendText()
方法可以将文本信息发送到任意数目的聊天控件,但可放心,仅有适当 PartyChatPermissionOptions::ReceiveText
聊天权限的聊天控件才能接收消息。
也可通过调用 PartyLocalChatControl::SetTextChatOptions()
启用文本聊天翻译。 通过设置 PartyTextChatOptions::TranslateToLocalLanguage
选项,群将传入文本消息翻译为本地聊天控件的语言。 可在创建聊天控件期间选择性地配置聊天控件的语言,也可通过跳动 PartyLocalChatControl::GetLanguage()
访问。 翻译也将应用于传入的语音到文本的转录。
文本审核还可用于文本聊天。 若要深入了解此功能,请参阅“使用文本审核”页面。
无障碍聊天
在 Azure 语音服务的支持下,群可以转录玩家语音聊天,并将文本合成语音。 此功能具有多种用途,但是主要设计为辅助功能助手。 建议将此功能的激活与易于访问的玩家设置关联。 有关如何使用 Party 提供的辅助功能的详细信息,请参阅 文本转语音指南 和 语音转文本指南。
音频输入噪声抑制
群使你能够在捕获的麦克风音频传输到远程聊天控件之前抑制其背景噪音。 这可以显著提高玩家的语音音频质量。 有关如何启用噪声抑制的详细信息,请参阅“使用噪音抑制”页。
注意
噪声抑制目前仅在 iOS 和 Android 上可用。