# 实现极速直播 (/zh-CN/realtime-media/rtc/build/advanced-channel/ls-quick-start)

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

<_PlatformTabsGroup>
<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="android" />
本文介绍如何集成声网实时互动 SDK，在基础的音视频互动能力上进行少量代码修改，即可实现一个极速直播 App。极速直播是区别于互动直播的一种直播场景，两者的区别在于观众端的延时级别：

- 互动直播：观众端的延时级别为**超低延时**，以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播：观众端的延时级别为**低延时**，可以满足主播与观众较低频率的音视频互动，或者回应观众文字、弹幕及打赏信息。

更多关于极速直播的延时指标、同步性、互动体验以及费用介绍，详见[直播场景区别](/zh-CN/reference/faq/product/streaming_difference)和[计费说明](/zh-CN/realtime-media/rtc/reference/billing-strategy)。

## 前提条件 [#前提条件]

开始前，请确保已在你的项目中实现基本的实时音视频功能。详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤]

将直播场景下观众端的延时级别修改为低延时，即可将一个互动直播 App 修改为极速直播 App，有以下两种实现方式：

- 在加入频道后，调用 `setClientRole` [2/2] 方法，将 `role` 参数设置为 `CLIENT_ROLE_AUDIENCE`（观众）；通过 `options` 参数将 `audienceLatencyLevel` 设置为 `AUDIENCE_LATENCY_LEVEL_LOW_LATENCY`（低延时）。
- 在调用 `joinChannel` [2/2] 加入频道时，将 `clientRoleType` 参数设置为 `CLIENT_ROLE_AUDIENCE`（观众）；将 `audienceLatencyLevel` 参数设置为 `AUDIENCE_LATENCY_LEVEL_LOW_LATENCY`（低延时）。示例代码如下：

```java
// 创建 ChannelMediaOptions 对象，并进行配置
ChannelMediaOptions options = new ChannelMediaOptions();
// highlight-start
// 根据场景将用户角色设置为 AUDIENCE (观众)
options.clientRoleType = Constants.CLIENT_ROLE_AUDIENCE;
// 将延时级别设置为 AUDIENCE_LATENCY_LEVEL_LOW_LATENCY (低延时)
options.audienceLatencyLevel = Constants.AUDIENCE_LATENCY_LEVEL_LOW_LATENCY;
// highlight-end
// 直播场景下，设置频道场景为 BROADCASTING (直播场景)
options.channelProfile = Constants.CHANNEL_PROFILE_LIVE_BROADCASTING;
// 发布麦克风采集的音频
options.publishMicrophoneTrack = true;
// 发布摄像头采集的视频
options.publishCameraTrack = true;
// 自动订阅所有音频流
options.autoSubscribeAudio = true;
// 自动订阅所有视频流
options.autoSubscribeVideo = true;

// 使用临时 Token 加入频道，自行指定用户 ID 并确保其在频道内的唯一性
mRtcEngine.joinChannel(token, channelName, 0, options);
```

## 后续步骤 [#后续步骤]

本文的示例使用了临时 Token 加入频道。在测试或生产环境中，为保证通信安全，声网推荐从服务器中获取 Token，详情请参考[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。

## 参考信息 [#参考信息]

### 示例项目 [#示例项目]

声网提供了开源的实时音视频互动示例项目供你参考，你可以前往下载或查看其中的源代码。

<Cards>
  <Card title={<RepositoryCardTitle provider="gitee">LiveStreaming</RepositoryCardTitle>} href="https://gitee.com/agoraio-community/API-Examples/blob/main/Android/APIExample/app/src/main/java/io/agora/api/example/examples/advanced/LiveStreaming.java" />
  <Card title={<RepositoryCardTitle provider="github">LiveStreaming</RepositoryCardTitle>} href="https://github.com/Shengwang-Community/API-Examples/blob/main/Android/APIExample/app/src/main/java/io/agora/api/example/examples/advanced/LiveStreaming.java" />
</Cards>

### 常见问题 [#常见问题]

- [各类直播场景有什么区别？](/zh-CN/reference/faq/product/streaming_difference)
- [直播场景下，如何监听远端观众角色用户加入/离开频道的事件？](/zh-CN/reference/faq/integration/audience_event)
- [如何处理视频黑屏问题？](/zh-CN/reference/faq/quality/video_blank)
- [为什么我无法打开摄像头？](/zh-CN/reference/faq/quality/video_camera)
- [如何处理频道相关常见问题？](/zh-CN/reference/faq/integration/channel)
- [如何设置日志文件？](/zh-CN/reference/faq/integration/set_log_file)
- [为什么部分 Android 版本应用锁屏或切后台后采集音视频无效？](/zh-CN/reference/faq/quality/android_background)

### 相关文档 [#相关文档]

- [SDK 错误码](/zh-CN/realtime-media/rtc/reference/error-code)
- [频道连接状态管理](/zh-CN/realtime-media/rtc/build/initialize-and-channel/channel-connection)
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="ios" />
本文介绍如何集成声网实时互动 SDK，在基础的音视频互动能力上进行少量代码修改，即可实现一个极速直播 App。
极速直播是区别于互动直播的一种直播场景，两者的区别在于观众端的延时级别：

- 互动直播：观众端的延时级别为**超低延时**，以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播：观众端的延时级别为**低延时**，可以满足主播与观众较低频率的音视频互动，或者回应观众文字、弹幕及打赏信息。

更多关于极速直播的延时指标、同步性、互动体验以及费用介绍，详见[直播场景区别](/zh-CN/reference/faq/product/streaming_difference)和[计费说明](/zh-CN/realtime-media/rtc/reference/billing-strategy)。

## 前提条件 [#前提条件-1]

开始前，请确保已在你的项目中实现基本的实时音视频功能。详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-1]

将直播场景下观众端的延时级别修改为低延时，即可将一个互动直播修改为极速直播，有以下两种实现方式：

- 在调用 `joinChannelByToken` [2/4] 加入频道时，将 `clientRoleType`参数设置为 `AgoraClientRoleAudience`（观众）；将 `audienceLatencyLevel` 参数设置为 `AgoraAudienceLatencyLevelLowLatency`（低延时）。
- 在加入频道后，调用 `setClientRole` [2/2] 方法，将 `role` 参数设置为 `AgoraClientRoleAudience`（观众）；将 `options` 参数设置为 `AgoraAudienceLatencyLevelLowLatency`（低延时），示例代码如下：

    ```swift
    // 设置用户角色为观众并设置低延时级别
    let role = AgoraClientRole.audience
    let options = AgoraClientRoleOptions()
    options.audienceLatencyLevel.AgoraAudienceLatencyLevelLowLatency = true

    agoraKit.setClientRole(role, options: options)
    ```

## 后续步骤 [#后续步骤-1]

本文的示例使用了临时 Token 加入频道。在测试或生产环境中，为确保通信安全，声网推荐使用 Token 服务器来生成 Token，详见[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。

## 参考信息 [#参考信息-1]

### 示例项目 [#示例项目-1]

声网提供了开源的实时互动示例项目供你参考，你可以前往下载或查看其中的源代码。

<Cards>
  <Card title={<RepositoryCardTitle provider="gitee">LiveStreaming</RepositoryCardTitle>} href="https://gitee.com/agoraio-community/API-Examples/tree/main/iOS/APIExample/APIExample/Examples/Advanced/LiveStreaming" />
  <Card title={<RepositoryCardTitle provider="github">LiveStreaming</RepositoryCardTitle>} href="https://github.com/Shengwang-Community/API-Examples/blob/main/iOS/APIExample/APIExample/Examples/Advanced/LiveStreaming" />
</Cards>

### 常见问题 [#常见问题-1]

- [各类直播场景有什么区别？](/zh-CN/reference/faq/product/streaming_difference)
- [直播场景下，如何监听远端观众角色用户加入/离开频道的事件？](/zh-CN/reference/faq/integration/audience_event)
- [如何处理视频黑屏问题？](/zh-CN/reference/faq/quality/video_blank)
- [如何处理 CocoaPods 常见问题？](/zh-CN/reference/faq/integration/cocoapods_problems)
- [为什么我无法打开摄像头？](/zh-CN/reference/faq/quality/video_camera)
- [如何处理频道相关常见问题？](/zh-CN/reference/faq/integration/channel)

- [如何设置日志文件？](/zh-CN/reference/faq/integration/set_log_file)
- [如何处理无声问题？](/zh-CN/reference/faq/quality/audio_noaudio)
- [为什么部分 iOS 版本 App 锁屏或切后台后音视频采集无效？](/zh-CN/reference/faq/quality/ios_background)

### 相关文档 [#相关文档-1]

- [SDK 错误码](/zh-CN/realtime-media/rtc/reference/error-code)
- [频道连接状态管理](/zh-CN/realtime-media/rtc/build/initialize-and-channel/channel-connection)
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="macos" />
本文介绍如何集成声网实时互动 SDK，在基础的音视频互动能力上进行少量代码修改，即可实现一个极速直播 App。
极速直播是区别于互动直播的一种直播场景，两者的区别在于观众端的延时级别：

- 互动直播：观众端的延时级别为**超低延时**，以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播：观众端的延时级别为**低延时**，可以满足主播与观众较低频率的音视频互动，或者回应观众文字、弹幕及打赏信息。

更多关于极速直播的延时指标、同步性、互动体验以及费用介绍，详见[直播场景区别](/zh-CN/reference/faq/product/streaming_difference)和[计费说明](/zh-CN/realtime-media/rtc/reference/billing-strategy)。

## 前提条件 [#前提条件-2]

开始前，请确保已在你的项目中实现基本的实时音视频功能。详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-2]

将直播场景下观众端的延时级别修改为低延时，即可将一个互动直播修改为极速直播，有以下两种实现方式：

- 在调用 `joinChannelByToken` [2/4] 加入频道时，将 `clientRoleType`参数设置为 `AgoraClientRoleAudience`（观众）；将 `audienceLatencyLevel` 参数设置为 `AgoraAudienceLatencyLevelLowLatency`（低延时）。
- 在加入频道后，调用 `setClientRole` [2/2] 方法，将 `role` 参数设置为 `AgoraClientRoleAudience`（观众）；将 `options` 参数设置为 `AgoraAudienceLatencyLevelLowLatency`（低延时），示例代码如下：

    ```swift
    // 设置用户角色为观众并设置低延时级别
    let role = AgoraClientRole.audience
    let options = AgoraClientRoleOptions()
    options.audienceLatencyLevel.AgoraAudienceLatencyLevelLowLatency = true

    agoraKit.setClientRole(role, options: options)
    ```

## 后续步骤 [#后续步骤-2]

本文的示例使用了临时 Token 加入频道。在测试或生产环境中，为确保通信安全，声网推荐使用 Token 服务器来生成 Token，详见[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。

## 参考信息 [#参考信息-2]

### 示例项目 [#示例项目-2]

声网提供了开源的实时互动示例项目供你参考，你可以前往下载或查看其中的源代码。

<Cards>
  <Card title={<RepositoryCardTitle provider="gitee">LiveStreaming</RepositoryCardTitle>} href="https://gitee.com/agoraio-community/API-Examples/tree/main/macOS/APIExample/Examples/Advanced/LiveStreaming" />
  <Card title={<RepositoryCardTitle provider="github">LiveStreaming</RepositoryCardTitle>} href="https://github.com/Shengwang-Community/API-Examples/tree/main/macOS/APIExample/Examples/Advanced/LiveStreaming" />
</Cards>

### 常见问题 [#常见问题-2]

- [各类直播场景有什么区别？](/zh-CN/reference/faq/product/streaming_difference)
- [直播场景下，如何监听远端观众角色用户加入/离开频道的事件？](/zh-CN/reference/faq/integration/audience_event)
- [如何处理视频黑屏问题？](/zh-CN/reference/faq/quality/video_blank)
- [如何处理 CocoaPods 常见问题？](/zh-CN/reference/faq/integration/cocoapods_problems)
- [为什么我无法打开摄像头？](/zh-CN/reference/faq/quality/video_camera)
- [如何处理频道相关常见问题？](/zh-CN/reference/faq/integration/channel)

- [编译 Xcode 项目时遇到 “无法打开 framework” 的弹窗警告怎么办？](/zh-CN/reference/faq/integration/framework_cannot_be_opened)

- [如何设置日志文件？](/zh-CN/reference/faq/integration/set_log_file)
- [如何处理无声问题？](/zh-CN/reference/faq/quality/audio_noaudio)
- [为什么部分 iOS 版本 App 锁屏或切后台后音视频采集无效？](/zh-CN/reference/faq/quality/ios_background)

### 相关文档 [#相关文档-2]

- [SDK 错误码](/zh-CN/realtime-media/rtc/reference/error-code)
- [频道连接状态管理](/zh-CN/realtime-media/rtc/build/initialize-and-channel/channel-connection)
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="web" />
本文介绍如何集成声网实时互动 SDK，在基础的音视频互动能力上进行少量代码修改，即可实现一个极速直播 App。
极速直播是区别于互动直播的一种直播场景，两者的区别在于观众端的延时级别：

- 互动直播：观众端的延时级别为**超低延时**，以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播：观众端的延时级别为**低延时**，可以满足主播与观众较低频率的音视频互动，或者回应观众文字、弹幕及打赏信息。

更多关于极速直播的延时指标、同步性、互动体验以及费用介绍，详见[直播场景区别](/zh-CN/reference/faq/product/streaming_difference)和[计费说明](/zh-CN/realtime-media/rtc/reference/billing-strategy)。

## 前提条件 [#前提条件-3]

开始前，请确保已在你的项目中实现基本的实时音视频功能。详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现低延时观众端 [#实现低延时观众端]

调用 [`setClientRole`](/zh-CN/api-reference/rtc/web/interfaces/iagorartcclient#setclientrole) 方法时，除了将角色 `role` 设为 `"audience"`（观众），你还需要将延时等级 `level` 设为 `1`，即可将直播场景下观众端的延时级别修改为低延时。

```javascript
// 添加以下代码
let clientRoleOptions = {
    // 设置观众端的延时级别为低延时
    level: 1
}

// 修改 setClientRole 中传入的参数
rtc.client.setClientRole(options.role, clientRoleOptions);
```

## 后续步骤 [#后续步骤-3]

为保障通信安全，在正式生产环境中，你需要在自己的 App 服务端生成 Token。详见[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。

## 参考信息 [#参考信息-3]

### 示例项目 [#示例项目-3]

声网提供了开源的示例项目供你参考，你可以前往下载或查看其中的源代码。
<Cards>
  <Card title={<RepositoryCardTitle provider="gitee">示例项目</RepositoryCardTitle>} href="https://gitee.com/agoraio-community/API-Examples-Web/tree/main/src/example" />
  <Card title={<RepositoryCardTitle provider="github">示例项目</RepositoryCardTitle>} href="https://github.com/Shengwang-Lab/API-Examples-Web/tree/main/src/example" />
</Cards>

### 其它集成方式 [#其它集成方式]

使用 npm 集成 Web SDK 还支持开启 Tree shaking 来减小集成 SDK 后的 App 体积，详见[使用 Tree shaking](/zh-CN/realtime-media/rtc/build/optimize-and-operate/tree-shaking)。

除使用 npm 获取 Web SDK 之外，你还可以使用以下方法获取 SDK：

- 在项目 HTML 文件中，添加如下代码，使用 CDN 方法获取 SDK：

  ```html
  <script src="https://download.agora.io/sdk/release/AgoraRTC_N-4.24.9.js"></script>
  ```

- 下载[声网 Web SDK 4.x 版本 SDK 包](/zh-CN/realtime-media/rtc/reference/downloads)至本地，将 SDK 包中的 `.js` 文件保存到项目文件所在的目录下，然后在项目 HTML 文件中添加如下代码：

  ```html
  <script src="./AgoraRTC_N-4.24.9.js"></script>
  ```

:::info[信息]
在以上方法中，SDK 都会在全局导出一个 `AgoraRTC` 对象，直接访问这个对象即可操作 SDK。
:::
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="windows" />
本文介绍如何集成声网实时互动 SDK，在基础的音视频互动能力上进行少量代码修改，即可实现一个极速直播 App。
极速直播是区别于互动直播的一种直播场景，两者的区别在于观众端的延时级别：

- 互动直播：观众端的延时级别为**超低延时**，以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播：观众端的延时级别为**低延时**，可以满足主播与观众较低频率的音视频互动，或者回应观众文字、弹幕及打赏信息。

更多关于极速直播的延时指标、同步性、互动体验以及费用介绍，详见[直播场景区别](/zh-CN/reference/faq/product/streaming_difference)和[计费说明](/zh-CN/realtime-media/rtc/reference/billing-strategy)。
## 前提条件 [#前提条件-4]

已在你的项目中实现基本的实时音视频功能。详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-3]

<Tabs defaultValue="windows" groupId="operating-systems" persist>
<TabsList>
  <TabsTrigger value="windows">C++</TabsTrigger>
  <TabsTrigger value="csharp">C#</TabsTrigger>
</TabsList>

<TabsContent value="windows">

将直播场景下观众端的延时级别修改为低延时，即可将一个互动直播修改为极速直播，有以下两种实现方式：

- 在调用 `joinChannel` [2/2] 加入频道时，在 `options` 参数中将 `clientRoleType` 参数设置为 `CLIENT_ROLE_AUDIENCE`（观众）；将 `audienceLatencyLevel` 参数设置为 `AUDIENCE_LATENCY_LEVEL_LOW_LATENCY`（低延时）。
- 在加入频道后，调用 `setClientRole` [2/2] 方法，将 `role` 参数设置为 `CLIENT_ROLE_AUDIENCE`（观众）；将 `options` 参数设置为 `AUDIENCE_LATENCY_LEVEL_LOW_LATENCY`（低延时），示例代码如下：

```cpp
ChannelMediaOptions option;
// 设置频道场景为直播
option.channelProfile = CHANNEL_PROFILE_LIVE_BROADCASTING;
// 设置用户角色为观众
option.clientRoleType = CLIENT_ROLE_AUDIENCE;
// 将观众端延时级别设为低延时
option.audienceLatencyLevel = AUDIENCE_LATENCY_LEVEL_LOW_LATENCY;
// 自动订阅频道内的音频流
option.autoSubscribeAudio = true;
// 自动订阅频道内的视频流
option.autoSubscribeVideo = true;
// 填入你在控制台获取的临时 Token 加入频道
int ret = m_rtcEngine->joinChannel(token, cs2utf8(strChannelName).c_str(), 0, option);
```

</TabsContent>

<TabsContent value="csharp">

将直播场景下观众端的延时级别修改为低延时，即可将一个互动直播修改为极速直播，有以下两种实现方式：

- 在调用 `JoinChannel` [2/2] 加入频道时，在 `options` 参数中将 `clientRoleType` 参数设置为 `CLIENT_ROLE_AUDIENCE`（观众）；将 `audienceLatencyLevel` 参数设置为 `AUDIENCE_LATENCY_LEVEL_LOW_LATENCY`（低延时）。
- 在加入频道后，调用 `SetClientRole` [2/2] 方法，将 `role` 参数设置为 `CLIENT_ROLE_AUDIENCE`（观众）；将 `options` 参数设置为 `AUDIENCE_LATENCY_LEVEL_LOW_LATENCY`（低延时），示例代码如下：

  ```csharp
  ChannelMediaOptions options = new ChannelMediaOptions();
      // 将频道场景设置为直播。
      options.channelProfile.SetValue(CHANNEL_PROFILE_TYPE.CHANNEL_PROFILE_LIVE_BROADCASTING);
      // 将用户角色设置为主播或观众。此处以观众为例。
      options.clientRoleType.SetValue(CLIENT_ROLE_TYPE.CLIENT_ROLE_AUDIENCE);
      // 对于极速直播下的观众，需设置用户级别为 AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY；对于主播，无需此设置。
      options.audienceLatencyLevel.SetValue(AUDIENCE_LATENCY_LEVEL_TYPE.AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY);
  ```

</TabsContent>
</Tabs>

## 后续步骤 [#后续步骤-4]

本文的示例使用了临时 Token 加入频道。在测试或生产环境中，为确保通信安全，声网推荐使用 Token 服务器来生成 Token，详见[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。

## 参考信息 [#参考信息-4]

### 示例项目 [#示例项目-4]

声网提供了开源的示例项目供你参考，你可以前往下载或查看其中的源代码。

<Tabs defaultValue="windows" groupId="example" persist>
<TabsList>
  <TabsTrigger value="windows">C++</TabsTrigger>
  <TabsTrigger value="csharp">C#</TabsTrigger>
</TabsList>

<TabsContent value="windows">

<Cards>
  <Card title={<RepositoryCardTitle provider="gitee">LiveBroadcasting</RepositoryCardTitle>} href="https://gitee.com/agoraio-community/API-Examples/tree/main/windows/APIExample/APIExample/Basic/LiveBroadcasting" />
  <Card title={<RepositoryCardTitle provider="github">LiveBroadcasting</RepositoryCardTitle>} href="https://github.com/Shengwang-Community/API-Examples/tree/main/windows/APIExample/APIExample/Basic/LiveBroadcasting" />
</Cards>

</TabsContent>

<TabsContent value="csharp">

<Cards>
  <Card title={<RepositoryCardTitle provider="gitee">JoinChannelVideo</RepositoryCardTitle>} href="https://gitee.com/agoraio-community/Agora-C_Sharp-SDK/tree/main/Agora-C_Sharp-RTC-SDK-API_Example/src/Basic/JoinChannelVideo" />
  <Card title={<RepositoryCardTitle provider="github">JoinChannelVideo</RepositoryCardTitle>} href="https://github.com/AgoraIO-Extensions/Agora-C_Sharp-SDK/tree/master/APIExample/src/Basic/JoinChannelVideo" />
</Cards>

</TabsContent>
</Tabs>

### 常见问题 [#常见问题-3]

- [各类直播场景有什么区别？](/zh-CN/reference/faq/product/streaming_difference)
- [直播场景下，如何监听远端观众角色用户加入/离开频道的事件？](/zh-CN/reference/faq/integration/audience_event)
- [如何处理视频黑屏问题？](/zh-CN/reference/faq/quality/video_blank)
- [为什么我无法打开摄像头？](/zh-CN/reference/faq/quality/video_camera)
- [如何处理频道相关常见问题？](/zh-CN/reference/faq/integration/channel)
- [如何设置日志文件？](/zh-CN/reference/faq/integration/set_log_file)

### 相关文档 [#相关文档-3]

- [SDK 错误码](/zh-CN/realtime-media/rtc/reference/error-code)
- [频道连接状态管理](/zh-CN/realtime-media/rtc/build/initialize-and-channel/channel-connection)
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="harmonyos" />
本文介绍如何集成声网实时互动 SDK，在基础的音视频互动能力上进行少量代码修改，即可实现一个极速直播 App。
极速直播是区别于互动直播的一种直播场景，两者的区别在于观众端的延时级别：

- 互动直播：观众端的延时级别为**超低延时**，以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播：观众端的延时级别为**低延时**，可以满足主播与观众较低频率的音视频互动，或者回应观众文字、弹幕及打赏信息。

更多关于极速直播的延时指标、同步性、互动体验以及费用介绍，详见[直播场景区别](/zh-CN/reference/faq/product/streaming_difference)和[计费说明](/zh-CN/realtime-media/rtc/reference/billing-strategy)。

## 前提条件 [#前提条件-5]

开始前，请确保已在你的项目中实现基本的实时音视频功能。详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现方法 [#实现方法]

将直播场景下观众端的延时级别修改为低延时，即可将一个互动直播修改为极速直播，有以下两种实现方式：

- 在调用 `joinChannelByToken`[2/4] 加入频道时，将 `clientRoleType` 参数设置为 `AUDIENCE`（观众）；将 `audienceLatencyLevel` 参数设置为 `LOW_LATENCY`（低延时）。
- 在加入频道后，调用 `setClientRole`[2/2] 方法，将 `role` 参数设置为 `AUDIENCE`（观众）；将 `options` 参数设置为 `LOW_LATENCY`（低延时），示例代码如下：

    ```arkts
    // 设置用户角色为观众，并按场景设置延时级别
    let option = new ClientRoleOptions();
    option.audienceLatencyLevel = this.lowLegacyLiving ? Constants.AudienceLatencyLevel.LOW_LATENCY : Constants.AudienceLatencyLevel.ULTRA_LOW_LATENCY;
    this.rtcEngine?.setClientRole(Constants.ClientRole.AUDIENCE, option);
    ```

## 后续步骤 [#后续步骤-5]

本文的示例使用了临时 Token 加入频道。在测试或生产环境中，为确保通信安全，声网推荐使用 Token 服务器来生成 Token，详见[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。

## 相关信息 [#相关信息]

### 示例项目 [#示例项目-5]

声网提供了开源的实时互动示例项目供你参考，你可以前往下载或查看其中的源代码。

<Cards>
  <Card title={<RepositoryCardTitle provider="gitee">LiveStreaming</RepositoryCardTitle>} href="https://gitee.com/agoraio-community/API-Examples/tree/main/HarmonyOS/APIExample/entry/src/main/ets/pages/advance/LiveStreaming.ets" />
  <Card title={<RepositoryCardTitle provider="github">LiveStreaming</RepositoryCardTitle>} href="https://github.com/Shengwang-Community/API-Examples/tree/main/HarmonyOS/APIExample/entry/src/main/ets/pages/advance/LiveStreaming.ets" />
</Cards>

### 常见问题 [#常见问题-4]

- [各类直播场景有什么区别？](/zh-CN/reference/faq/product/streaming_difference)
- [直播场景下，如何监听远端观众角色用户加入/离开频道的事件？](/zh-CN/reference/faq/integration/audience_event)
- [如何处理视频黑屏问题？](/zh-CN/reference/faq/quality/video_blank)
- [为什么我无法打开摄像头？](/zh-CN/reference/faq/quality/video_camera)
- [如何处理频道相关常见问题？](/zh-CN/reference/faq/integration/channel)
- [如何设置日志文件？](/zh-CN/reference/faq/integration/set_log_file)
- [如何处理无声问题？](/zh-CN/reference/faq/quality/audio_noaudio)
- [为什么部分鸿蒙版本 App 锁屏或切后台音视频采集无效？](/zh-CN/reference/faq/quality/harmonyos_background)

### 相关文档 [#相关文档-4]

- [SDK 错误码](/zh-CN/realtime-media/rtc/reference/error-code)
- [频道连接状态管理](/zh-CN/realtime-media/rtc/build/initialize-and-channel/channel-connection)
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="electron" />
本文介绍如何集成声网实时互动 SDK，在基础的音视频互动能力上进行少量代码修改，即可实现一个极速直播 App。
极速直播是区别于互动直播的一种直播场景，两者的区别在于观众端的延时级别：

- 互动直播：观众端的延时级别为**超低延时**，以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播：观众端的延时级别为**低延时**，可以满足主播与观众较低频率的音视频互动，或者回应观众文字、弹幕及打赏信息。

更多关于极速直播的延时指标、同步性、互动体验以及费用介绍，详见[直播场景区别](/zh-CN/reference/faq/product/streaming_difference)和[计费说明](/zh-CN/realtime-media/rtc/reference/billing-strategy)。

## 前提条件 [#前提条件-6]

开始前，请确保已在你的项目中实现基本的实时音视频功能。详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-4]

将直播场景下观众端的延时级别修改为低延时，即可将一个互动直播修改为极速直播，有以下两种实现方式：

- 在加入频道后，调用 `setClientRole` 方法，将 `role` 参数设置为 `ClientRoleAudience`（观众）；将 `options` 参数设置为 `AudienceLatencyLevelLowLatency`（低延时）。
- 在调用 `joinChannel` 加入频道时，将 `clientRoleType` 参数设置为 `ClientRoleAudience`（观众）；将 `audienceLatencyLevel` 参数设置为 `AudienceLatencyLevelLowLatency`（低延时）。示例代码如下：

    ```javascript
    rtcEngine.joinChannel(token, channel, uid, {
      clientRoleType: ClientRoleType.ClientRoleAudience
      audienceLatencyLevel: AudienceLatencyLevelType.AudienceLatencyLevelLowLatency
    });
    ```

## 后续步骤 [#后续步骤-6]

本文的示例使用了临时 Token 加入频道。在测试或生产环境中，为确保通信安全，声网推荐使用 Token 服务器来生成 Token，详见[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。

## 参考信息 [#参考信息-5]

### 示例项目 [#示例项目-6]

声网提供了开源的实时音视频互动示例项目供你参考，你可以前往下载或查看其中的源代码。
<Cards>
  <Card title={<RepositoryCardTitle provider="gitee">JoinChannelVideo</RepositoryCardTitle>} href="https://gitee.com/agoraio-community/Electron-SDK/blob/main/example/src/renderer/examples/basic/JoinChannelVideo/JoinChannelVideo.tsx" />
  <Card title={<RepositoryCardTitle provider="github">JoinChannelVideo</RepositoryCardTitle>} href="https://github.com/AgoraIO-Extensions/Electron-SDK/blob/main/example/src/renderer/examples/basic/JoinChannelVideo/JoinChannelVideo.tsx" />
</Cards>

### 常见问题 [#常见问题-5]

- [Electron 平台常见开发问题](/zh-CN/reference/faq/integration/electron_faq)
- [各类直播场景有什么区别？](/zh-CN/reference/faq/product/streaming_difference)
- [直播场景下，如何监听远端观众角色用户加入/离开频道的事件？](/zh-CN/reference/faq/integration/audience_event)
- [如何处理视频黑屏问题？](/zh-CN/reference/faq/quality/video_blank)
- [为什么我无法打开摄像头？](/zh-CN/reference/faq/quality/video_camera)
- [如何处理频道相关常见问题？](/zh-CN/reference/faq/integration/channel)
- [如何设置日志文件？](/zh-CN/reference/faq/integration/set_log_file)
- [为什么部分 Android 版本应用锁屏或切后台后采集音视频无效？](/zh-CN/reference/faq/quality/android_background)
- [编译 Xcode 项目时遇到无法打开 framework 的弹窗警告怎么办？](/zh-CN/reference/faq/integration/framework_cannot_be_opened)

### 相关文档 [#相关文档-5]

- [SDK 错误码](/zh-CN/realtime-media/rtc/reference/error-code)
- [频道连接状态管理](/zh-CN/realtime-media/rtc/build/initialize-and-channel/channel-connection)
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="unity" />
本文介绍如何集成声网实时互动 SDK，在基础的音视频互动能力上进行少量代码修改，即可实现一个极速直播 App。
极速直播是区别于互动直播的一种直播场景，两者的区别在于观众端的延时级别：

- 互动直播：观众端的延时级别为**超低延时**，以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播：观众端的延时级别为**低延时**，可以满足主播与观众较低频率的音视频互动，或者回应观众文字、弹幕及打赏信息。

更多关于极速直播的延时指标、同步性、互动体验以及费用介绍，详见[直播场景区别](/zh-CN/reference/faq/product/streaming_difference)和[计费说明](/zh-CN/realtime-media/rtc/reference/billing-strategy)。
## 前提条件 [#前提条件-7]

已在你的项目中实现基本的实时音视频功能。详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-5]

将直播场景下观众端的延时级别修改为低延时，即可将一个互动直播修改为极速直播，有以下两种实现方式：

- 在加入频道后，调用 `SetClientRole` [2/2] 方法，将 `role` 参数设置为 `CLIENT_ROLE_AUDIENCE`（观众）；将 `options` 参数设置为 `AUDIENCE_LATENCY_LEVEL_LOW_LATENCY`（低延时）。
- 在调用 `JoinChannel` [2/2] 加入频道时，在 `options` 参数中将 `clientRoleType`参数设置为 `CLIENT_ROLE_AUDIENCE`（观众）；将 `audienceLatencyLevel` 参数设置为 `AUDIENCE_LATENCY_LEVEL_LOW_LATENCY`（低延时）。示例代码如下：

```csharp
public void Join() {
    // 设置频道媒体选项
    ChannelMediaOptions options = new ChannelMediaOptions();
    // 开始视频渲染
    LocalView.SetEnable(true);
    // 自动订阅所有音频流
    options.autoSubscribeAudio.SetValue(true);
    // 自动订阅所有视频流
    options.autoSubscribeVideo.SetValue(true);
    // 将频道场景设为直播
    // highlight-start
    options.channelProfile.SetValue(CHANNEL_PROFILE_TYPE.CHANNEL_PROFILE_LIVE_BROADCASTING);
    // 将用户角色设为观众
    options.clientRoleType.SetValue(CLIENT_ROLE_TYPE.CLIENT_ROLE_AUDIENCE);
    // 将观众端延时级别设为低延时
    options.audienceLatencyLevel.SetValue(AUDIENCE_LATENCY_LEVEL_TYPE.AUDIENCE_LATENCY_LEVEL_LOW_LATENCY);
    // highlight-end
    // 加入频道
    RtcEngine.JoinChannel(_token, _channelName, 0, options);
}
```

## 后续步骤 [#后续步骤-7]

本文的示例使用了临时 Token 加入频道。在测试或生产环境中，为确保通信安全，声网推荐使用 Token 服务器来生成 Token，详见[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。

## 参考信息 [#参考信息-6]

### 示例代码 [#示例代码]

声网提供了开源的极速直播示例项目供你参考，你可以前往下载或查看其中的源代码。

<Cards>
  <Card title={<RepositoryCardTitle provider="github">JoinChannelVideo</RepositoryCardTitle>} href="https://github.com/AgoraIO-Extensions/Agora-Unity-Quickstart/tree/main/API-Example-Unity/Assets/API-Example/Examples/Basic/JoinChannelVideo" />
  <Card title={<RepositoryCardTitle provider="gitee">JoinChannelVideo</RepositoryCardTitle>} href="https://gitee.com/agoraio-community/Agora-Unity-Quickstart/tree/main/API-Example-Unity/Assets/API-Example/Examples/Basic/JoinChannelVideo" />
</Cards>

### 常见问题 [#常见问题-6]

- [各类直播场景有什么区别？](/zh-CN/reference/faq/product/streaming_difference)
- [直播场景下，如何监听远端观众角色用户加入/离开频道的事件？](/zh-CN/reference/faq/integration/audience_event)
- [如何处理视频黑屏问题？](/zh-CN/reference/faq/quality/video_blank)
- [为什么我无法打开摄像头？](/zh-CN/reference/faq/quality/video_camera)
- [如何处理频道相关常见问题？](/zh-CN/reference/faq/integration/channel)

### 相关文档 [#相关文档-6]

- [SDK 错误码](/zh-CN/realtime-media/rtc/reference/error-code)
- [频道连接状态管理](/zh-CN/realtime-media/rtc/build/initialize-and-channel/channel-connection)
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="flutter" />
本文介绍如何集成声网实时互动 SDK，在基础的音视频互动能力上进行少量代码修改，即可实现一个极速直播 App。
极速直播是区别于互动直播的一种直播场景，两者的区别在于观众端的延时级别：

- 互动直播：观众端的延时级别为**超低延时**，以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播：观众端的延时级别为**低延时**，可以满足主播与观众较低频率的音视频互动，或者回应观众文字、弹幕及打赏信息。

更多关于极速直播的延时指标、同步性、互动体验以及费用介绍，详见[直播场景区别](/zh-CN/reference/faq/product/streaming_difference)和[计费说明](/zh-CN/realtime-media/rtc/reference/billing-strategy)。

## 前提条件 [#前提条件-8]

开始前，请确保已在你的项目中实现基本的实时音视频功能。详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-6]

将直播场景下观众端的延时级别修改为低延时，即可将一个互动直播 App 修改为极速直播 App，有以下两种实现方式：

- 在加入频道后，调用 `setClientRole` 方法，将 `role` 参数设置为 `clientRoleAudience`（观众）；将 `options` 参数设置为 `audienceLatencyLevelLowLatency`（低延时）。
- 在调用 `joinChannel` 加入频道时，将 `clientRoleType` 参数设置为 `clientRoleAudience`（观众）；将 `audienceLatencyLevel` 参数设置为 `audienceLatencyLevelLowLatency`（低延时）。示例代码如下：

```dart
await _engine.joinChannel(
  token: token,
  channelId: channel,
  options: const ChannelMediaOptions(
    // 自动订阅所有视频流
    autoSubscribeVideo: true,
    // 自动订阅所有音频流
    autoSubscribeAudio: true,
    // 发布摄像头采集的视频
    publishCameraTrack: true,
    // 发布麦克风采集的音频
    publishMicrophoneTrack: true,
    // highlight-start
    // 设置用户角色为 clientRoleAudience（观众）
    clientRoleType: ClientRoleType.clientRoleAudience,
    // 设置低延时级别
    audienceLatencyLevel: AudienceLatencyLevelType.audienceLatencyLevelLowLatency),
    // highlight-end
  uid: 0,
);
```

## 后续步骤 [#后续步骤-8]

本文的示例使用了临时 Token 加入频道。在测试或生产环境中，为保证通信安全，声网推荐从服务器中获取 Token，详情请参考[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。

## 参考信息 [#参考信息-7]

### 示例项目 [#示例项目-7]

声网提供了开源的实时音视频互动示例项目供你参考，你可以前往下载或查看其中的源代码。

<Cards>
  <Card title={<RepositoryCardTitle provider="gitee">join_channel_video.dart</RepositoryCardTitle>} href="https://gitee.com/agoraio-community/Agora-Flutter-SDK/tree/main/example/lib/examples/basic/join_channel_video" />
  <Card title={<RepositoryCardTitle provider="github">join_channel_video.dart</RepositoryCardTitle>} href="https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/tree/main/example/lib/examples/basic/join_channel_video" />
</Cards>

### 常见问题 [#常见问题-7]

- [如何解决 Flutter 上 iOS release 包初始化时报 symbol not found 的问题？](/zh-CN/reference/faq/integration/flutter_ios_build)
- [各类直播场景有什么区别？](/zh-CN/reference/faq/product/streaming_difference)
- [直播场景下，如何监听远端观众角色用户加入/离开频道的事件？](/zh-CN/reference/faq/integration/audience_event)
- [如何处理视频黑屏问题？](/zh-CN/reference/faq/quality/video_blank)
- [为什么我无法打开摄像头？](/zh-CN/reference/faq/quality/video_camera)
- [如何处理频道相关常见问题？](/zh-CN/reference/faq/integration/channel)
- [如何设置日志文件？](/zh-CN/reference/faq/integration/set_log_file)
- [为什么部分 Android 版本应用锁屏或切后台后采集音视频无效？](/zh-CN/reference/faq/quality/android_background)
- [编译 Xcode 项目时遇到无法打开 framework 的弹窗警告怎么办？](/zh-CN/reference/faq/integration/framework_cannot_be_opened)

### 相关文档 [#相关文档-7]

- [SDK 错误码](/zh-CN/realtime-media/rtc/reference/error-code)
- [频道连接状态管理](/zh-CN/realtime-media/rtc/build/initialize-and-channel/channel-connection)
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="react-native" />
本文介绍如何集成声网实时互动 SDK，在基础的音视频互动能力上进行少量代码修改，即可实现一个极速直播 App。
极速直播是区别于互动直播的一种直播场景，两者的区别在于观众端的延时级别：

- 互动直播：观众端的延时级别为**超低延时**，以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播：观众端的延时级别为**低延时**，可以满足主播与观众较低频率的音视频互动，或者回应观众文字、弹幕及打赏信息。

更多关于极速直播的延时指标、同步性、互动体验以及费用介绍，详见[直播场景区别](/zh-CN/reference/faq/product/streaming_difference)和[计费说明](/zh-CN/realtime-media/rtc/reference/billing-strategy)。

## 前提条件 [#前提条件-9]

开始前，请确保已在你的项目中实现基本的实时音视频功能。详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-7]

将直播场景下观众端的延时级别修改为低延时，即可将一个互动直播修改为极速直播，有以下两种实现方式：

- 在加入频道后，调用 `setClientRole` 方法，将 `role` 参数设置为 `ClientRoleAudience`（观众）；将 `options` 参数设置为 `AudienceLatencyLevelLowLatency`（低延时）。
- 在调用 `joinChannel` 加入频道时，将 `clientRoleType` 参数设置为 `ClientRoleAudience`（观众）；将 `audienceLatencyLevel` 参数设置为 `AudienceLatencyLevelLowLatency`（低延时）。示例代码如下：

    ```typescript
    // 以观众角色加入频道
    agoraEngineRef.current?.joinChannel(token, channelName, uid, {
        clientRoleType: ClientRoleType.ClientRoleAudience,
        // 设置低延时级别
        audienceLatencyLevel: AudienceLatencyLevelType.AudienceLatencyLevelLowLatency
        });
    ```

## 后续步骤 [#后续步骤-9]

本文的示例使用了临时 Token 加入频道。在测试或生产环境中，为确保通信安全，声网推荐使用 Token 服务器来生成 Token，详见[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。

## 参考信息 [#参考信息-8]

### 示例项目 [#示例项目-8]

声网提供了开源的实时音视频互动示例项目供你参考，你可以前往下载或查看其中的源代码。
<Cards>
  <Card title={<RepositoryCardTitle provider="gitee">JoinChannelVideo</RepositoryCardTitle>} href="https://gitee.com/agoraio-community/react-native-agora/blob/3.x/example/src/examples/basic/JoinChannelVideo/JoinChannelVideo.tsx" />
  <Card title={<RepositoryCardTitle provider="github">JoinChannelVideo</RepositoryCardTitle>} href="https://github.com/AgoraIO-Extensions/react-native-agora/blob/main/examples/legacy/src/examples/basic/JoinChannelVideo/JoinChannelVideo.tsx" />
</Cards>

### 常见问题 [#常见问题-8]

- [各类直播场景有什么区别？](/zh-CN/reference/faq/product/streaming_difference)
- [直播场景下，如何监听远端观众角色用户加入/离开频道的事件？](/zh-CN/reference/faq/integration/audience_event)
- [如何处理视频黑屏问题？](/zh-CN/reference/faq/quality/video_blank)
- [为什么我无法打开摄像头？](/zh-CN/reference/faq/quality/video_camera)
- [如何处理频道相关常见问题？](/zh-CN/reference/faq/integration/channel)
- [如何设置日志文件？](/zh-CN/reference/faq/integration/set_log_file)
- [为什么部分 Android 版本应用锁屏或切后台后采集音视频无效？](/zh-CN/reference/faq/quality/android_background)

### 相关文档 [#相关文档-8]

- [SDK 错误码](/zh-CN/realtime-media/rtc/reference/error-code)
- [频道连接状态管理](/zh-CN/realtime-media/rtc/build/initialize-and-channel/channel-connection)
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="unreal" />
本文介绍如何集成声网实时互动 SDK，在基础的音视频互动能力上进行少量代码修改，即可实现一个极速直播 App。
极速直播是区别于互动直播的一种直播场景，两者的区别在于观众端的延时级别：

- 互动直播：观众端的延时级别为**超低延时**，以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播：观众端的延时级别为**低延时**，可以满足主播与观众较低频率的音视频互动，或者回应观众文字、弹幕及打赏信息。

更多关于极速直播的延时指标、同步性、互动体验以及费用介绍，详见[直播场景区别](/zh-CN/reference/faq/product/streaming_difference)和[计费说明](/zh-CN/realtime-media/rtc/reference/billing-strategy)。

## 前提条件 [#前提条件-10]

开始前，请确保已在你的项目中实现基本的实时音视频功能。详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-8]

将直播场景下观众端的延时级别修改为低延时，即可将一个互动直播 App 修改为极速直播 App，有以下两种实现方式：

- 在加入频道后，调用 `setClientRole` [2/2] 方法，将 `role` 参数设置为 `CLIENT_ROLE_AUDIENCE`（观众）；将 `options` 参数设置为 `AUDIENCE_LATENCY_LEVEL_LOW_LATENCY`（低延时）。
- 在调用 `joinChannel` [2/2] 加入频道时，将 `clientRoleType` 参数设置为 `CLIENT_ROLE_AUDIENCE`（观众）；将 `audienceLatencyLevel` 参数设置为 `AUDIENCE_LATENCY_LEVEL_LOW_LATENCY`（低延时）。示例代码如下：

```cpp
// 设置频道媒体选项
agora::rtc::ChannelMediaOptions options;
// 将频道场景设为直播
options.channelProfile = agora::CHANNEL_PROFILE_TYPE::CHANNEL_PROFILE_LIVE_BROADCASTING;
// 将用户角色设为观众
options.clientRoleType = agora::rtc::CLIENT_ROLE_TYPE::CLIENT_ROLE_AUDIENCE;
// 将观众端延时级别设为低延时
options.audienceLatencyLevel = agora::rtc::AUDIENCE_LATENCY_LEVEL_TYPE::AUDIENCE_LATENCY_LEVEL_LOW_LATENCY;
// 加入频道
RtcEngineProxy->joinChannel(TCHAR_TO_ANSI(*_token), TCHAR_TO_ANSI(*_channelName), 0, options);
```

## 后续步骤 [#后续步骤-10]

- 如果你的目标平台是 macOS 或 iOS，则需要在打包时添加实时互动所需的摄像头和麦克风等权限，详见[如何为 Unreal Engine 项目添加实时互动所需的权限？](/zh-CN/reference/faq/integration/unreal_permissions)
- 本文的示例使用了临时 Token 加入频道。在测试或生产环境中，为保证通信安全，声网推荐从服务器中获取 Token，详情请参考[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。

## 参考信息 [#参考信息-9]

### 示例项目 [#示例项目-9]

声网提供了开源的示例项目供你参考，你可以前往下载或查看其中的源代码。

<Cards>
  <Card title="Unreal C++ 示例项目" href="https://github.com/AgoraIO-Extensions/Agora-Unreal-RTC-SDK/tree/main/Agora-Unreal-SDK-CPP-Example" />
  <Card title="Unreal Blueprint 示例项目" href="https://github.com/AgoraIO-Extensions/Agora-Unreal-RTC-SDK/tree/main/Agora-Unreal-SDK-Blueprint-Example" />
</Cards>

### 常见问题 [#常见问题-9]

- [各类直播场景有什么区别？](/zh-CN/reference/faq/product/streaming_difference)
- [直播场景下，如何监听远端观众角色用户加入/离开频道的事件？](/zh-CN/reference/faq/integration/audience_event)
- [如何处理视频黑屏问题？](/zh-CN/reference/faq/quality/video_blank)
- [为什么我无法打开摄像头？](/zh-CN/reference/faq/quality/video_camera)
- [如何处理频道相关常见问题？](/zh-CN/reference/faq/integration/channel)
- [如何设置日志文件？](/zh-CN/reference/faq/integration/set_log_file)
- [为什么部分 Android 版本应用锁屏或切后台后采集音视频无效？](/zh-CN/reference/faq/quality/android_background)
- [编译 Xcode 项目时遇到无法打开 framework 的弹窗警告怎么办？](/zh-CN/reference/faq/integration/framework_cannot_be_opened)

### 相关文档 [#相关文档-9]

- [SDK 错误码](/zh-CN/realtime-media/rtc/reference/error-code)
- [频道连接状态管理](/zh-CN/realtime-media/rtc/build/initialize-and-channel/channel-connection)
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="blueprint" />
本文介绍如何集成声网实时互动 SDK，在基础的音视频互动能力上进行少量代码修改，即可实现一个极速直播 App。
极速直播是区别于互动直播的一种直播场景，两者的区别在于观众端的延时级别：

- 互动直播：观众端的延时级别为**超低延时**，以便满足主播和观众需要频繁进行音视频互动的需求。
- 极速直播：观众端的延时级别为**低延时**，可以满足主播与观众较低频率的音视频互动，或者回应观众文字、弹幕及打赏信息。

更多关于极速直播的延时指标、同步性、互动体验以及费用介绍，详见[直播场景区别](/zh-CN/reference/faq/product/streaming_difference)和[计费说明](/zh-CN/realtime-media/rtc/reference/billing-strategy)。

## 前提条件 [#前提条件-11]

开始前，请确保已在你的项目中实现基本的实时音视频功能。详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-9]

将直播场景下观众端的延时级别修改为低延时，即可将一个互动直播 App 修改为极速直播 App，有以下两种实现方式：

- 在加入频道后，调用 **SetClientRole** 方法，将 **clientroletype** 参数设置为 **CLIENT_ROLE_AUDIENCE**（观众）；将 **options** 参数设置为 **AUDIENCE_LATENCY_LEVEL_LOW_LATENCY**（低延时）。
- 在调用 **JoinChannel** 加入频道时：
    - 勾选 **Client Role Type Set Value** 并设置 **Client Role Type** 为 **CLIENT_ROLE_AUDIENCE**，设置用户角色为观众。
    - 勾选 **Audience Latency Level Set Value** 并设置 **Audience Latency Level** 为 **AUDIENCE_LATENCY_LEVEL_LOW_LATENCY**，将观众端延时级别设为低延时。

![JoinChannel 节点中设置低延时观众参数的示意图](https://web-cdn.agora.io/docs-portal/img/rtc/unreal-bp-ls-quick-start.png)

## 后续步骤 [#后续步骤-11]

- 如果你的目标平台是 macOS 或 iOS，则需要在打包时添加实时互动所需的摄像头和麦克风等权限，详见[如何为 Unreal Engine 项目添加实时互动所需的权限？](/zh-CN/reference/faq/integration/unreal_permissions)
- 本文的示例使用了临时 Token 加入频道。在测试或生产环境中，为保证通信安全，声网推荐从服务器中获取 Token，详情请参考[使用 Token 鉴权](/zh-CN/realtime-media/rtc/build/setup-and-access/token-authentication)。

## 参考信息 [#参考信息-10]

### 示例项目 [#示例项目-10]

声网提供了开源的示例项目供你参考，你可以前往下载或查看其中的源代码。

<Cards>
  <Card title="Unreal Blueprint 示例项目" href="https://github.com/AgoraIO-Extensions/Agora-Unreal-RTC-SDK/tree/main/Agora-Unreal-SDK-Blueprint-Example" />
</Cards>

### 常见问题 [#常见问题-10]

- [各类直播场景有什么区别？](/zh-CN/reference/faq/product/streaming_difference)
- [直播场景下，如何监听远端观众角色用户加入/离开频道的事件？](/zh-CN/reference/faq/integration/audience_event)
- [如何处理视频黑屏问题？](/zh-CN/reference/faq/quality/video_blank)
- [为什么我无法打开摄像头？](/zh-CN/reference/faq/quality/video_camera)
- [如何处理频道相关常见问题？](/zh-CN/reference/faq/integration/channel)
- [如何设置日志文件？](/zh-CN/reference/faq/integration/set_log_file)
- [为什么部分 Android 版本应用锁屏或切后台后采集音视频无效？](/zh-CN/reference/faq/quality/android_background)
- [编译 Xcode 项目时遇到无法打开 framework 的弹窗警告怎么办？](/zh-CN/reference/faq/integration/framework_cannot_be_opened)

### 相关文档 [#相关文档-10]

- [SDK 错误码](/zh-CN/realtime-media/rtc/reference/error-code)
- [频道连接状态管理](/zh-CN/realtime-media/rtc/build/initialize-and-channel/channel-connection)
<_PlatformProcessedMarker close="true" />
</_PlatformTabsGroup>
