Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Resolved [Unreal Engine 5.1] Can't hear or check speaking status from other users on Positional channel

Discussion in 'Vivox (Voice & Text Chat)' started by brunocoimbra, Apr 24, 2023.

Thread Status:
Not open for further replies.
  1. brunocoimbra

    brunocoimbra

    Joined:
    Sep 2, 2015
    Posts:
    679
    Logs confirm that everyone got connected to the same channel (logs coming from VivoxCore), however the participants list is never updated (having only the local user on it) and you can't hear other participants.

    Searching further, seems like Vivox is only officially supported up to Unreal Engine 4.26, is that still true?

    Is there a known workaround to get it working on Unreal Engine 5.1?

    EDIT: only having issues on Positional channel, while it works fine on both Echo and NonPositional.
     
    Last edited: Apr 24, 2023
  2. kevin_unity3d

    kevin_unity3d

    Unity Technologies

    Joined:
    Jun 24, 2019
    Posts:
    13
    Hi, Bruno. It sounds like you haven't set any of the player's positions in the Positional channel, so Vivox doesn't know who's supposed to be near each other yet. That would explain the lack of roster updates and not hearing/being heard in voice chat, since both are proximity based (only players within the local player's max audible distance will appear to be "in the channel" from their unique perspective).

    According to the online Developer Guide, "When a player joins a positional channel, the player avatar is placed at a null position until they move to a position." That's from the following page, which also details how to set the position and orientation of the player, including example code (https://docs.vivox.com/v5/general/u...channels/positional-channel-configuration.htm). The parent topic ("Positional Channels") has other useful pages too, like about tuning the channel properties. Hope this helps :)
     
  3. brunocoimbra

    brunocoimbra

    Joined:
    Sep 2, 2015
    Posts:
    679
    You are correct, there was an error in my side that was not causing the position to be updated. Fixing that made the participants to be updated properly.

    However, nobody can be heard still and the SpeechDetected is always false, even for the local player, which again only in Positional channel that I am having that issue. For testing, I am using the default 3D properties as the guide suggests.

    EDIT: maybe worth mentioning that, for testing, I am also using the same location for both the speaker and the listener in the API call.
     
    Last edited: Apr 25, 2023
  4. brunocoimbra

    brunocoimbra

    Joined:
    Sep 2, 2015
    Posts:
    679
    Got it fixed. Switch transmission was false for some reason (changed when testing multiple things probably).

    Thank you for the support.
     
  5. kevin_unity3d

    kevin_unity3d

    Unity Technologies

    Joined:
    Jun 24, 2019
    Posts:
    13
    Transmission was my first thought as well. Sorry I couldn't get a response out sooner, but I'm thrilled to hear you figured it out! :D

    Please note that providing True to the switchTransmission bool parameter when calling BeginConnect() will switch audio transmission to that new channel exclusively. If you're only connecting to one channel at a time, that's a never a problem; if you plan to connect to multiple channels at once, there are separate transmission APIs that let you control whether to transmit audio into All connected channels at once, to None of them, or to switch exclusive transmission between different Single channels at times other than when first connecting to them.

    You can read more about those APIs in this Developer Guide section on transmission and the sub-topics it links (https://docs.vivox.com/v5/general/u...-guide/transmission/transmission-overview.htm).

    Final note in case you are planning to connect to both Positional and NonPositional type channels at the same time: in that case, it is best practice to join the Positional channel first before connecting to any NonPositional channels (from the topic on different channel types).
     
    brunocoimbra likes this.
Thread Status:
Not open for further replies.