更新记录
3.17.4(2025-01-06) 下载此版本
3.17.4
新增功能
- 添加 [setAudioDeviceMode] 接口,用于设置音频设备模式。
3.17.3(2024-11-26) 下载此版本
新增功能
1. 新增屏幕共享功能
iOS 屏幕共享分为应用内共享与跨应用共享,分别用于当前应用分享与系统级别的应用分享。如使用跨应用共享,需要在 iOS 原生工程新建 Broadcast Upload Extension 进程用于录制屏幕。 Android 为更符合隐私规范,需开发者主动声明屏幕共享权限:
- 如果目标 Android SDK 版本低于 34.0.0 版本,需设置 `FOREGROUND_SERVICE`` 权限声明。
- 如果目标 Android SDK 版本是 34.0.0 及以后版本,需要设置 FOREGROUND_SERVICE 及 FOREGROUND_SERVICE_MEDIA_PROJECTION 权限声明。 详情请参考 屏幕共享 文档。
相关 API 请参考 startScreenCapture、stopScreenCapture、updateScreenCaptureConfig、mobileScreenCaptureExceptionOccurred,mobileScreenCaptureStart
2. 媒体播放器新增设置视图模式
新增 ZegoViewMode 参数,用于设置媒体播放器的视图模式,详情请参考 媒体播放器 文档。
改进优化
- 更新集成 Express Native SDK 至 3.17.3 版本
3.16.1(2024-08-15) 下载此版本
适配 uni_modules,开发者可以使用 uni_modules 依赖本插件
查看更多平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.1.0 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 | 鸿蒙元服务 |
---|---|---|---|---|
× | × | × | × | × |
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分钟即可轻松接入。
了解更多解决方案:https://www.zego.im
使用方法
注意事项
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 插件功能
基础使用
初始化引擎
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 官方使用文档 https://doc-zh.zego.im/article/7775
示例源码使用
示例源码下载地址
- 将 Demo 导入 HBuilderX,修改 manifest.json 下的 AppID (uniapp的AppID)
- 修改 Demo
./pages/KeyCenter.js
内的AppID、Token。从ZEGO官网获取的 控制台 - 导入「ZegoExpressEngine」uniapp SDK
- 使用 uniapp 本地打包/云打包,制定自定义基座
- 运行