【问题标题】:How to use Audio Groups in Photon Voice Unity3D?如何在 Photon Voice Unity3D 中使用音频组?
【发布时间】:2017-04-26 02:51:34
【问题描述】:

您好,我是多人游戏开发的新手,我正在使用光子语音,想在一个有很多玩家的房间中进行两个玩家之间的私人语音聊天。我被引导到 https://doc.photonengine.com/en-us/voice/current/getting-started/voice-for-pun?utm_campaign=sendgrid&utm_source=sendgrid.com&utm_medium=email 通过光子的支持,但我无法让它工作。我应该如何在这个多人游戏中进行私人语音聊天。请举例说明。谢谢

【问题讨论】:

    标签: unity3d unity5 multiplayer photon


    【解决方案1】:

    有一个 Push To Talk 的演示场景展示了如何执行此操作。 让我尝试解释一下如何使用当前的 Photon Voice 实现玩家到玩家的语音聊天:

    Photon Voice 使用语音组(只不过是 Photon LoadBalancing 的“Interest Groups”)来分隔语音通道/目标。

    过滤传入的声音(选择“听什么”或“你想听谁”):

    每个演员都需要订阅它感兴趣的语音组。默认情况下,所有演员都会收听音频组 0,这可以看作是用于语音广播的全局音频组。如果您想收听发送到其他组的语音,您需要订阅它们。您还可以取消订阅以前订阅的内容。做这一切的操作是:PhotonVoiceNetwork.Client.ChangeAudioGroups(byte[] groupsToRemove, byte[] groupsToAdd);

    选择单个传输目标音频组(选择“你想和谁交谈”):

    每个演员都需要决定要将音频传输到哪个语音组。可以使用PhotonVoiceRecorder.AudioGroup设置目标音频组。


    因此,根据用例,您可以做的是:

    1. 对单个组讲话并聆听多个组。你可以和你听的人以外的人交谈。您可以收听所有可用的群组。
    2. 对单个组讲话,只听默认组。
    3. 说和听同一个音频组。对于这个特殊的用例,有一个快捷方式可以通过设置在这个单一的输入/输出组之间切换:PhotonVoiceNetwork.Client.GlobalAudioGroup。如果您选择设置GlobalAudioGroup,则无需调用ChangeAudioGroups 或设置PhotonVoiceRecorder.AudioGroup,因为它是在内部为您完成的。

    在这三种情况下,您始终收听默认音频组 0。

    Photon Voice 演示为私人(1 对 1)语音聊天提供了两个选项:

    • “MuteOthersWhileTalking”已启用:对应案例 n°3。
    • “MuteOthersWhileTalking”已禁用:对应于案例 n°1。

    演示中的音频组是这样构建的: 我们有 4 个演员的房间。 我们需要 6 个音频组。 对于每对演员,我们计算一个唯一的组码。

    • 演员 A,演员编号(玩家 ID)等于 x
    • 演员 B,演员编号等于 y

    下面是我们如何获取 A 和 B 之间私人语音聊天的音频组(如果演员编号达到 24 我们有问题):

    if (x < y)
    {
         AudioGroup = y + x * 10;
    }
    else if (x > y)
    {
         AudioGroup = x + y * 10;
    } 
    else 
    {
         // error
    } 
    

    示例:演员 1 和 2 的音频组为 12。

    “计算”私人语音组的另一种方法是将演员编号用作音频组:每个演员订阅一个音频组,其代码等于其演员编号。每当您想与远程演员交谈时,您都将目标音频组(仅使用PhotonVoiceRecorder.AudioGroup)设置为目标演员编号。 这种方法的优点:

    • 更少的音频组:我们需要与演员一样多的音频组。
    • 更少的音频组切换:单个音频组可订阅且无需取消订阅。

    这种方法的缺点:

    • 您不能静音任何其他演员。您将听取任何想私下与您交谈的人的意见。

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 2021-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多