Oculus Quest - Users can't hear each other

Parameters:
Pun 2.28
3 Oculus Quest headsets

We have three users in a room: A, B, C. User A can hear B and C speaking, but user A's mic does not work (echo debug doesnt work).User B's echo debugger doesn't work, but B can be heard by both A and C. B can't hear A nor C. User C's echo debugger works, but C can only be heard by A.

Logging levels have been set to ALL, but there doesn't seem to be anything substantial. We get:

(From the logging of C)
-PhotonVoiceView already setup
-Voice client is still not in a room, skipping late linking check.
- queueIncomingCommand() CMD(7 ch#/sq#/usq#: 2/3/1546 r#/st/tt:0/0/0) channel seq# r/u: 3/1544

For background: user B and C were able to communicate in this project a month ago, and we haven't touched the photon component since. We've checked our windows permissions and made sure we're all on the same id for our server settings.

Comments

  • JohnTube
    JohnTube ✭✭✭✭✭
    Hi @MTD,

    Thank you for choosing Photon!

    You could make use of this VoiceDebugScript ("Assets\Photon\PhotonVoice\Code\PUN\UtilityScripts\VoiceDebugScript.cs"), attached to the same GameObject as PhotonVoiceView and then call "VoiceDebugScript.CantHearYou" for the person you can't hear.
  • MTD
    MTD
    edited April 2021
    Edit: Updated my photon voice, we have our photonVoiceView attached to a network prefab so running the "CantHearYou" call returns a NullReferencException:"Object reference not set to an instance of an object".
  • JohnTube
    JohnTube ✭✭✭✭✭
    Hi @MTD,

    Could you share the full stack trace of the error please?
  • Didn't run into the nullptr today, but here's the console log

    Player #01 'Guest769' replied to my CantHearYou message with no idea why!, should be working (1)
    UnityEngine.Debug:LogErrorFormat(String, Object[])
    Photon.Voice.PUN.UtilityScripts.VoiceDebugScript:HeresWhy(String, PhotonMessageInfo) (at Assets/Photon/PhotonVoice/Code/PUN/UtilityScripts/VoiceDebugScript.cs:220)
    System.Reflection.MethodBase:Invoke(Object, Object[])
    Photon.Pun.PhotonNetwork:ExecuteRpc(Hashtable, Player) (at Assets/Photon/PhotonUnityNetworking/Code/PhotonNetworkPart.cs:568)
    Photon.Pun.PhotonNetwork:RPC(PhotonView, String, RpcTarget, Player, Boolean, Object[]) (at Assets/Photon/PhotonUnityNetworking/Code/PhotonNetworkPart.cs:1248)
    Photon.Pun.PhotonNetwork:RPC(PhotonView, String, Player, Boolean, Object[]) (at Assets/Photon/PhotonUnityNetworking/Code/PhotonNetwork.cs:2874)
    Photon.Pun.PhotonView:RPC(String, Player, Object[]) (at Assets/Photon/PhotonUnityNetworking/Code/PhotonView.cs:725)
    Photon.Voice.PUN.UtilityScripts.VoiceDebugScript:Reply(String, Player) (at Assets/Photon/PhotonVoice/Code/PUN/UtilityScripts/VoiceDebugScript.cs:214)
    Photon.Voice.PUN.UtilityScripts.VoiceDebugScript:CantHearYou(String, String, String, PhotonMessageInfo) (at Assets/Photon/PhotonVoice/Code/PUN/UtilityScripts/VoiceDebugScript.cs:209)
    System.Reflection.MethodBase:Invoke(Object, Object[])
    Photon.Pun.PhotonNetwork:ExecuteRpc(Hashtable, Player) (at Assets/Photon/PhotonUnityNetworking/Code/PhotonNetworkPart.cs:568)
    Photon.Pun.PhotonNetwork:RPC(PhotonView, String, RpcTarget, Player, Boolean, Object[]) (at Assets/Photon/PhotonUnityNetworking/Code/PhotonNetworkPart.cs:1248)
    Photon.Pun.PhotonNetwork:RPC(PhotonView, String, Player, Boolean, Object[]) (at Assets/Photon/PhotonUnityNetworking/Code/PhotonNetwork.cs:2874)
    Photon.Pun.PhotonView:RPC(String, Player, Object[]) (at Assets/Photon/PhotonUnityNetworking/Code/PhotonView.cs:725)
    Photon.Voice.PUN.UtilityScripts.VoiceDebugScript:CantHearYou() (at Assets/Photon/PhotonVoice/Code/PUN/UtilityScripts/VoiceDebugScript.cs:115)
  • JohnTube
    JohnTube ✭✭✭✭✭
    Hi @MTD,

    After taking a look at which point in the code the message "no idea why!, should be working (1)" is returned, it looks like you are calling "CantHearYou" on your own local player's object.
    Is this intended?
    I think you want to call it for remote players' objects, especially those you can't hear.
  • Well I have echo debug on but couldn't hear myself. I'll try with a paired headset but my partners were unavailable. Is it common for the Quest to be finnicky with its mic? We've noticed that some days it will work but most days it won't
  • JohnTube
    JohnTube ✭✭✭✭✭
    Is it common for the Quest to be finnicky with its mic?
    Not sure, I don't think it's related to Quest's mic.
    We've noticed that some days it will work but most days it won't
    Well I want to help but we need more than this.

    By the way, in order to use VoiceDebugScript efficiently, you need latest Photon Voice 2.24 as in the version VoiceDebugScript before is broken.
  • Hi,
    @MTD you describe a similar problem we have in our application - with voice on Quest 2. By the way are you also using the business version of Quest 2 or the consumer version? Or is it Quest 1?
    On our side usually user A can't be heard by the others B,C while the others can communicate normally with each other. A also can hear B & C, but his microphone is not working. It also happens randomly but
    we can reproduce this by having for example 3 rooms open and then switching together from room to room until it occurs. Usually this occurs after 3-6 room switches.
    Right now we found a "hacky" workaround by stopping and restarting the recorder of every player on room join. This way we have not yet experienced the problem again (but need more testing though)...
    Of course this is not an ideal solution!
  • JohnTube
    JohnTube ✭✭✭✭✭
    Hi @wovr,

    Thank you for choosing Photon!

    We want to avoid workarounds or hacks when using Photon Voice and we aim for a seamless smooth experience, drag'n drop or plug'n play like for our customers especially on VR.

    What Photon Voice 2 version are you using?
    Could you try reproducing with the latest? maybe using demo scenes?
    If this happens could you try the VoiceDebugScript trick to try to find out why?
  • Hi all,

    Sorry, i was tasked with some other work and only recently came back to revisit this. After updating our mrtk to the latest version (2.6) it seems like we stopped having this issue. Appreciate the help!