更新记录

3.16.1(2024-08-15) 下载此版本

适配 uni_modules,开发者可以使用 uni_modules 依赖本插件

3.15.3(2024-07-05) 下载此版本

修复更新

web 端适配 vue3 框架

3.15.2(2024-06-13) 下载此版本

新增功能

  1. web 适配 vue3 框架
查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
× × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

3.16.1 及以上版本破坏性改动:

适配 uni_modules,开发者可以使用 uni_modules 依赖本插件,插件的导入路径发生变更,开发者需要主动进行适配; @/components/zego-ZegoExpressUniApp-JS -> @/uni_modules/zego-ZegoExpressUniApp-JS/components/zego-ZegoExpressUniApp-JS

ZegoExpressUniAppSDK

即构科技 (ZEGO) 极速音视频 uni-app SDK 是一个基于 ZegoExpressEngine 原生 Android / iOS SDK 的 uni-app Wrapper,提供视频直播以及实时音视频服务。仅需几行代码,30分钟即可轻松接入。

  • Zego即构 自研音视频引擎,立即注册有机会每月免费赠送12000分钟。
  • Zego即构 实现时延最低79ms,70%丢包下保持流畅的视频通话、直播等场景。
  • 助力开发者/中小企业快速在应用中构建一对一,多对多音视频通话。详情低至1折,畅想实时互动

了解更多音视频解决方案:https://www.zego.im

问题反馈

附录

1.官网

2.API文档

3.Demo体验

4.常见问题

使用方法

注意事项

1、本插件是 uniapp 原生插件,使用前需学习 uniapp 原生插件使用方法,官方教程 uni原生插件使用教程

2、使用视频功能时,页面必须使用.nvue文件构建,因为uniapp的.vue页面在原生端(iOS、android)是用 webview 构建的,不能支持component类型的插件。 详情可参考:https://nativesupport.dcloud.net.cn/NativePlugin/course/ios

申请 ZEGO AppID

登录 ZEGO 官网 注册账号,根据自身实际业务需求选择场景,获取 AppID 与 AppSign,用于初始化 SDK。

创建uniapp项目

使用uniapp官方IDE HBuilder,创建uni-app类型的项目

集成「ZegoExpressEngine」uniapp SDK 和 JS 封装插件

开发者需要同时引用以下两个插件,JS 插件主要是为了做代码提示,且包含一些 JS 的逻辑,便于开发者使用 Native 插件功能

Native 插件

JS 插件

基础使用

初始化引擎

import ZegoExpressEngine from '@/uni_modules/zego-ZegoExpressUniApp-JS/components/zego-ZegoExpressUniApp-JS/lib/ZegoExpressEngine';

//  使用从 ZEGO 控制台申请到的 appID 用于初始化
const profile = {
appID : xxx,
// AppSign 仅满足简单的鉴权需求,如果需要升级为更加安全的鉴权方式,请参考[如何从 AppSign 鉴权升级为 Token 鉴权](https://doc-zh.zego.im/faq/token_upgrade?product=ExpressVideo&platform=all)
// AppSign 可通过[控制台](https://console.zego.im/dashboard)获取,格式为 @"39011cbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
appSign: '39011cbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
scenario : 0
};

ZegoExpressEngine.createEngineWithProfile(profile)

登入房间

let roomConfig = {};
// 只有传入 “isUserStatusNotify” 参数取值为 “true” 的 ZegoRoomConfig,才能收到 onRoomUserUpdate 回调。
roomConfig.isUserStatusNotify = true;
// 登录房间
ZegoExpressEngine.instance().loginRoom('room1', {'userID': 'id1', 'userName': 'user1'}, roomConfig);

开启音视频通话

在成功登入房间后,可调用 startPreview 开启音视频:

<template>
  <zego-local-view></zego-local-view>
</template>

······

// 需要在登入房间之后才能开启音视频通话
ZegoExpressEngine.instance().startPreview();

将本地视频画面推向云服务

// 推入的streamID由用户设置
let publishStreamID = '123456'
ZegoExpressEngine.instance().startPublishingStream(publishStreamID);

拉取其他用户音视频

登入房间后主动监听 roomStreamUpdate,在收到其他用户推出的音视频流,即可拉取:

<template>
  <zego-remote-view :streamID="playStreamID" ></zego-remote-view>
</template>

······
// 监听 roomStreamUpdate
ZegoExpressEngine.instance().on('roomStreamUpdate', (roomID, updateType, streamList) => {
    this.playStreamID = streamList[0].streamID;
});

······
// 拉取StreamID的音视频
ZegoExpressEngine.instance().startPlayingStream(this.playStreamID); 

退出房间

// 退出房间
ZegoExpressEngine.instance().logoutRoom('room1');

销毁引擎

// 退出房间
ZegoExpressEngine.destroyEngine();

运行


本插件是 uniapp 原生插件,需要使用 uniapp 云打包制作自定义调试基座 ,才能保证正常跑通。 具体可参考 uniapp 官方教程 uni原生插件使用教程

更多功能


1、参考示例源码

2、参考 ZegoExpressUniAppSDK 官方使用文档 更多音视频功能

主要功能 功能描述 业务场景
音视频通话 用户加入同一个房间,并进行音视频通话。 1v1 视频通话 多人视频会议
音视频直播 同一个房间,包含主播及观众,主播可以进行音视频直播,该房间内的观众可以观看直播。 秀场直播 游戏直播 电商直播
常用视频配置 在视频通话或直播时,自定义设置采集及播放的视频的相关配置,如视频采集分辨率、视频编码输出分辨率、视频帧率、码率、视图模式和镜像模式等。 分辨率、码率、镜像等特殊要求
视频旋转 用户使用移动设备进行直播或视频通话时,可以采用不同的视频采集方向,并且可以根据对端用户的摄像头方向的角度进行适配调整。 多类型设备视频通话、直播场景,需要最佳的视频播放角度的场景
通话前检测 在进行音视频通话或直播前,对摄像头、麦克风、显示器等进行设备检测,确保通话或直播的正常运行。 正常的通话功能检测
音视频质量检测 对音视频的质量进行检测,如分辨率、帧率、码率、采样率等多指标检测,确保质量稳定。 银行开户、远程鉴定等对音视频质量较高要求和限定的场景
混流 把多人的多路视频流混流为一路流,从而只需要拉取一条流就能看到房间内所有成员的画面,听到房间内所有成员的声音。 多人通话主播连麦
CDN 直播 统一接入多家 CDN 能力 ,该功能支持推流到 CDN,打通 RTC 产品和 CDN 直播产品,方便用户从网页或第三方播放器直接观看直播内容。 高并发的基础直播、对直播延迟无强要求的场景
媒体播放器 提供播放音视频媒体文件的能力,并且支持将播放的媒体文件的音画数据推流出去。 播放测试音频,播放背景音乐,播放视频文件
屏幕共享 视频通话或互动直播过程中将屏幕内容以视频的方式共享给房间内的其他用户。 视频会议 ,游戏直播
水印 可以在视频画面上添加版权 Logo 等水印。 有版权的视频分享等
房间实时消息 实时消息主要提供纯文本消息的收发功能,可向同一房间内的其他用户发送广播消息和弹幕消息,或者对某些指定用户发送自定义消息,并可以根据需要自行实现点赞、送礼物、答题等互动功能。 秀场直播 语聊房
用户权限控制 对用户进行权限控制,如:指定用户可以进房/退房;指定用户发言/静音;指定用户。 视频会议

示例源码使用步骤


示例源码下载地址

ZegoExpressExample-UniApp

  1. 将 Demo 导入 HBuilderX,修改 manifest.json 下的 AppID (uniapp的AppID)
  2. 修改 Demo ./pages/KeyCenter.js 内的AppID、Token。从ZEGO官网获取的 控制台
  3. 导入「ZegoExpressEngine」uniapp SDK
  4. 使用 uniapp 本地打包/云打包,制定自定义基座
  5. 运行

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 Express Native SDK 会采集数据,详情可参考:https://www.zego.im/sdk-privacy

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问