# 关键概念 (/zh-CN/realtime-media/rtc/reference/key-concept)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<_PlatformTabsGroup>
<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="android" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程]

### 使用控制台 [#使用控制台]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

![控制台创建音视频项目示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/use-console.png)

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念]

### 轨道 [#轨道]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如虚拟背景、美颜、回声消除、降噪等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。

### 音频模块 [#音频模块]

在音频互动中，音频模块的主要功能如下图所示：

![音频模块功能示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/audio-module.png)

:::info[信息]
调用 [`registerAudioFrameObserver`](/zh-CN/api-reference/rtc/android/audio/audio-raw#registeraudioframeobserver) 注册音频观测器后，你可以在音频流程的不同观测位置获取原始音频数据，详情如下：

- ①：通过 [`onEarMonitoringAudioFrame`](/zh-CN/api-reference/rtc/android/audio/audio-raw#onearmonitoringaudioframe) 回调获取耳返的原始音频数据。
- ②：通过 [`onRecordAudioFrame`](/zh-CN/api-reference/rtc/android/audio/audio-raw#onrecordaudioframe) 回调获取采集的原始音频数据。
- ③：通过 [`onPlaybackAudioFrameBeforeMixing`](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调获取每条拉流单独的原始音频播放数据。
- ④：通过 [`onPlaybackAudioFrame`](/zh-CN/api-reference/rtc/android/audio/audio-raw#onplaybackaudioframe) 回调获取所有拉流混合的原始音频播放数据。
- ⑤：通过 [`onMixedAudioFrame`](/zh-CN/api-reference/rtc/android/audio/audio-raw#onmixedaudioframe) 回调获取采集和播放混音后的原始音频数据。
    即：⑤ `onMixedAudioFrame` = ② `onRecordAudioFrame` + ④ `onPlaybackAudioFrame`。
:::

**音频路由**：App 在播放音频时使用的音频输出设备。常见的音频路由有：有线耳机、听筒、扬声器、蓝牙耳机等。

音频模块各功能使用到的 API 如下：

- 开启本地音频采集：`enableLocalAudio`
- 设置本地播放设备：`setPlaybackDevice`
- 设置音频路由：`setDefaultAudioRouteToSpeakerphone`

### 视频模块 [#视频模块]

在视频互动中，视频模块的主要功能如下图所示：

<DocsImage alt="视频模块功能示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/video-module.png" displayWidth="96%" />

:::info[信息]
- ①：观测位置为 `POSITION_POST_CAPTURER_ORIGIN`。
- ②：观测位置为 `POSITION_POST_CAPTURER`，对应 `onCaptureVideoFrame` 回调。
- ③：观测位置为 `POSITION_PRE_ENCODER`，对应 `onPreEncodeVideoFrame` 回调。
- ④：观测位置为 `POSITION_PRE_RENDERER`，对应 `onRenderVideoFrame` 回调。
:::

视频模块各功能使用到的 API 如下：

- 开启本地视频采集：`enableLocalVideo`
- 本地预览：`setupLocalVideo` → `startPreview`
- 视频渲染显示：`setupRemoteVideo`
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="ios" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程-1]

### 使用控制台 [#使用控制台-1]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

![控制台创建音视频项目示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/use-console.png)

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程-1]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念-1]

### 轨道 [#轨道-1]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如虚拟背景、美颜、回声消除、降噪等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。

### 音频模块 [#音频模块-1]

在音频互动中，音频模块的主要功能如下图所示：

![音频模块功能示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/audio-module.png)

:::info[信息]
调用 [`registerAudioFrameObserver`](/zh-CN/api-reference/rtc/ios/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 注册音频观测器后，你可以在音频流程的不同观测位置获取原始音频数据，详情如下：

- ①：通过 [`onEarMonitoringAudioFrame`](/zh-CN/api-reference/rtc/ios/audio/audio-raw#onearmonitoringaudioframe) 回调获取耳返的原始音频数据。
- ②：通过 [`onRecordAudioFrame`](/zh-CN/api-reference/rtc/ios/audio/audio-raw#callback_iaudioframeobserver_onrecordaudioframe) 回调获取采集的原始音频数据。
- ③：通过 [`onPlaybackAudioFrameBeforeMixing`](/zh-CN/api-reference/rtc/ios/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调获取每条拉流单独的原始音频播放数据。
- ④：通过 [`onPlaybackAudioFrame`](/zh-CN/api-reference/rtc/ios/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframe) 回调获取所有拉流混合的原始音频播放数据。
- ⑤：通过 [`onMixedAudioFrame`](/zh-CN/api-reference/rtc/ios/audio/audio-raw#callback_iaudioframeobserver_onmixedaudioframe) 回调获取采集和播放混音后的原始音频数据。
    即：⑤ `onMixedAudioFrame` = ② `onRecordAudioFrame` + ④ `onPlaybackAudioFrame`。
:::

**音频路由**：App 在播放音频时使用的音频输出设备。常见的音频路由有：有线耳机、听筒、扬声器、蓝牙耳机等。

音频模块各功能使用到的 API 如下：

- 开启本地音频采集：`enableLocalAudio`
- 设置本地播放设备：`setPlaybackDevice`
- 设置音频路由：`setDefaultAudioRouteToSpeakerphone`

### 视频模块 [#视频模块-1]

在视频互动中，视频模块的主要功能如下图所示：

<DocsImage alt="视频模块功能示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/video-module.png" displayWidth="96%" />

:::info[信息]
- ①：观测位置为 `POSITION_POST_CAPTURER_ORIGIN`。
- ②：观测位置为 `POSITION_POST_CAPTURER`，对应 `onCaptureVideoFrame` 回调。
- ③：观测位置为 `POSITION_PRE_ENCODER`，对应 `onPreEncodeVideoFrame` 回调。
- ④：观测位置为 `POSITION_PRE_RENDERER`，对应 `onRenderVideoFrame` 回调。
:::

视频模块各功能使用到的 API 如下：

- 开启本地视频采集：`enableLocalVideo`
- 本地预览：`setupLocalVideo` → `startPreview`
- 视频渲染显示：`setupRemoteVideo`
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="macos" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程-2]

### 使用控制台 [#使用控制台-2]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

![控制台创建音视频项目示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/use-console.png)

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程-2]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念-2]

### 轨道 [#轨道-2]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如虚拟背景、美颜、回声消除、降噪等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。

### 音频模块 [#音频模块-2]

在音频互动中，音频模块的主要功能如下图所示：

![音频模块功能示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/audio-module.png)

:::info[信息]
调用 [`registerAudioFrameObserver`](/zh-CN/api-reference/rtc/macos/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 注册音频观测器后，你可以在音频流程的不同观测位置获取原始音频数据，详情如下：

- ①：通过 [`onEarMonitoringAudioFrame`](/zh-CN/api-reference/rtc/macos/audio/audio-raw#onearmonitoringaudioframe) 回调获取耳返的原始音频数据。
- ②：通过 [`onRecordAudioFrame`](/zh-CN/api-reference/rtc/macos/audio/audio-raw#callback_iaudioframeobserver_onrecordaudioframe) 回调获取采集的原始音频数据。
- ③：通过 [`onPlaybackAudioFrameBeforeMixing`](/zh-CN/api-reference/rtc/macos/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调获取每条拉流单独的原始音频播放数据。
- ④：通过 [`onPlaybackAudioFrame`](/zh-CN/api-reference/rtc/macos/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframe) 回调获取所有拉流混合的原始音频播放数据。
- ⑤：通过 [`onMixedAudioFrame`](/zh-CN/api-reference/rtc/macos/audio/audio-raw#callback_iaudioframeobserver_onmixedaudioframe) 回调获取采集和播放混音后的原始音频数据。
    即：⑤ `onMixedAudioFrame` = ② `onRecordAudioFrame` + ④ `onPlaybackAudioFrame`。
:::

**音频路由**：App 在播放音频时使用的音频输出设备。常见的音频路由有：有线耳机、听筒、扬声器、蓝牙耳机等。

音频模块各功能使用到的 API 如下：

- 开启本地音频采集：`enableLocalAudio`
- 设置本地播放设备：`setPlaybackDevice`
- 设置音频路由：`setDefaultAudioRouteToSpeakerphone`

### 视频模块 [#视频模块-2]

在视频互动中，视频模块的主要功能如下图所示：

<DocsImage alt="视频模块功能示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/video-module.png" displayWidth="96%" />

:::info[信息]
- ①：观测位置为 `POSITION_POST_CAPTURER_ORIGIN`。
- ②：观测位置为 `POSITION_POST_CAPTURER`，对应 `onCaptureVideoFrame` 回调。
- ③：观测位置为 `POSITION_PRE_ENCODER`，对应 `onPreEncodeVideoFrame` 回调。
- ④：观测位置为 `POSITION_PRE_RENDERER`，对应 `onRenderVideoFrame` 回调。
:::

视频模块各功能使用到的 API 如下：

- 开启本地视频采集：`enableLocalVideo`
- 本地预览：`setupLocalVideo` → `startPreview`
- 视频渲染显示：`setupRemoteVideo`
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="web" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程-3]

### 使用控制台 [#使用控制台-3]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

![控制台创建音视频项目示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/use-console.png)

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程-3]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念-3]

### 轨道 [#轨道-3]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括：前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如[虚拟背景](/zh-CN/realtime-media/rtc/build/extensions/web/virtual-background)、[美颜](/zh-CN/realtime-media/rtc/build/extensions/web/image-enhancement)、回声消除、[降噪](/zh-CN/realtime-media/rtc/build/extensions/web/noise-reduction)等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="windows" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程-4]

### 使用控制台 [#使用控制台-4]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

![控制台创建音视频项目示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/use-console.png)

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程-4]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念-4]

### 轨道 [#轨道-4]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如虚拟背景、美颜、回声消除、降噪等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。

### 音频模块 [#音频模块-3]

在音频互动中，音频模块的主要功能如下图所示：

![音频模块功能示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/audio-module.png)

:::info[信息]
调用 [`registerAudioFrameObserver`](/zh-CN/api-reference/rtc/cpp-all-platforms/audio/audio-raw#registeraudioframeobserver) 注册音频观测器后，你可以在音频流程的不同观测位置获取原始音频数据，详情如下：

- ①：通过 [`onEarMonitoringAudioFrame`](/zh-CN/api-reference/rtc/cpp-all-platforms/audio/audio-raw#onearmonitoringaudioframe) 回调获取耳返的原始音频数据。
- ②：通过 [`onRecordAudioFrame`](/zh-CN/api-reference/rtc/cpp-all-platforms/audio/audio-raw#onrecordaudioframe) 回调获取采集的原始音频数据。
- ③：通过 [`onPlaybackAudioFrameBeforeMixing`](/zh-CN/api-reference/rtc/cpp-all-platforms/audio/audio-raw#onplaybackaudioframebeforemixing) 回调获取每条拉流单独的原始音频播放数据。
- ④：通过 [`onPlaybackAudioFrame`](/zh-CN/api-reference/rtc/cpp-all-platforms/audio/audio-raw#onplaybackaudioframe) 回调获取所有拉流混合的原始音频播放数据。
- ⑤：通过 [`onMixedAudioFrame`](/zh-CN/api-reference/rtc/cpp-all-platforms/audio/audio-raw#onmixedaudioframe) 回调获取采集和播放混音后的原始音频数据。
    即：⑤ `onMixedAudioFrame` = ② `onRecordAudioFrame` + ④ `onPlaybackAudioFrame`。
:::

**音频路由**：App 在播放音频时使用的音频输出设备。常见的音频路由有：有线耳机、听筒、扬声器、蓝牙耳机等。

音频模块各功能使用到的 API 如下：

- 开启本地音频采集：`enableLocalAudio`
- 设置本地播放设备：`setPlaybackDevice`
- 设置音频路由：`setDefaultAudioRouteToSpeakerphone`

### 视频模块 [#视频模块-3]

在视频互动中，视频模块的主要功能如下图所示：

<DocsImage alt="视频模块功能示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/video-module.png" displayWidth="96%" />

:::info[信息]
- ①：观测位置为 `POSITION_POST_CAPTURER_ORIGIN`。
- ②：观测位置为 `POSITION_POST_CAPTURER`，对应 `onCaptureVideoFrame` 回调。
- ③：观测位置为 `POSITION_PRE_ENCODER`，对应 `onPreEncodeVideoFrame` 回调。
- ④：观测位置为 `POSITION_PRE_RENDERER`，对应 `onRenderVideoFrame` 回调。
:::

视频模块各功能使用到的 API 如下：

- 开启本地视频采集：`enableLocalVideo`
- 本地预览：`setupLocalVideo` → `startPreview`
- 视频渲染显示：`setupRemoteVideo`
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="harmonyos" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程-5]

### 使用控制台 [#使用控制台-5]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

![控制台创建音视频项目示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/use-console.png)

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程-5]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念-5]

### 轨道 [#轨道-5]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如虚拟背景、美颜、回声消除、降噪等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。

### 音频模块 [#音频模块-4]

在音频互动中，音频模块的主要功能如下图所示：

![音频模块功能示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/audio-module.png)

:::info[信息]
调用 `registerAudioFrameObserver` 注册音频观测器后，你可以在音频流程的不同观测位置获取原始音频数据，详情如下：

- ①：通过 `onEarMonitoringAudioFrame` 回调获取耳返的原始音频数据。
- ②：通过 `onRecordAudioFrame` 回调获取采集的原始音频数据。
- ③：通过 `onPlaybackAudioFrameBeforeMixing` 回调获取每条拉流单独的原始音频播放数据。
- ④：通过 `onPlaybackAudioFrame` 回调获取所有拉流混合的原始音频播放数据。
- ⑤：通过 `onMixedAudioFrame` 回调获取采集和播放混音后的原始音频数据。
    即：⑤ `onMixedAudioFrame` = ② `onRecordAudioFrame` + ④ `onPlaybackAudioFrame`。
:::

**音频路由**：App 在播放音频时使用的音频输出设备。常见的音频路由有：有线耳机、听筒、扬声器、蓝牙耳机等。

音频模块各功能使用到的 API 如下：

- 开启本地音频采集：`enableLocalAudio`
- 设置本地播放设备：`setPlaybackDevice`
- 设置音频路由：`setDefaultAudioRouteToSpeakerphone`

### 视频模块 [#视频模块-4]

在视频互动中，视频模块的主要功能如下图所示：

<DocsImage alt="视频模块功能示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/video-module.png" displayWidth="96%" />

:::info[信息]
- ①：观测位置为 `POSITION_POST_CAPTURER_ORIGIN`。
- ②：观测位置为 `POSITION_POST_CAPTURER`，对应 `onCaptureVideoFrame` 回调。
- ③：观测位置为 `POSITION_PRE_ENCODER`，对应 `onPreEncodeVideoFrame` 回调。
- ④：观测位置为 `POSITION_PRE_RENDERER`，对应 `onRenderVideoFrame` 回调。
:::

视频模块各功能使用到的 API 如下：

- 开启本地视频采集：`enableLocalVideo`
- 本地预览：`setupLocalVideo` → `startPreview`
- 视频渲染显示：`setupRemoteVideo`
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="electron" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程-6]

### 使用控制台 [#使用控制台-6]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

![控制台创建音视频项目示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/use-console.png)

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程-6]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念-6]

### 轨道 [#轨道-6]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如虚拟背景、美颜、回声消除、降噪等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。

### 音频模块 [#音频模块-5]

在音频互动中，音频模块的主要功能如下图所示：

![音频模块功能示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/audio-module.png)

:::info[信息]
调用 [`registerAudioFrameObserver`](/zh-CN/api-reference/rtc/electron/audio/audio-raw#api_imediaengine_registeraudioframeobserver) 注册音频观测器后，你可以在音频流程的不同观测位置获取原始音频数据，详情如下：

- ①：通过 [`onEarMonitoringAudioFrame`](/zh-CN/api-reference/rtc/electron/audio/audio-raw#callback_iaudioframeobserverbase_onearmonitoringaudioframe) 回调获取耳返的原始音频数据。
- ②：通过 [`onRecordAudioFrame`](/zh-CN/api-reference/rtc/electron/audio/audio-raw#callback_iaudioframeobserverbase_onrecordaudioframe) 回调获取采集的原始音频数据。
- ③：通过 [`onPlaybackAudioFrameBeforeMixing`](/zh-CN/api-reference/rtc/electron/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调获取每条拉流单独的原始音频播放数据。
- ④：通过 [`onPlaybackAudioFrame`](/zh-CN/api-reference/rtc/electron/audio/audio-raw#callback_iaudioframeobserverbase_onplaybackaudioframe) 回调获取所有拉流混合的原始音频播放数据。
- ⑤：通过 [`onMixedAudioFrame`](/zh-CN/api-reference/rtc/electron/audio/audio-raw#callback_iaudioframeobserverbase_onmixedaudioframe) 回调获取采集和播放混音后的原始音频数据。
    即：⑤ `onMixedAudioFrame` = ② `onRecordAudioFrame` + ④ `onPlaybackAudioFrame`。
:::

**音频路由**：App 在播放音频时使用的音频输出设备。常见的音频路由有：有线耳机、听筒、扬声器、蓝牙耳机等。

音频模块各功能使用到的 API 如下：

- 开启本地音频采集：`enableLocalAudio`
- 设置本地播放设备：`setPlaybackDevice`
- 设置音频路由：`setDefaultAudioRouteToSpeakerphone`

### 视频模块 [#视频模块-5]

在视频互动中，视频模块的主要功能如下图所示：

<DocsImage alt="视频模块功能示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/video-module.png" displayWidth="96%" />

:::info[信息]
- ①：观测位置为 `POSITION_POST_CAPTURER_ORIGIN`。
- ②：观测位置为 `POSITION_POST_CAPTURER`，对应 `onCaptureVideoFrame` 回调。
- ③：观测位置为 `POSITION_PRE_ENCODER`，对应 `onPreEncodeVideoFrame` 回调。
- ④：观测位置为 `POSITION_PRE_RENDERER`，对应 `onRenderVideoFrame` 回调。
:::

视频模块各功能使用到的 API 如下：

- 开启本地视频采集：`enableLocalVideo`
- 本地预览：`setupLocalVideo` → `startPreview`
- 视频渲染显示：`setupRemoteVideo`
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="unity" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程-7]

### 使用控制台 [#使用控制台-7]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

![控制台创建音视频项目示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/use-console.png)

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程-7]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念-7]

### 轨道 [#轨道-7]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如虚拟背景、美颜、回声消除、降噪等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。

### 音频模块 [#音频模块-6]

在音频互动中，音频模块的主要功能如下图所示：

![音频模块功能示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/audio-module.png)

:::info[信息]
调用 [`registerAudioFrameObserver`](/zh-CN/api-reference/rtc/unity/audio/audio-raw#api_imediaengine_registeraudioframeobserver) 注册音频观测器后，你可以在音频流程的不同观测位置获取原始音频数据，详情如下：

- ①：通过 [`onEarMonitoringAudioFrame`](/zh-CN/api-reference/rtc/unity/audio/audio-raw#callback_iaudioframeobserverbase_onearmonitoringaudioframe) 回调获取耳返的原始音频数据。
- ②：通过 [`onRecordAudioFrame`](/zh-CN/api-reference/rtc/unity/audio/audio-raw#callback_iaudioframeobserverbase_onrecordaudioframe) 回调获取采集的原始音频数据。
- ③：通过 [`onPlaybackAudioFrameBeforeMixing`](/zh-CN/api-reference/rtc/unity/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调获取每条拉流单独的原始音频播放数据。
- ④：通过 [`onPlaybackAudioFrame`](/zh-CN/api-reference/rtc/unity/audio/audio-raw#callback_iaudioframeobserverbase_onplaybackaudioframe) 回调获取所有拉流混合的原始音频播放数据。
- ⑤：通过 [`onMixedAudioFrame`](/zh-CN/api-reference/rtc/unity/audio/audio-raw#callback_iaudioframeobserverbase_onmixedaudioframe) 回调获取采集和播放混音后的原始音频数据。
    即：⑤ `onMixedAudioFrame` = ② `onRecordAudioFrame` + ④ `onPlaybackAudioFrame`。
:::

**音频路由**：App 在播放音频时使用的音频输出设备。常见的音频路由有：有线耳机、听筒、扬声器、蓝牙耳机等。

音频模块各功能使用到的 API 如下：

- 开启本地音频采集：`enableLocalAudio`
- 设置本地播放设备：`setPlaybackDevice`
- 设置音频路由：`setDefaultAudioRouteToSpeakerphone`

### 视频模块 [#视频模块-6]

在视频互动中，视频模块的主要功能如下图所示：

<DocsImage alt="视频模块功能示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/video-module.png" displayWidth="96%" />

:::info[信息]
- ①：观测位置为 `POSITION_POST_CAPTURER_ORIGIN`。
- ②：观测位置为 `POSITION_POST_CAPTURER`，对应 `onCaptureVideoFrame` 回调。
- ③：观测位置为 `POSITION_PRE_ENCODER`，对应 `onPreEncodeVideoFrame` 回调。
- ④：观测位置为 `POSITION_PRE_RENDERER`，对应 `onRenderVideoFrame` 回调。
:::

视频模块各功能使用到的 API 如下：

- 开启本地视频采集：`enableLocalVideo`
- 本地预览：`setupLocalVideo` → `startPreview`
- 视频渲染显示：`setupRemoteVideo`
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="flutter" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程-8]

### 使用控制台 [#使用控制台-8]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

![控制台创建音视频项目示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/use-console.png)

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程-8]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念-8]

### 轨道 [#轨道-8]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如虚拟背景、美颜、回声消除、降噪等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。

### 音频模块 [#音频模块-7]

在音频互动中，音频模块的主要功能如下图所示：

![音频模块功能示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/audio-module.png)

:::info[信息]
调用 [`registerAudioFrameObserver`](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#api_imediaengine_registeraudioframeobserver) 注册音频观测器后，你可以在音频流程的不同观测位置获取原始音频数据，详情如下：

- ①：通过 [`onEarMonitoringAudioFrame`](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onearmonitoringaudioframe) 回调获取耳返的原始音频数据。
- ②：通过 [`onRecordAudioFrame`](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onrecordaudioframe) 回调获取采集的原始音频数据。
- ③：通过 [`onPlaybackAudioFrameBeforeMixing`](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调获取每条拉流单独的原始音频播放数据。
- ④：通过 [`onPlaybackAudioFrame`](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onplaybackaudioframe) 回调获取所有拉流混合的原始音频播放数据。
- ⑤：通过 [`onMixedAudioFrame`](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onmixedaudioframe) 回调获取采集和播放混音后的原始音频数据。
    即：⑤ `onMixedAudioFrame` = ② `onRecordAudioFrame` + ④ `onPlaybackAudioFrame`。
:::

**音频路由**：App 在播放音频时使用的音频输出设备。常见的音频路由有：有线耳机、听筒、扬声器、蓝牙耳机等。

音频模块各功能使用到的 API 如下：

- 开启本地音频采集：`enableLocalAudio`
- 设置本地播放设备：`setPlaybackDevice`
- 设置音频路由：`setDefaultAudioRouteToSpeakerphone`

### 视频模块 [#视频模块-7]

在视频互动中，视频模块的主要功能如下图所示：

<DocsImage alt="视频模块功能示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/video-module.png" displayWidth="96%" />

:::info[信息]
- ①：观测位置为 `POSITION_POST_CAPTURER_ORIGIN`。
- ②：观测位置为 `POSITION_POST_CAPTURER`，对应 `onCaptureVideoFrame` 回调。
- ③：观测位置为 `POSITION_PRE_ENCODER`，对应 `onPreEncodeVideoFrame` 回调。
- ④：观测位置为 `POSITION_PRE_RENDERER`，对应 `onRenderVideoFrame` 回调。
:::

视频模块各功能使用到的 API 如下：

- 开启本地视频采集：`enableLocalVideo`
- 本地预览：`setupLocalVideo` → `startPreview`
- 视频渲染显示：`setupRemoteVideo`
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="react-native" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程-9]

### 使用控制台 [#使用控制台-9]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

![控制台创建音视频项目示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/use-console.png)

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程-9]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念-9]

### 轨道 [#轨道-9]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如虚拟背景、美颜、回声消除、降噪等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。

### 音频模块 [#音频模块-8]

在音频互动中，音频模块的主要功能如下图所示：

![音频模块功能示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/audio-module.png)

:::info[信息]
调用 [`registerAudioFrameObserver`](/zh-CN/api-reference/rtc/react-native/audio/audio-raw#api_imediaengine_registeraudioframeobserver) 注册音频观测器后，你可以在音频流程的不同观测位置获取原始音频数据，详情如下：

- ①：通过 [`onEarMonitoringAudioFrame`](/zh-CN/api-reference/rtc/react-native/audio/audio-raw#callback_iaudioframeobserverbase_onearmonitoringaudioframe) 回调获取耳返的原始音频数据。
- ②：通过 [`onRecordAudioFrame`](/zh-CN/api-reference/rtc/react-native/audio/audio-raw#callback_iaudioframeobserverbase_onrecordaudioframe) 回调获取采集的原始音频数据。
- ③：通过 [`onPlaybackAudioFrameBeforeMixing`](/zh-CN/api-reference/rtc/react-native/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调获取每条拉流单独的原始音频播放数据。
- ④：通过 [`onPlaybackAudioFrame`](/zh-CN/api-reference/rtc/react-native/audio/audio-raw#callback_iaudioframeobserverbase_onplaybackaudioframe) 回调获取所有拉流混合的原始音频播放数据。
- ⑤：通过 [`onMixedAudioFrame`](/zh-CN/api-reference/rtc/react-native/audio/audio-raw#callback_iaudioframeobserverbase_onmixedaudioframe) 回调获取采集和播放混音后的原始音频数据。
    即：⑤ `onMixedAudioFrame` = ② `onRecordAudioFrame` + ④ `onPlaybackAudioFrame`。
:::

**音频路由**：App 在播放音频时使用的音频输出设备。常见的音频路由有：有线耳机、听筒、扬声器、蓝牙耳机等。

音频模块各功能使用到的 API 如下：

- 开启本地音频采集：`enableLocalAudio`
- 设置本地播放设备：`setPlaybackDevice`
- 设置音频路由：`setDefaultAudioRouteToSpeakerphone`

### 视频模块 [#视频模块-8]

在视频互动中，视频模块的主要功能如下图所示：

<DocsImage alt="视频模块功能示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/video-module.png" displayWidth="96%" />

:::info[信息]
- ①：观测位置为 `POSITION_POST_CAPTURER_ORIGIN`。
- ②：观测位置为 `POSITION_POST_CAPTURER`，对应 `onCaptureVideoFrame` 回调。
- ③：观测位置为 `POSITION_PRE_ENCODER`，对应 `onPreEncodeVideoFrame` 回调。
- ④：观测位置为 `POSITION_PRE_RENDERER`，对应 `onRenderVideoFrame` 回调。
:::

视频模块各功能使用到的 API 如下：

- 开启本地视频采集：`enableLocalVideo`
- 本地预览：`setupLocalVideo` → `startPreview`
- 视频渲染显示：`setupRemoteVideo`
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="unreal" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程-10]

### 使用控制台 [#使用控制台-10]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

![控制台创建音视频项目示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/use-console.png)

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程-10]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念-10]

### 轨道 [#轨道-10]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如虚拟背景、美颜、回声消除、降噪等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。

### 音频模块 [#音频模块-9]

在音频互动中，音频模块的主要功能如下图所示：

![音频模块功能示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/audio-module.png)

:::info[信息]
调用 [`registerAudioFrameObserver`](/zh-CN/api-reference/rtc/unreal-cpp/audio/audio-raw#api_imediaengine_registeraudioframeobserver) 注册音频观测器后，你可以在音频流程的不同观测位置获取原始音频数据，详情如下：

- ①：通过 [`onEarMonitoringAudioFrame`](/zh-CN/api-reference/rtc/unreal-cpp/audio/audio-raw#callback_iaudioframeobserverbase_onearmonitoringaudioframe) 回调获取耳返的原始音频数据。
- ②：通过 [`onRecordAudioFrame`](/zh-CN/api-reference/rtc/unreal-cpp/audio/audio-raw#callback_iaudioframeobserverbase_onrecordaudioframe) 回调获取采集的原始音频数据。
- ③：通过 [`onPlaybackAudioFrameBeforeMixing`](/zh-CN/api-reference/rtc/unreal-cpp/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调获取每条拉流单独的原始音频播放数据。
- ④：通过 [`onPlaybackAudioFrame`](/zh-CN/api-reference/rtc/unreal-cpp/audio/audio-raw#callback_iaudioframeobserverbase_onplaybackaudioframe) 回调获取所有拉流混合的原始音频播放数据。
- ⑤：通过 [`onMixedAudioFrame`](/zh-CN/api-reference/rtc/unreal-cpp/audio/audio-raw#callback_iaudioframeobserverbase_onmixedaudioframe) 回调获取采集和播放混音后的原始音频数据。
    即：⑤ `onMixedAudioFrame` = ② `onRecordAudioFrame` + ④ `onPlaybackAudioFrame`。
:::

**音频路由**：App 在播放音频时使用的音频输出设备。常见的音频路由有：有线耳机、听筒、扬声器、蓝牙耳机等。

音频模块各功能使用到的 API 如下：

- 开启本地音频采集：`enableLocalAudio`
- 设置本地播放设备：`setPlaybackDevice`
- 设置音频路由：`setDefaultAudioRouteToSpeakerphone`

### 视频模块 [#视频模块-9]

在视频互动中，视频模块的主要功能如下图所示：

<DocsImage alt="视频模块功能示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/video-module.png" displayWidth="96%" />

:::info[信息]
- ①：观测位置为 `POSITION_POST_CAPTURER_ORIGIN`。
- ②：观测位置为 `POSITION_POST_CAPTURER`，对应 `onCaptureVideoFrame` 回调。
- ③：观测位置为 `POSITION_PRE_ENCODER`，对应 `onPreEncodeVideoFrame` 回调。
- ④：观测位置为 `POSITION_PRE_RENDERER`，对应 `onRenderVideoFrame` 回调。
:::

视频模块各功能使用到的 API 如下：

- 开启本地视频采集：`enableLocalVideo`
- 本地预览：`setupLocalVideo` → `startPreview`
- 视频渲染显示：`setupRemoteVideo`
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="blueprint" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程-11]

### 使用控制台 [#使用控制台-11]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

![控制台创建音视频项目示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/use-console.png)

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程-11]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念-11]

### 轨道 [#轨道-11]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如虚拟背景、美颜、回声消除、降噪等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。

### 音频模块 [#音频模块-10]

在音频互动中，音频模块的主要功能如下图所示：

![音频模块功能示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/audio-module.png)

:::info[信息]
调用 `registerAudioFrameObserver` 注册音频观测器后，你可以在音频流程的不同观测位置获取原始音频数据，详情如下：

- ①：通过 `onEarMonitoringAudioFrame` 回调获取耳返的原始音频数据。
- ②：通过 `onRecordAudioFrame` 回调获取采集的原始音频数据。
- ③：通过 `onPlaybackAudioFrameBeforeMixing` 回调获取每条拉流单独的原始音频播放数据。
- ④：通过 `onPlaybackAudioFrame` 回调获取所有拉流混合的原始音频播放数据。
- ⑤：通过 `onMixedAudioFrame` 回调获取采集和播放混音后的原始音频数据。
    即：⑤ `onMixedAudioFrame` = ② `onRecordAudioFrame` + ④ `onPlaybackAudioFrame`。
:::

**音频路由**：App 在播放音频时使用的音频输出设备。常见的音频路由有：有线耳机、听筒、扬声器、蓝牙耳机等。

音频模块各功能使用到的 API 如下：

- 开启本地音频采集：`enableLocalAudio`
- 设置本地播放设备：`setPlaybackDevice`
- 设置音频路由：`setDefaultAudioRouteToSpeakerphone`

### 视频模块 [#视频模块-10]

在视频互动中，视频模块的主要功能如下图所示：

<DocsImage alt="视频模块功能示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/video-module.png" displayWidth="96%" />

:::info[信息]
- ①：观测位置为 `POSITION_POST_CAPTURER_ORIGIN`。
- ②：观测位置为 `POSITION_POST_CAPTURER`，对应 `onCaptureVideoFrame` 回调。
- ③：观测位置为 `POSITION_PRE_ENCODER`，对应 `onPreEncodeVideoFrame` 回调。
- ④：观测位置为 `POSITION_PRE_RENDERER`，对应 `onRenderVideoFrame` 回调。
:::

视频模块各功能使用到的 API 如下：

- 开启本地视频采集：`enableLocalVideo`
- 本地预览：`setupLocalVideo` → `startPreview`
- 视频渲染显示：`setupRemoteVideo`
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="restful" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程-12]

### 使用控制台 [#使用控制台-12]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

<DocsImage alt="控制台创建音视频项目示意图" src="https://web-cdn.agora.io/docs-files/1679883432219" displayWidth="90%" />

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程-12]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念-12]

### 轨道 [#轨道-12]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括：前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如虚拟背景、美颜、回声消除、降噪等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。

### 音频模块 [#音频模块-11]

在音频互动中，音频模块的主要功能如下图所示：

![音频模块功能示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/audio-module.png)

:::info[信息]
调用 [`registerAudioFrameObserver`](/zh-CN/api-reference/rtc/android/audio/audio-raw#registeraudioframeobserver) 注册音频观测器后，你可以在音频流程的不同观测位置获取原始音频数据，详情如下：

- ①：通过 [`onEarMonitoringAudioFrame`](/zh-CN/api-reference/rtc/android/audio/audio-raw#onearmonitoringaudioframe) 回调获取耳返的原始音频数据。
- ②：通过 [`onRecordAudioFrame`](/zh-CN/api-reference/rtc/android/audio/audio-raw#onrecordaudioframe) 回调获取采集的原始音频数据。
- ③：通过 [`onPlaybackAudioFrameBeforeMixing`](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调获取每条拉流单独的原始音频播放数据。
- ④：通过 [`onPlaybackAudioFrame`](/zh-CN/api-reference/rtc/android/audio/audio-raw#onplaybackaudioframe) 回调获取所有拉流混合的原始音频播放数据。
- ⑤：通过 [`onMixedAudioFrame`](/zh-CN/api-reference/rtc/android/audio/audio-raw#onmixedaudioframe) 回调获取采集和播放混音后的原始音频数据。
    即：⑤ `onMixedAudioFrame` = ② `onRecordAudioFrame` + ④ `onPlaybackAudioFrame`
:::

**音频路由**：App 在播放音频时使用的音频输出设备。常见的音频路由有：有线耳机、听筒、扬声器、蓝牙耳机等。

音频模块各功能使用到的 API 如下：

- 开启本地音频采集：`enableLocalAudio`
- 设置本地播放设备：`setPlaybackDevice`
- 设置音频路由：`setDefaultAudioRouteToSpeakerphone`

### 视频模块 [#视频模块-11]

在视频互动中，视频模块的主要功能如下图所示：

<DocsImage alt="视频模块功能示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/video-module.png" displayWidth="96%" />

:::info[信息]
- ①：观测位置为 `POSITION_POST_CAPTURER_ORIGIN`。
- ②：观测位置为 `POSITION_POST_CAPTURER`，对应 `onCaptureVideoFrame` 回调。
- ③：观测位置为 `POSITION_PRE_ENCODER`，对应 `onPreEncodeVideoFrame` 回调。
- ④：观测位置为 `POSITION_PRE_RENDERER`，对应 `onRenderVideoFrame` 回调。
:::

视频模块各功能使用到的 API 如下：

- 开启本地视频采集：`enableLocalVideo`
- 本地预览：`setupLocalVideo` → `startPreview`
- 视频渲染显示：`setupRemoteVideo`
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="csharp" />
本文介绍使用声网 RTC SDK 需要了解的流程或概念。

**RTC**（Real-Time Communication）指实时通信技术。这种技术可以让信息发送方与接收方的任何通信服务几乎同时发生。相比泛指的通信，RTC 更加聚焦实时性，可以在极短的时间内传输音频、视频、数据等信息，从而实现实时交流和互动。

<a id="rtc"></a>
声网的 RTC SDK 是提供音视频实时互动云服务的产品，支持多平台多设备运行，可实现一对一单聊、多人群聊，同时具备纯语音通话、高清视频通话和互动直播功能。

## 流程 [#流程-13]

### 使用控制台 [#使用控制台-13]

使用声网音视频服务首先需要在**控制台**创建音视频项目，详见[开通声网服务](/zh-CN/realtime-media/rtc/build/setup-and-access/enable-service)。

![控制台创建音视频项目示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/use-console.png)

**[控制台](/zh-CN/introduction/glossary#console)**：声网提供给开发者管理声网各项服务的工具。控制台提供直观的界面，方便开发者在使用声网各项服务时进行充值、查询、管理等操作。

**[App ID](/zh-CN/introduction/glossary#appid)**：声网为开发项目生成的字符串，是项目的唯一标识。

**[App 证书](/zh-CN/introduction/glossary#app-certificate)**：又名 App Certificate，它是声网控制台为开发项目生成的随机字符串，用于开启 Token 鉴权，并作为生成 Token 的参数之一。

**[Token](/zh-CN/introduction/glossary#token)**：也称为动态密钥，是在加入频道时用于校验用户权限的一组字符串。

在控制台获取 App ID、App 证书和 Token 后，就可以开始尝试实现音视频通信的基本流程了。

### 音视频基本流程 [#音视频基本流程-13]

下图展示了利用声网 RTC SDK 实现音视频互动的工作流程。

<DocsImage alt="音视频互动基本流程示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/basic-sequence.png" displayWidth="83%" />

**流**：一路流是一系列数字编码的连续信号，包含音频或视频数据。

**频道**：由开发者调用声网提供的 API 创建的、用于传输实时数据的通道。

**发布**：指频道中的用户将音视频数据发送到频道的操作。

**订阅**：指频道中的用户接收频道内已发布的音视频流的操作。

**用户 ID**：在 App ID 一致的前提下，用户 ID 是用户的唯一标识符。

**用户角色**：用于定义频道内用户是否有发流权限，分别有**主播**和**观众**两种用户角色。

- **主播**：频道内有发流权限的用户。
- **观众**：频道内没有发流权限的用户。观众只能订阅远端音视频流，不能发布音视频流。

**连接（RtcConnection）**：SDK 与 RTC 频道间的连接。当你需要在多个频道中发布或接收多路流时，一个连接用于指定一个目标频道。

**[SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)**：是 Software\-Defined Real-Time Network 的缩写，即软件定义实时网，这是声网自建的底层实时传输网络。

## 概念 [#概念-13]

### 轨道 [#轨道-13]

轨道（track）包含了特定的音频或视频信息，由输入源（source）、过滤器（filter）和输出端（sink/renderer）三个部分组成；根据在 RTC 流程中功能的不同，又可分为上行轨道（发送端）和下行轨道（接收端）。

![轨道组成示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/track.png)

**输入源**：位于轨道的起始端，表示本地待发布的音视频数据，可以是摄像头、屏幕采集、麦克风，也可以是从文件解析得到的音频/视频等。

**过滤器**：对音视频进行一系列处理，包括前处理和后处理，以及将处理后的音视频信号传输到输出端。过滤器可以连接多个输入源或者多个输出端。

- **前处理**：在 RTC 里发送端轨道内的音频/视频过滤器，如虚拟背景、美颜、回声消除、降噪等。
- **后处理**：在 RTC 里接收端轨道内的音频/视频过滤器，如超分辨率、空间音频等。

**输出端**：位于轨道的末端，通常轨道会在此处结束，比如编码器、渲染器等。

### 音频模块 [#音频模块-12]

在音频互动中，音频模块的主要功能如下图所示：

![音频模块功能示意图](https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/audio-module.png)

:::info[信息]
调用 [`registerAudioFrameObserver`](/zh-CN/api-reference/rtc/csharp-windows/audio/audio-raw#api_imediaengine_registeraudioframeobserver) 注册音频观测器后，你可以在音频流程的不同观测位置获取原始音频数据，详情如下：

- ①：通过 [`onEarMonitoringAudioFrame`](/zh-CN/api-reference/rtc/csharp-windows/audio/audio-raw#callback_iaudioframeobserverbase_onearmonitoringaudioframe) 回调获取耳返的原始音频数据。
- ②：通过 [`onRecordAudioFrame`](/zh-CN/api-reference/rtc/csharp-windows/audio/audio-raw#callback_iaudioframeobserverbase_onrecordaudioframe) 回调获取采集的原始音频数据。
- ③：通过 [`onPlaybackAudioFrameBeforeMixing`](/zh-CN/api-reference/rtc/csharp-windows/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调获取每条拉流单独的原始音频播放数据。
- ④：通过 [`onPlaybackAudioFrame`](/zh-CN/api-reference/rtc/csharp-windows/audio/audio-raw#callback_iaudioframeobserverbase_onplaybackaudioframe) 回调获取所有拉流混合的原始音频播放数据。
- ⑤：通过 [`onMixedAudioFrame`](/zh-CN/api-reference/rtc/csharp-windows/audio/audio-raw#callback_iaudioframeobserverbase_onmixedaudioframe) 回调获取采集和播放混音后的原始音频数据。
    即：⑤ `onMixedAudioFrame` = ② `onRecordAudioFrame` + ④ `onPlaybackAudioFrame`。
:::

**音频路由**：App 在播放音频时使用的音频输出设备。常见的音频路由有：有线耳机、听筒、扬声器、蓝牙耳机等。

音频模块各功能使用到的 API 如下：

- 开启本地音频采集：`enableLocalAudio`
- 设置本地播放设备：`setPlaybackDevice`
- 设置音频路由：`setDefaultAudioRouteToSpeakerphone`

### 视频模块 [#视频模块-12]

在视频互动中，视频模块的主要功能如下图所示：

<DocsImage alt="视频模块功能示意图" src="https://web-cdn.agora.io/docs-portal/img/rtc/key-concept/video-module.png" displayWidth="96%" />

:::info[信息]
- ①：观测位置为 `POSITION_POST_CAPTURER_ORIGIN`。
- ②：观测位置为 `POSITION_POST_CAPTURER`，对应 `onCaptureVideoFrame` 回调。
- ③：观测位置为 `POSITION_PRE_ENCODER`，对应 `onPreEncodeVideoFrame` 回调。
- ④：观测位置为 `POSITION_PRE_RENDERER`，对应 `onRenderVideoFrame` 回调。
:::

视频模块各功能使用到的 API 如下：

- 开启本地视频采集：`enableLocalVideo`
- 本地预览：`setupLocalVideo` → `startPreview`
- 视频渲染显示：`setupRemoteVideo`
<_PlatformProcessedMarker close="true" />
</_PlatformTabsGroup>
