# 发起频道加入

> How to initiate a channel join request in Vivox.

以下代码示例说明如何发起频道加入：

```cs
using System;
using System.ComponentModel;
using UnityEngine;
using Unity.Services.Vivox;

class JoinChannelExample : MonoBehaviour
{
    // For this example, _loginSession is a signed in ILoginSession.
    . . .
    void OnLoggedIn()
    {
        //These events can be bound anywhere, but keeping them within the lifecycle of an active LoginSession is typically best
        VivoxService.Instance.ChannelJoined += OnChannelJoined
        VivoxService.Instance.ChannelLeft += OnChannelLeft
    }

    void OnChannelJoined(string channelName)
    {
        //Perform actions to react to joining the specific channel with name channelName
        //UI switches, participant UI setup, etc
    }

    void OnChannelLeft(string channelName)
    {
        //Perform cleanup to react to leaving a specific channel with name channelName
    }

    async void JoinChannelAsync(string channelName)
    {
        //Join channel with name channelName and capability for text and audio transmission
        VivoxService.Instance.JoinGroupChannelAsync(channelName, ChatCapability.TextAndAudio);
    }
    . . .
}
```

要确定何时加入频道，必须绑定 `VivoxService.Instance.ChannelJoined` 事件。这个事件本身将使用频道名称进行触发；应使用此名称触发该频道所需的特定事件。建议对频道名称使用某种结构，以便区分不同频道的处理方式。

`ChannelLeft` 是一个将在离开频道时触发的操作，以离开的频道名称作为参数。

`VivoxService.Instance.JoinGroupChannelAsync`、`VivoxService.Instance.JoinEchoChannelAsync` 和 `VivoxService.Instance.JoinPositionalChannelAsync` 有一个名为 ChannelOptions 的可选参数。使用 ChannelOptions 可以设置行为，例如将频道设置为在频道加入完成时要传输到的活动频道。
