如何用即构ZEGO SDK和uni-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](https://doc-zh.zego.im/article/7776?soure=cnblog&keyword=200001)

方法二:在 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)

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

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

3、设置权限
应用要正常的运行,权限设置少不了。
根据您实际应用需要,设置应用所需权限。
进入 manifest.json 文件,打开 app 权限设置,在 app 云打包权限配置里添加权限。


具体权限说明,可以去“设置权限”中看看 设置权限
四、实现基础功能,让应用能用起来
前面我们已经完成 SDK 集成,在 ZEGO 控制台创建项目,并且申请有效的 AppID 和 AppSign,接下来就可以为这款 app 搭建一些基础功能了。
1、实现视频通话
视频通话是核心功能,我们先从该功能的搭建步骤入手。
1.1 创建引擎
1.1.1 创建引擎
调用 createEngineWithProfile

1.1.2 设置回调
创建引擎后开发者可根据实际需要,调用引擎实例的 on
1.2 登录房间
调用 loginRoom

1.3 推流

1.4 拉流
调用 startPlayingStream
关于远端视频流视图,需要注意以下两点:
在 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 实时音视频文档中心找到,您可根据实际的应用场景需求自定义选择。
关注博主,后期文章将持续更新,为您带来更多的实用、有趣高级功能拓展以及应用场景介绍,敬请期待。
如何用即构ZEGO SDK和uni-app开发一款直播带货应用?的更多相关文章
- 如何用HMS Nearby Service给自己的APP开发一个名片交换功能?
在工作和生活中,遇见新的同事或者合作伙伴,交换名片是一个常见的用户需求,纸质名片常忘带.易丢失,是客户的一个痛点.因此,市场上出现了很多交换电子名片的APP和小程序.那么,如何给自己的APP开发一 ...
- 如何基于 ZEGO SDK 实现 Android 一对一音视频聊天应用
疫情期间,很多线下活动转为线上举行,实时音视频的需求剧增,在视频会议,在线教育,电商购物等众多场景成了"生活新常态". 本文将教你如何通过即构ZEGO sdk在Android端搭建 ...
- 【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播
摘要:看我如何通过API Explorer 的SDK接口搞定千万级流量直播. 最近几个月,我的变化其实还蛮大的,从一个被实习生“无视”的“前浪”,转变成了不仅能够解决技术问题还能解决业务问题(顺手还能 ...
- 如何基于 ZEGO SDK 实现 Flutter 一对一音视频聊天应用?
之前的文章发布了ZEGO SDK实现Android端音视频通话应用的开发教程,不少开发者反馈很实用,能不能也出一版Flutter的教程. 有求必应,这不小编来了- 我们封装了ZEGO Flutter ...
- 如何基于 ZEGO SDK 实现 Windows 一对一音视频聊天应用
互联网发展至今,实时视频和语音通话越来越被大众所依赖. 今天,我们将会继续介绍如何基于ZEGO SDK实现音视频通话功能,前两篇文章分别介绍了Android,Flutter平台的实现方式,感兴趣的小伙 ...
- 如何基于ZEGO SDK 实现通话质量监测
如何基于ZEGO SDK 实现通话质量监测 1 功能简介 在进行视频通话过程中,用户有时候会出现网络不好的情况,比如在进行多人视频通话或者多人唱歌时,我们需要实时显示用户的网络质量. 示例源码 请参考 ...
- 如何基于 ZEGO SDK 实现 Android 通话质量监测
功能简介 在进行视频通话过程中,用户有时候会出现网络不好的情况,比如在进行多人视频通话或者多人唱歌时,我们需要实时显示用户的网络质量. 示例源码 参考 下载示例源码 获取源码. 相关源码请查看 &qu ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十八):Web代理功能
在Senparc.Weixin.dll v4.5.7版本开始,我们提供了Web代理功能,以方便在受限制的局域网内的应用可以顺利调用接口. 有关的修改都在Senparc.Weixin/Utilities ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十七):个性化菜单接口说明
前不久微信上线了个性化菜单接口,Senparc.Weixin SDK也已经同步更新. 本次更新升级Senparc.Weixin.MP版本到v13.5.2,依赖Senparc.Weixin版本4.5.4 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(三):微信公众平台开发验证
要对接微信公众平台的"开发模式",即对接到自己的网站程序,必须在注册成功之后(见Senparc.Weixin.MP SDK 微信公众平台开发教程(一):微信公众平台注册),等待官方 ...
随机推荐
- 第六章: SEO与交互指标 二
上一篇文章地址 5. 提升用户参与度 提高用户参与度不仅有利于SEO,还能增加转化率和用户留存. 5.1 内容结构优化 使用吸引人的标题和小标题: 使用数字列表.问题形式或"如何" ...
- C# 之静态构造器与静态字段初始化器
public class Test { /// <summary> /// 静态字段初始化器会在调用静态构造器前运行. /// 如果类型没有静态构造器,字段会在类型被使用前或运行时中更早的 ...
- B1037 在霍格沃茨找零钱
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.& ...
- 基于预生成 QA 对的 RAG 知识库解决方案
核心价值 QA 预生成技术 采用创新的问答对生成方法,相比传统文本切片技术,能够更精准的构建知识库,显著提升检索与问答效果. 企业级场景验证 已在真实业务场景中落地应用,实现从传统搜索到智能搜索的无缝 ...
- File与IO流之字节流
FileOutputStream 创建字节输出流对象FileOutputStream fl =new FileOutputStream() 传入的参数可以是字符串路径或者File对象(实际上如果传入字 ...
- AtCoder Beginner Contest 357-F
Problem 同步于博客 Problem You are given sequences of length \(N\), \(A=(A_1,A_2,\ldots,A_N)\) and \(B=(B ...
- 【中英】【吴恩达课后测验】Course 5 - 序列模型 - 第三周测验 - 序列模型与注意力机制
[中英][吴恩达课后测验]Course 5 - 序列模型 - 第三周测验 - 序列模型与注意力机制 上一篇:[课程5 - 第二周编程作业]※※※※※ [回到目录]※※※※※下一篇:[待撰写-课程5 - ...
- Dify实战案例:MySQL查询助手!嘎嘎好用
有了 AI 之后,我们在查询数据库的时候就不需要使用数据库客户端或程序(如 Java.Python)来查询了,我们可以直接使用 AI 来查询数据库,并且查询语句都不用你来写了,AI 会自动帮你生成. ...
- 再不用手写Commit!AI自动总结代码变更,Git提交效率
背景 今天写完代码后, commit到git仓库, 让我写提交信息时, 突然发现了些问题 1.发现git commit 经常很难描述清晰 在写后面的message, 如: git commit -m ...
- C# 将 CSV 转化为 Excel
引言 在数据处理和交换的过程中,CSV(逗号分隔值)格式和 Excel 文件格式都是非常常见的.CSV 文件以纯文本形式存储表格数据,易于生成和处理:而 Excel 文件则提供了更丰富的功能,如数据可 ...