Channel types
Vivox uses the following types of channels:
The channel type is indicated by the method used to initiate the channel join. JoinEchoChannelAsync
joins an echo channel, JoinGroupChannelAsyc
joins a group channel, and JoinPositionalChannelAsync
joins a positional channel.
Note: When working with both positional and group channels, join the positional channel first, followed by the group channels.
Echo channels
Echo channels are joined by using the JoinEchoChannelAsync
method, which is shown in the following example:
JoinEchoChannelAsync("TestChannel", ChatCapability.AudioOnly)
Developers can use these channels to give users a place to test their microphones or as a general way to test connectivity to the Vivox voice servers.
Group channels
Group channels are joined by using the JoinGroupChannelAsync
method, which is displayed in the following example:
JoinGroupChannelAsync("TestChannel", ChatCapability.TextAndAudio)
Developers can use these channels to allow for level-wide audio and text channels that players can connect to.
Examples of scenarios where non-positional channels are often used include teams and squads in first-person shooters and party chat in MMOs.
Non-positional channels are typically the most used channel types in a Vivox implementation.
Positional channels
Positional channels, also referred to as 3D channels, are joined by using the JoinPositionalChannelAsync
method, which is displayed in the following example:
Channel3DProperties props = new Channel3DProperties() //The Channel3DProperties are set to default values, but might need to be changed based on the wanted scale of your game.
JoinPositionalChannelAsync("TestChannel", ChatCapability.TextAndAudio, Channel3DProperties)
Developers can use these channels to provide voice chat that is part of a world, with player voices attenuating and panning to make it seem like they are speaking from where they are positioned in the game world. For this effect to work you must set a user's location. For instructions on how to set the location of players, refer to the Positional channel configuration page. You can parametrize positional channels with certain values that change how the player's positioning affects their voice.
> Note: You can join only one positional channel at a time.