派对和派对聊天
This is a Platform SDK feature requiring Data Use Checkup
使用此功能或其他任何平台 SDK 功能之前,您需要完成数据使用情况检查 (DUC)。DUC 可确保您遵守开发者政策。这需要你团队的管理员证明您对用户数据的使用符合平台守则。在应用审核团队审核并批准您的 DUC 之前,平台功能仅供测试用户使用。派对可让用户在 Meta Horizon 主控室中与好友进行语音聊天。例如,一群好友可以在主控室中发起派对,聊一聊他们想一起玩的游戏。然后,当他们启动应用时,他们的聊天会话在那个应用中会继续保持。用户可以创建派对,发起与派对成员的语音聊天,还可以邀请好友加入派对聊天。派对语音聊天会在 VR 中跨多个应用持续存在,让用户在不同应用之间导航时可以继续互动。如果您的多人游戏应用还提供了语音聊天功能,您可能希望禁用派对聊天。
Apps for children can't use Platform SDK features
如果您自我证明您的应用主要用于未满 13 岁的儿童,则必须避免使用平台 SDK 功能。这一限制确保遵守特定于年龄的守则。为确保合规性,已为您的应用禁用数据使用情况检查。Getting the current party is not available
自 2025 年 6 月起,您将无法再使用用来获取当前派对的 API。 用于获取当前派对的 API 是:
Oculus.Platform.Parties.GetCurrent()
注意:对此 API 的任何请求都将返回代码为 10 的错误响应。错误消息“服务器响应不是有效的 JSON”是服务端移除该接口后的预期结果。此问题非临时性故障,且目前无替代 API 可用。
不需要通过集成来支持派对;但是,如果您打算在应用中使用麦克风来发出命令或进行聊天,您应该考虑一些事项。用户可以使用以下类型的聊天:
- 系统 VoIP,也称为派对 VoIP,是在派对和 Horizon 主控室中使用的 VoIP 服务。此服务不需要集成,可供任何用户使用。
- 平台 VoIP 是 Meta Horizon 平台提供的 VoIP 服务,是在您的应用中集成语音聊天的一个选项。欲了解更多信息,请参阅语音聊天 (VoIP)。
- 应用 VoIP 是您在应用中使用的任何非 Meta Quest VoIP 服务。
如果您打算在应用中实施 VoIP,无论是平台 VoIP 还是应用 VoIP,您都需要处理两个聊天流媒体。
以下示例用于说明有多个聊天流的场景:
- Aya 和 Betty 在派对中
- Aya 启动了 Kai 正在玩的应用
- Aya 邀请 Kai 参加多人游戏
如果不处理这种情况,Aya 将能在派对 VoIP 上与 Betty 交谈,在应用或平台 VoIP 上与 Kai 交谈,但 Betty 和 Kai 将无法听到对方的声音。
处理这种情况的一种方法是,禁用派对 VoIP 流媒体,并将 Kai 添加到应用 VoIP,以避免发生这种冲突。
- 您禁用派对 VoIP
- 将 Kai 添加到应用 VoIP
- Aya、Betty 和 Kai 可以一起交谈了
Meta Quest 提供了系统 VoIP API,您可以用它来检测用户是否在派对中并且正在使用系统 VoIP,您还可以用它来禁用 VoIP 流媒体。
如要使用系统 VoIP API,首先要检查系统 VoIP 的状态,看看用户是否处于活动状态。
您可以通过两种方法来检查系统 VoIP 的状态:检查每一帧或者侦听通知。
检查每一帧 - 如要随时检查系统 VoIP 是否处于活动状态,请调用以下函数。请注意,这是同步函数,不是请求:
Voip.GetSystemVoipStatus() == SystemVoipStatus.Active
侦听通知 - 如要收到 VoIP 状态更改的通知,您可以发出以下请求:在 Unity 侦听 MessageType.Notification_Voip_SystemVoipState,其拥有一个 Message<SystemVoipState>,从此处可以访问“状态”字段,或者使用 Message<SystemVoipState> 回调来调用 SetSystemVoipStateNotificationCallback。
状态可能会快速变化。您从通知消息中提取的值将是通知被添加到消息队列时的状态,这可能与随后处理消息时的状态不同。您可能要侦听通知,然后忽略它的值,并使用同步函数检查当前状态。
接下来,您可以禁用用户不应听到的流媒体,或者让用户选择要收听哪个流媒体。
如果系统 VoIP 处于活动状态,您可以:
如果禁用系统 VoIP 的应用退出,系统 VoIP 将解除禁用。您可能还希望在用户离开应用的多人游戏环节(例如主控室菜单)时停止禁用用户的派对 VoIP,以便让他们能继续与所在的派对聊天。
您可能还想让用户能在系统 VoIP 与应用内 VoIP 之间切换。这可以让用户选择,他们是要继续与他们的派对交谈,还是要使用您的应用内 VoIP,前者需要禁用应用内 VoIP,后者需要禁用系统 VoIP。
注意:下方的麦克风切换器和麦克风部分仅适用于 Android 开发。
Android 一次只允许一台设备访问麦克风。借助 Meta 开发的麦克风切换器,用户能在派对 VoIP 与应用内 VoIP 之间做出选择。请参阅
麦克风切换器文档获取更多信息。