# API-Examples-Web
**Repository Path**: linlei2099/API-Examples-Web
## Basic Information
- **Project Name**: API-Examples-Web
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2022-11-15
- **Last Updated**: 2022-11-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Agora RTC Web SDK 4.x 示例项目
_[English](README.md) | 简体中文_
## 简介
此仓库包含基于 Agora RTC Web SDK 4.x 的示例项目。
**如果你还不熟悉 Agora RTC Web SDK 4.x,建议你先通过我们提供的 [社区版互动教程](https://agorawebsdktutorialmain.gatsbyjs.io/) 快速理解 SDK 的功能并通过 CodePen 控件在浏览器中直接调用 SDK。**
Web SDK 4.x 是基于 Web SDK 3.x 开发的全量重构版本,在继承了 Web SDK 3.x 功能的基础上,优化了 SDK 的内部架构,提高了 API 的易用性。
Web SDK 4.x 具有以下优势:
- 面向开发者提供更先进的 API 架构和范式。
- 所有异步场景的 API 使用 Promise 替代 Callback,提升集成代码的质量和健壮性。
- 优化频道事件通知机制,统一频道内事件的命名和回调参数的格式,降低断线重连的处理难度。
- 提供清晰和完善的错误码,方便错误排查。
- 支持 TypeScript。
## 示例项目(使用 jQuery 和 Bootstrap)
| 功能 | 示例项目位置 |
| ------------------- | -------------------------------- |
| 调整视频参数 | [/Demo/adjustVideoProfile](/Demo/adjustVideoProfile) |
| 混音与音效 | [/Demo/audioMixingAndAudioEffect](/Demo/audioMixingAndAudioEffect) |
| 视频直播 | [/Demo/basicLive](/Demo/basicLive) |
| 启用/禁用音视频轨道 | [/Demo/basicMute](/Demo/basicMute) |
| 视频通话 | [/Demo/basicVideoCall](/Demo/basicVideoCall) |
| 云代理 | [/Demo/cloudProxy](/Demo/cloudProxy) |
| 自定义视频源 | [/Demo/customVideoSource](/Demo/customVideoSource) |
| 显示呼叫状态 | [/Demo/displayCallStats](/Demo/displayCallStats) |
| 双流模式 | [/Demo/dualStream](/Demo/dualStream) |
| 地理区域限制 | [/Demo/geoFencing](/Demo/geoFencing) |
| 加入多频道 | [/Demo/joinMultipleChannel](/Demo/joinMultipleChannel) |
| 推流到 CDN | [/Demo/pushStreamToCDN](/Demo/pushStreamToCDN) |
| 控制录制设备 | [/Demo/recordingDeviceControl](/Demo/recordingDeviceControl) |
| 自定义音视频渲染 | [/Demo/selfRendering](/Demo/selfRendering) |
| 自定义音视频采集 | [/Demo/selfCapturing](/Demo/selfCapturing) |
| 屏幕共享 | [/Demo/shareTheScreen](/Demo/shareTheScreen) |
| 美颜 | [/Demo/videoBeautyEffect](/Demo/videoBeautyEffect) |
### 如何运行示例项目
#### 前提条件
- 你必须使用 SDK 支持的浏览器运行示例项目。 关于支持的浏览器列表参考 [产品概述](https://docs.agora.io/cn/Interactive%20Broadcast/product_live?platform=Web#compatibility)。
#### 运行步骤
1. 使用 SDK 支持的浏览器打开 `Demo/index.html` 并选择一个示例项目。
2. 在示例项目页面上,输入 App ID、Token 和频道名,然后加入频道。
- 关于 App ID 和 Token 的获取方法参考 [开始使用 Agora 平台](https://docs.agora.io/cn/Agora%20Platform/get_appid_token)。你可以获取一个临时 token,快速运行示例项目。
- 生成 Token 使用的频道名必须和加入频道时使用的频道名一致。
## 示例项目(使用 React)
| 特性 | 示例项目位置 |
| -------- | ------------ |
| 视频通话 | [/ReactDemo](/ReactDemo) |
| OpenLive | [/OpenLive](/OpenLive) |
### 如何运行示例项目
#### 前提条件
- 你必须使用 SDK 支持的浏览器运行示例项目。关于支持的浏览器列表参考 [产品概述](https://docs.agora.io/cn/Interactive%20Broadcast/product_live?platform=Web#compatibility)。
- [npm](https://www.npmjs.com/)
#### ReactDemo 的运行步骤
1. 导航至 `ReactDemo` 并运行下面的命令安装依赖项。
```shell
npm install
```
2. 运行下面的命令启动示例项目。
```shell
npm run start
```
3. 在示例项目页面上,输入 App ID、Token 和频道名,然后加入频道。
- 关于 App ID 和 Token 的获取方法参考 [开始使用 Agora 平台](https://docs.agora.io/cn/Agora%20Platform/get_appid_token)。你可以获取一个临时 token,快速运行示例项目。
- 生成 Token 使用的频道名必须和加入频道时使用的频道名一致。
#### OpenLive 的运行步骤
1. 导航至 [/OpenLive](/OpenLive)。 将 **.env.example** 重命名为 **.env**。在 **.env** 文件中,使用 App ID 替换 `<#YOUR APP ID#>`,使用 token 替换 `<#YOUR TOKEN#>`.
> 关于 App ID 和 Token 的获取方法参考 [开始使用 Agora 平台](https://docs.agora.io/cn/Agora%20Platform/get_appid_token)。你可以获取一个临时 token,快速运行示例项目。
```bash
REACT_APP_AGORA_APP_ID=<#YOUR APP ID#>
REACT_APP_AGORA_APP_TOKEN=<#YOUR TOKEN#>
REACT_APP_AGORA_LOG=true
```
2. 运行下面的命令安装依赖项。
```shell
npm install
```
3. 运行下面的命令启动示例项目。
> 生成 Token 使用的频道名必须和加入频道时使用的频道名一致。
```shell
npm run dev
```
## 参考
- [Web SDK 4.x 产品概述](https://docs.agora.io/cn/Interactive%20Broadcast/product_live?platform=Web)
- [Web SDK 4.x API 参考](https://docs.agora.io/cn/Interactive%20Broadcast/API%20Reference/web_ng/index.html)
- [基于本仓库部署的在线 demo](https://webdemo.agora.io/)
## 反馈
如果你有任何问题或建议,可以通过 issue 的形式反馈。
## 相关资源
- 你可以先参阅 [常见问题](https://docs.agora.io/cn/faq)
- 如果你想了解更多官方示例,可以参考 [官方 SDK 示例](https://github.com/AgoraIO)
- 如果你想了解声网 SDK 在复杂场景下的应用,可以参考 [官方场景案例](https://github.com/AgoraIO-usecase)
- 如果你想了解声网的一些社区开发者维护的项目,可以查看 [社区](https://github.com/AgoraIO-Community)
- 若遇到问题需要开发者帮助,你可以到 [开发者社区](https://rtcdeveloper.com/) 提问
- 如果需要售后技术支持, 你可以在 [Agora Dashboard](https://dashboard.agora.io) 提交工单
## 许可证
示例项目遵守 MIT 许可证。详见 [LICENSE](./LICENSE) 文件。