更新记录

1.0.3(2026-06-26)

适配APP端(推流除外)

1.0.2(2026-06-05)

修复uni-id依赖问题

1.0.1(2026-06-04)

优化细节

查看更多

平台兼容性

云端兼容性

阿里云 腾讯云 支付宝云

uni-app(5.0)

Vue2 Vue2插件版本 Vue3 Vue3插件版本 Chrome Chrome插件版本 Safari Safari插件版本 app-vue app-vue插件版本 app-nvue Android Android插件版本 iOS iOS插件版本 鸿蒙
1.0.2 1.0.2 1.0.2 1.0.2 1.0.3 - 4.4 1.0.3 16 1.0.3 -
微信小程序 微信小程序插件版本 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
1.0.2 - - - - - - - - - - -

其他

多语言 暗黑模式 宽屏模式
× ×

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


插件介绍

插件包含 主播推流端观众播放端、全套的聊天互动带货功能,欢迎大家体验。

接入前提

该插件是云端一体页面模版,不是完整项目,仅是直播模块。如您原有项目需要增加直播功能,则可以考虑该插件。

另外需要您对照下表,确定下原有项目是否支持接入该插件:

uniCloud vue版本 客户端 直播服务商
已接入uniCloud和uni-id ✅ vue2 ✅ 微信小程序 ✅ uni直播 ✅
已接入uniCloud,但未使用uni-id ❌ vue3 ✅ H5 ✅(推流功能除外) 腾讯云 ✅
未接入uniCloud ❌ APP ✅(推流功能除外) 迅课云 ✅

微信小程序端 推拉流需在小程序后台开通live-pusher和live-player两个组件,如您资质不满足,可使用迅课直播插件实现(收费,名额有限)

H5端和APP端 不支持推流,需通过OBS或其他第三方推流工具开播,插件内提供“复制推流地址”功能

APP端 测试机为安卓小米K50pro和iOS模拟器18.4,其他设备未测试,如有问题可随时反馈

开通直播带货需要您原项目中有完整的商品下单体系,直播间会跳转到您配置的商品详情页,详见插件配置文件。

项目预览

接入流程

  1. 从插件市场购买或试用(加密函数不支持本地调用云函数,可在HX控制台选择“连接云端云函数“);
  2. 填写插件配置文件 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/yan-live/config.js,填写完成后 一定要右键uni-config-center目录上传公共模块;
  3. 基于demo完善商品接口 uni_modules/yan-live/uniCloud/cloudfunctions/yan-live-cb-co/goods.js,不开启带货功能 则忽略;
  4. 基于demo完善直播访问鉴权接口 uni_modules/yan-live/uniCloud/cloudfunctions/yan-live-cb-co/demo-auth.js,不开启鉴权功能 则忽略,详见插件配置文件 liveAuthHook 模块;
  5. 云服务空间初始化向导 - 选择云空间 - 勾选部署所有云函数 勾选初始化数据库;
  6. 在项目manifest中开启uniPush2.0,在DCloud开发者后台 将云服务空间与uniPush关联,关联后需重新运行项目;
  7. 在uni直播控制台-直播设置-空间授权中添加当前服务空间;
  8. 根据第2步中配置角色,使用管理员或者主播身份的账号打开直播管理页面,路径:/uni_modules/yan-live/pages/live/manage,您可在项目中合适的位置添加管理入口;
  9. 观众打开直播大厅页面查看效果,路径:/uni_modules/yan-live/pages/live/list
  10. 云函数绑定URL化域名,找到yan-live-co函数-进入详情,设置URL的PATH部分为/yan-live-co,并在直播服务商处配置直播回调,回调地址见下方常见问题

功能清单

功能 介绍
直播推流 在插件内推流、复制地址使用obs推流
直播拉流 在不同的端 不同设备 会提供不同格式的流来播放直播。延迟:rtmp 2-5s、flv 2-5s、hls 10-20s、webrtc暂不支持
直播彩排 创建直播时可设置为彩排,彩排不会出现在直播大厅中,仅可分享给好友
直播回放 直播结束后可开启,支持设置禁用操作控件,类似伪直播的效果(注意合规性)
直播间管理 支持配置用户角色来区分哪些用户可创建及管理直播间
直播大厅 插件提供直播列表页面,按直播状态分多个tab展示
直播组件 插件提供直播列表组件,可自定义查询参数,嵌入您原项目页面内部
直播聊天室 消息互动、引用、点赞、撤回、禁言、拉黑
直播带货 商品管理、上下链接、支付回传。 -- 带货统计 ❌(暂未支持)
直播跑马灯 在观众端播放器中显示文字跑马灯,支持配置文本内容
关注主播 用户可查询所关注主播的直播计划
角色分配 管理员、主播、直播助理
分享分销 有限支持,详见下方解释 查看
其他 更多细节功能不一一列举
提需求💡 如插件未完全满足您的需求,可联系 ☎️+V 181-3789-3380(建议优先通过官方交流群联系)

项目依赖

uni-id-pages

插件使用了uni-id-pages提供的token和用户信息。

uni-push2.0

基于uni-push2.0实现直播相关的即时通信yan-live-im。官方的uni-im非常优秀,但对于直播互动来说略显臃肿,且需要大量改造,因此开发了更适合直播更轻量的live-im。

注意事项:如果你的原项目中使用了uni.offPushMessage且没有传入参数,则会移除App级别的所有已注册的事件监听器,【有可能】会导致直播间用户接收不到消息,和off的时机有关。

uni-push需关联服务空间,关联后需重新运行项目

uni-search-bar

搜索栏组件

uni-datetime-picker

日期选择组件

数据表

表名 解释
yan-live 直播表 包含直播基本信息和主播及助理信息
yan-live-user 直播用户表 包含push核心字段push_clientid
yan-live-msg 直播聊天室消息表,仅存储真正的消息。如撤回的动作本身不属于消息,仅通过im推送 但不会入库
yan-live-goods 直播商品表(对您的商品表的简单备份)
yan-live-follow 用户关注主播表

分享与分销

分享

APP端 暂不支持分享

小程序端 使用官方api分享

H5端 原计划两种方案:

1.生成分享海报(放弃);

弊端:可能会存在跨域问题,还需要引入额外的二维码插件。

2.微信JSAPI自定义分享。

大概率您的h5项目已经开发相关功能,而且与微信服务端的交互本就不在本插件的业务范围,故该功能继续交由您来完成。插件内会在合适的时机将分享信息通过uni.$emit传递给您,您需在App.vue中接收,代码如下:

onLaunch: function() {
    console.log('App Launch')
    uni.$on('yan-live-share-h5', (data={})=>{
        // console.log(data); // imgUrl、link、title
        setTimeout(()=>{
            // 模拟微信jsapi ready完成
            data.success && data.success()
        },300)
    })
},

关于H5分享,如果您有其他想要的实现方式可以联系作者

分销

插件不负责为您处理账号邀请关系的绑定。
如果用户B是通过用户A的邀请链接进入直播间,那么用户B在点击商品卡片时会携带用户A的id一起跳转至您的商品详情页。
您能接收到的全部参数有:goods_id(商品id 必传)、live_id(直播id 必传)、inviter_id(邀请人id)

常见问题

Q:每个接口都报未知错误。 A:插件依赖uni-id,请确保正确配置了uni-config-center/uni-id/config.json

Q:互动消息不可用。 A:检查是否开启uniPush2.0,且与云空间做了关联;检查项目中是否有不具名的uni.offPushMessage

Q:直播状态不更新。 A:检查是否配置了直播回调,直播回调地址是云函数URL域名+/yan-live-co/yanLiveCallback?source=服务商简称,如:https://live.domain.com/yan-live-co/yanLiveCallback?source=uni。uni:uni直播,tx:腾讯云,xk:迅课云。域名需要按照后台提示在指定云厂商完成备案,未备案前建议使用默认域名测试

Q:直播图片无法上传。 A:常见于H5端,unicloud后台-跨域配置-添加页面域名

Q:uni直播回放视频无法播放。 A:触发几率较小,一般是七牛CDN问题,给七牛提工单协助解决

隐私、权限声明

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

小程序端推流需要摄像头和麦克风,其他端无需权限

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

插件不采集任何数据

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