如何基于ZEGO直播 SDK 实现 Web 端云直播(含代码演示)
如今,无论是电商带货、娱乐直播,还是在线教育、远程医疗、体育赛事等需要触达大规模用户的直播场景,不少开发者都会选择云直播SDK的接入方式。
即构超低延迟直播具有超低延迟、超强同步、抗极端若望、超低卡顿、超清画质、首帧秒开的优势,有效解决 CDN 的延迟高、同步性差、弱网播放不稳定等痛点,助力业务指标增长。
本文将介绍如何通过即构超低延迟直播 SDK快速集成Web端云直播。接下来我们看看完整的实现流程。
跑通示例源码
1.1 准备环境
在开始集成 ZEGO Express SDK 前,请按照以下兼容性要求,安装浏览器:
浏览器 | Windows | Mac | Android | iOS | Harmony OS |
Chrome 58 或以上 | ✔️ | ✔️ | ✔️ | iOS 14.3 或以上版本支持推拉流iOS 14.3 以下版本仅支持拉流 | ✖ |
FireFox 56 或以上 | ✔️ | ✔️ | ✔️ | ✖ | ✖ |
Safari 11 或以上 | - | ✔️ | - | ✔️ | ✖ |
Opera 45 或以上 | ✔️ | ✔️ | 部分支持 | ✖ | ✖ |
QQ 浏览器最新版 | ✔️ | ✔️ | 部分支持 | ✖ | ✖ |
360 安全浏览器极速模式 | ✔️ | ✔️ | ✖ | ✖ | ✖ |
微信浏览器 | - | - | ✔️ | iOS 14.3 或以上版本,并且当微信版本为 6.5 或以上时,支持推拉流iOS 14.3 以下版本仅支持拉流 | ✖ |
WebView | - | - | ✔️ | iOS 14.3 或以上版本支持推拉流iOS 14.3 以下版本仅支持拉流 | ✖ |
华为浏览器 | ✖ | ✖ | ✖ | ✖ | Mate 60 Pro 机型、HarmonyOS NEXT beta 2 版本的操作系统的华为浏览器 |
注意:仅支持 SSL 的 Web 服务器(HTTPS)。本地调试工具的 Web 服务域名可使用 localhost 或 127.0.0.1。
1.2 前提条件
已在 ZEGO 控制台 创建项目,申请有效的 AppID,以及获取到接入服务器的 “Server 地址”,详情请参考 控制台 - 项目管理 中的“项目信息”。
注意:Server 地址并非 ServerSecret,您可以参考下图在 ZEGO 控制台获取 Server 地址
1.3 示例源码目录结构
以下目录结构为 express-demo-web 子目录的文件结构,下文所涉及的文件路径均为相对于此目录的路径。
.
├── README.md
...
└── src # 源码文件夹
├── Examples # 示例代码
│ ├── AdvancedAudioProcessing # 音频进阶功能
│ ├── AdvancedStreaming # 推拉流进阶
│ ├── AdvancedVideoProcessing # 视频进阶功能
│ ├── CommonFeatures # 常用功能
│ ├── DebugAndConfig # 调试与配置
│ ├── Framework # 最佳实践/框架相关
│ ├── Others # 其他功能
│ ├── QuickStart # 快速开始
│ └── Scenes # 最佳实践/场景相关
├── assets # 资源文件夹,存放项目共用的资源文件,包括sdk、各类依赖库、翻译相关的配置文件等
└── KeyCenter.js # 配置相关文件,可以填写申请的appID、server地址等
1.4 运行示例源码
-
在下载的示例源码中,使用支持的浏览器,打开 “./src/Examples/DebugAndConfig/InitSettings/index.html” 文件,输入 前提条件 中获取的 AppID 和 Server 地址(不是 ServerSecret)后,单击“设置”。
- 设置完成后,可以开始体验 Demo 功能,即可使用支持的浏览器,打开 “./src/Examples” 文件夹下各场景功能的 HTML 文件。例如打开 “QuickStart/CommonUsage” 文件夹下的 “index.html”。
1.5 体验实时音视频功能
在真机中运行项目,运行成功后,可以看到本端视频画面。
为方便体验,ZEGO 提供了一个 Web 端调试示例,在该页面下,输入相同的 AppID、RoomID,输入不同的 UserID、以及对应的 Token,即可加入同一房间与真机设备互通。当成功开始音视频通话时,可以听到远端的音频,看到远端的视频画面。
集成SDK
2.1 准备环境
在开始集成 ZEGO Express SDK 前,请确保开发环境满足以下要求:
-
Windows 或 macOS 开发电脑已经连接到 Internet。
-
满足 Express Web SDK 兼容性的浏览器(具体请参考 浏览器兼容性和已知问题),推荐使用最新版本的 Google Chrome 浏览器。
2.2 集成 SDK
开发者可通过以下任意一种方式集成 SDK。
方式 1:使用包管理器自动集成(推荐)
-
下载并安装Node.js。
-
新建项目
新建文件夹 创建index.html , index.js
├── index.html ├── index.js
在命令行中执行
npm create vue@latest
选择默认选项即可
> npx
> create-vue
Vue.js - The Progressive JavaScript Framework
✔ 请输入项目名称: … zego_web_vue_demo
✔ 是否使用 TypeScript 语法? … [否] / 是
✔ 是否启用 JSX 支持? … [否] / 是
✔ 是否引入 Vue Router 进行单页面应用开发? … [否] / 是
✔ 是否引入 Pinia 用于状态管理? … [否] / 是
✔ 是否引入 Vitest 用于单元测试? … [否] / 是
✔ 是否要引入一款端到端(End to End)测试工具? › 不需要
✔ 是否引入 ESLint 用于代码质量检测? › 否
正在初始化项目 /xxx/zego_web_vue_demo...
项目初始化完成,可执行以下命令:
cd zego_web_vue_demo
npm install
npm run dev
在命令行中执行
npm create vite@latest zego_web_react_demo -- --template react
> npx
> create-vite zego_web_react_demo --template react
Scaffolding project in /xxx/zego_web_react_demo...
Done. Now run:
cd zego_web_react_demo
npm install
npm run dev
-
通过包管理器 安装 SDK。
在项目的根目录下执行以下命令安装依赖。
npm install zego-express-engine-webrtc
yarn add zego-express-engine-webrtc
pnpm add zego-express-engine-webrtc
说明:
-
安装的依赖包支持 typescript 语言。
-
如果在 macOS 或 Linux 系统中执行安装命令失败,提示 “permission denied”,请在SDK安装命令前加上
sudo
重新执行即可。
-
在项目中文件中引入SDK,示例代码如下:
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Zego Web Demo</title>
</head>
<body>
<h1>Zego Web Demo</h1>
<script src="index.js" type="module"></script>
</body>
</html>
完整引入和按需引入 SDK。
完整集成SDK
如果您需要完整集成 ZEGO Web SDK,请参考如下代码,在 “index.js” 文件中引入完整的 SDK。
import {ZegoExpressEngine} from 'zego-express-engine-webrtc'
单独集成功能模块
请注意,在创建 ZegoExpressEngine 实例时,开发者必须通过 import { ZegoExpressEngine } from "zego-express-engine-webrtc/esm"
引入某个功能模块,才能实现按需集成的效果。 请根据您业务需要,选择需要使用的功能,通过 zego-express-engine-webrtc/esm
路径引入。
import { ZegoExpressEngine } from "zego-express-engine-webrtc/esm"
// 引入 CDN 模块
import { StreamCDN } from "zego-express-engine-webrtc/esm/stream-cdn"
// 引入 混音 模块
import { AudioMix } from "zego-express-engine-webrtc/esm/audio-mix"
// 引入 混流 模块
import { MixStream } from "zego-express-engine-webrtc/esm/mix-stream"
// 引入 范围语音 模块
import { RangeAudio } from 'zego-express-engine-webrtc/esm/range-audio';
// 引入 美颜 模块
import { BeautyEffect } from 'zego-express-engine-webrtc/esm/beauty-effect';
ZegoExpressEngine.use(StreamCDN);
ZegoExpressEngine.use(AudioMix);
ZegoExpressEngine.use(MixStream);
ZegoExpressEngine.use(RangeAudio);
ZegoExpressEngine.use(BeautyEffect);
方式2:从官网下载 SDK,手动集成
-
下载最新版本的 SDK 并解压到项目文件夹,我们可以在 “dist_js/” 下找到 “ZegoExpressWebRTC-x.x.x.js” 文件。
-
在 VSCode中打开项目文件夹并新建 “index.html” 文件。
-
在 “index.html” 文件中编写界面代码,并在文件的
head
标签内使用script
标签引入 “ZegoExpressWebRTC-x.x.x.js”。其中,“x.x.x” 为 SDK 的版本号,请参考第 1 步压缩包解压后的文件名修改。
index.html 代码示例如下:
<html>
<head>
<meta charset="UTF-8">
<title>Zego RTC Web Demo</title>
<script src="./dist_js/ZegoExpressWebRTC-x.x.x.js"></script>
</head>
<body>
<h1>
Zego RTC Web Demo
</h1>
</body>
<script>
(async () => {
// 此处添加后续的代码...
})();
</script>
</html>
至此,通过即构超低延迟直播 SDK 快速集成Web端云直播的开发部分已完成!集成过程碰到问题可进入ZEGO即构科技 - 帮助全球企业即刻构建语音视频通讯能力即构官网查看
更多推荐
所有评论(0)