当前位置: 首页 > news >正文

如何用即构ZEGO SDK和uni-app开发一款直播带货应用?

 直播电商风口正劲,开发一款直播带货APP很有必要

直播电商早已不是什么新鲜词了,而是已经成为愈发重要的销售渠道。越来越多的消费者通过带货直播下单购物,直播平台、中小电商品牌商家,都想通过开发多端、高质量的直播获得各渠道更多的潜在客户,从而实现市场拓展。

从数据来看,直播电商的用户规模一直在稳步增长,这也说明这个领域的潜力还在不断释放。

不过,开发一款带货直播应用会面临不少挑战。首先是直播的画质、音质和延迟的问题,这直接决定了用户体验。在这方面,ZEGO 作为行业领先的高质量实时音视频云服务提供商,早就为自建直播平台提出了全套解决方案。另一个挑战则在于多端直播需要跨平台技术架构的开发、维护和迭代,而使用 uni-app HBuilderX 工具集成开发环境,能够实现一套代码90%以上逻辑复用,一键打包多端适配,大大缩短了开发和迭代的周期。

讲了这么多优势特点,下面就来聊聊如何使用 ZEGO SDK 和 uni-app 开发一款直播带货 app,让你快速上手这一热门领域。

技术实现

一、准备好开发环境

在正式开始开发之前,我们需要做好一系列的准备工作,以确保开发环境的顺利配置

1、首先,在 ZEGO控制台中创建项目,并申请获取有效的 AppID、AppSign 或 Token,这是后续集成 SDK 和进行音视频通信的基础。

2、接下来,安装 uni-app 官方 IDE——HBuilderX(记得3.0.0或以上版本,避免版本兼容问题)。

3、准备好各端开发的设备。

平台

设备

App

iOS(iOS 12.0 或以上版本且支持音视频的 iOS 设备) 及 Android (Android 4.4 或以上版本且支持音视频的 Android 设备)

Web

Windows 或 macOS 计算机,使用最新的 Chrome 浏览器

4、在 HBuilderX 中创建您的 UniApp 项目。

①启动 HBuilderX,选择“文件>新建>项目>

②在弹出的表单中,选择“uni—app”平台,并填写您的项目名称,单击创建就完成了。

二、跑通示例源代码,先有个整体印象

完成好开发环境搭建后,为了让你先熟悉以下大概的流程和功能模块,可以按照文档先跑通示例源代码,源代码点击下方链接下载。

👉示例源码下载

三、关键一步——集成 SDK
1、集成 SDK
1.1 下载SDK

SDK 下载有两种方式,按照你的习惯选择。

方法一:ZEGO官网下载 SDK

前往即构官网下载 Express-Video SDK 到本地,解压缩 “zego-ZegoExpressUniAppSDK” 文件,把解压缩后的文件夹直接复制到项目工程根目录下的“nativeplugins” 文件夹中,没有该目录的话就手动创建一个。

方法二:在 uni-app 插件市场获取 Express-Video SDK

在 uni-app 插件市场任选一种方式导入:

下载 SDK 到本地,解压缩 “zego-ZegoExpressUniAppSDK” 文件。将解压缩后的文件夹,直接复制到项目工程根目录下的 “nativeplugins” 文件夹中,如果没有该目录,请手动创建。

1.2 在uni-app中导入插件

下载完 SDK 后,就需要导入项目中了。

这里点击项目目录的 “manifest.json” 文件后,再点击“App 原生插件配置” 中的“选择本地插件”或“选择云端插件”。

在弹出的选择框中,选择 “ZegoExpress 音视频 SDK” 后,单击“确认”后就添加成功。

1.3 自定义调试基座

上面,我们已从不同渠道获取到 SDK。为了方便后续调试,接下来还需要进行自定义调试基座操作。

1.3.1 制作自定义调试基座

选择“运行 > 运行到手机或模拟器 > 制作自定义调试基座”菜单。

在弹出的界面中,按照 uni-app 教程,填写相关信息,并单击“打包”进行云打包。

打包成功后,控制台就会收到 uni-app 的相关提示。

1.3.2 切换运行基座为自定义调试基座

打包步骤完成后,选择“运行 > 运行到手机或模拟器 > 运行基座选择 > 自定义调试基座”。

切换到刚制作的基座即可。

至此,集成 SDK 整个步骤就完成啦。

2、集成 JS 封装层

SDK 集成后,接下来我们来集成 JS 封装层。

在插件市场的 ZegoExpressEngine 音视频插件(JS) 界面,点击右侧的“使用 HBuilderX 导入插件”。

导入的 JS 封装层就存储在 “components” 目录中了。

导入后,可以在业务代码中引入 JS 封装层,并调用 Express 相关接口,示例如下:

3、设置权限

应用要正常的运行,权限设置少不了。

根据您实际应用需要,设置应用所需权限。

进入 manifest.json 文件,打开 app 权限设置,在 app 云打包权限配置里添加权限。

具体权限说明,可以去“设置权限”中看看👉 设置权限

四、实现基础功能,让应用能用起来

前面我们已经完成 SDK 集成,在 ZEGO 控制台创建项目,并且申请有效的 AppID 和 AppSign,接下来就可以为这款 app 搭建一些基础功能了。

1、实现视频通话

视频通话是核心功能,我们先从该功能的搭建步骤入手。

1.1 创建引擎

1.1.1 创建引擎

调用 createEngineWithProfile 接口,将刚刚申请到的 AppID 和 AppSign 传入参数 “appID” 和 “appSign”里,然后创建引擎单例对象。

1.1.2 设置回调

创建引擎后开发者可根据实际需要,调用引擎实例的 on 方法设置回调,以便处理各种事件。

1.2 登录房间

调用 loginRoom 接口登录房间。如果房间不存在,调用该接口时会创建并登录此房间。

1.3 推流

调用 startPublishingStream 接口,传入流 ID 参数 “streamID”,就能把本端的音视频流发送给远端用户了。

1.4 拉流

调用 startPlayingStream 接口,根据传入的流 ID 参数 “streamID”,拉取远端推送的音视频流。

关于远端视频流视图,需要注意以下两点:

在 uni-app 的 App 环境中,若 startPlayingStream 调用成功,则无返回值,可使用 <zego-remote-view> 标签设置远端视频流视图。

在 uni-app 的 Web 环境中,若 startPlayingStream 调用成功,会返回一个 MediaStream 对象,开发者可以用返回的 MediaStream 赋值给 video 元素的 srcObject 属性设置远端视频流视图。

1.5 测试推拉流功能

这里我们建议,在功能搭建后测试一下是否运行异常。

为方便测试,我们提供了 Web 端调试示例,在该页面下,输入相同的 AppID、RoomID,输入不同的 UserID、以及对应的 Token,就能在同一房间内与真机设备进行互通测试。如果可以听到远端的音频,并看到远端的视频画面,则说明功能搭建成功,然后我们继续搭建下一个功能👇。

2、IM 即时通讯

在直播中,互动也很重要,而ZEGO的即时通讯功能就能满足这一点。ZEGO 即时通讯为开发者提供全平台互动、海量并发、超低延时的通信服务,能够满足直播间中的文字聊天需求。

在带货直播中,观众发表评论、提问,并且与主播、直播间其他用户进行实时互动,比如询问商品相关属性、促销机制、选择建议等,主播也能够及时回复,帮助用户更加深入地了解商品,以促成最终的成交。

进一步了解 👉IM即时通讯

此外,ZEGO SDK 还包含广播消息、弹幕信息、自定义信令等功能,更多适用、有趣的功能将在后期的文章具体介绍。

3、商品购物车

直播带货的最终目标是商品的交易,而购物车则是连接直播内容与电商交易的核心环节。商品购物车的核心功能是能够让观众对直播间中展示的商品进行存储、管理(全选、勾选下单)及结算。不过即构主要提供直播方面能力,关于购物车的功能与架构的设计、数据库设计等业务层能力就、还需要您自行开发。

结语

按照上述步骤,就完成一款直播带货 app 从环境部署到基本功能搭建。

以上所有的功能实现步骤及代码,均可在 ZEGO 实时音视频文档中心找到,您可根据实际的应用场景需求自定义选择。

关注即构开发者,后期文章将持续更新,为您带来更多的实用、有趣高级功能拓展以及应用场景介绍,敬请期待。

http://www.dtcms.com/a/303964.html

相关文章:

  • uniapp 如果进入页面输入框自动聚焦,此时快速返回页面或者跳转到下一个页面,输入法顶上来的页面出现半屏的黑屏问题。
  • 使用JavaScript实现轮播图的任意页码切换和丝滑衔接切换效果
  • uniapp 实现全局变量
  • 【数据结构】用堆实现排序
  • vue3+vite 使用liveplayer加载视频
  • MySQL MVCC:并发神器背后的原理解析
  • 网工知识——OSPF摘要知识
  • [工具类] 分片上传下载,MD5校验
  • echarts饼图
  • 封装$.ajax
  • 一个人开发一个App(数据库)
  • OpenAI Python API 完全指南:从入门到实战
  • 【学习笔记】Lean4 定理证明 ing
  • 7.29错题(zz)史纲 7章 建立新中国
  • Scala实用编程(附电子书资料)
  • Node.js 内置模块
  • AR辅助前端设计:虚实融合场景下的设备维修指引界面开发实践
  • 学习Scala语言的最佳实践有哪些?
  • GCC、glibc、GNU C(gnuc)的关系
  • SkSurface---像素的容器:表面
  • PowerShell脚本自动卸载SQL Server 2025和 SSMS
  • 零基础-动手学深度学习-7.7 稠密连接网络(DenseNet)
  • 景区负氧离子环境监测系统云平台方案
  • 论文阅读:2024 arxiv AutoDefense: Multi-Agent LLM Defense against Jailbreak Attacks
  • 【OpenAI】ChatGPT辅助编码:Spring Boot + Copilot自动生成业务逻辑
  • 【MySQL】从连接数据库开始:JDBC 编程入门指南
  • Java优雅使用Spring Boot+MQTT推送与订阅
  • vue请求golang后端CORS跨域问题深度踩坑
  • 【STM32】FreeRTOS 任务消息队列 和 中断消息队列的区别(六)
  • 14 - 大语言模型 — 抽取式问答系统 “成长记”:靠 BERT 学本事,从文本里精准 “揪” 答案的全过程(呆瓜版-1号)