文章目录
作者:kerwin
微信小程序开发如火如荼,很多公司都构建了自己的小程序。对于一些有产品的公司, 他们对于自己的小程序有直播需求,希望通过小程序直播获得流量变现。本文章就此需求,跟大家聊聊如何在自己的小程序加入直播功能。
小程序虽然提供了直播组件(后面会有介绍),但是直播组件暂只针对国内主体部分类目的小程序开放(https://developers.weixin.qq.com/miniprogram/dev/component/live-player.html),需要先通过类目审核,再在小程序管理后台,「开发」-「接口设置」中自助开通该组件权限。具体流程如下:

注意 :添加类目(小程序必须经过企业认证),可能需要提供资质证明,比如添加在线视频课程的类目需要的资质如下


直播功能除了小程序端的支持,也需要服务器(推拉流服务器)支持,我们自己搭建的成本过高,所以本文基于腾讯云直播来实现。
说明:
云直播服务申请开通成功后,会赠送20GB国内播放流量免费体验使用。为避免赠送流量用完后自动扣费,导致欠费无法使用云直播服务,建议您根据实际业务需求, 购买相应规格的套餐包。
使用云直播服务,至少需要2个域名,一个作为推流域名,一个作为播放域名,推流和播放不能使用相同的域名。
准备自有域名,并完成域名备案。
登录云直播控制台,进入域名管理,单击添加域名

xxxx.livepush.myqcloud.com,您可通过该域名进行推流测试,但不建议您在正式业务中使用这个域名作为推流域名。.tlivecdn.com 或 .tlivepush.com 为后缀)。CNAME 域名不能直接访问,您需要在域名服务提供商处完成 CNAME 配置,配置生效后即可享受云直播服务。选择 直播工具箱 > 地址生成器。进入地址生成器页面,并进行如下配置:
选择生成类型:推流域名。
选择您在域名管理中已添加的推流域名。
填写 AppName,默认为 live。
填写自定义的流名称 StreamName,例如:liveteststream。
选择地址过期时间,例如:2021-05-31 23:59:59。
单击 生成地址 即可生成推流地址。

选择 直播工具箱 > 地址生成器获取播放地址,在该页面进行如下配置:
live。2021-05-31 23:59:59。
保存播放地址与推流地址,给后面的小程序组件使用。
https://developers.weixin.qq.com/miniprogram/dev/component/live-pusher.html
实时音视频录制需要用户授权 scope.camera、scope.record。
<live-pusher url="https://domain/push_stream" mode="RTC" autopush bindstatechange="statechange" style="width: 300px; height: 225px;" />
Page({
statechange(e) {
console.log('live-pusher code:', e.detail.code)
}
})
https://developers.weixin.qq.com/miniprogram/dev/component/live-player.html
实时音视频播放
<live-player src="https://domain/pull_stream" mode="RTC" autoplay bindstatechange="statechange" binderror="error" style="width: 300px; height: 225px;" />
Page({
statechange(e) {
console.log('live-player code:', e.detail.code)
},
error(e) {
console.error('live-player error:', e.detail.errMsg)
}
})

home.wxml
<!--pages/home/home.wxml-->
<text>pages/home/home.wxml</text>
<button type="primary" bindtap="handleTapOwner">我是主播</button>
<button bindtap="handleTapPlayer">我是观众</button>
home.js
handleTapOwner(){
wx.navigateTo({
url: '/pages/owner/owner',
})
},
handleTapPlayer(){
wx.navigateTo({
url: '/pages/player/player',
})
},
owner.wxml(主播)
<text>我是主播页面</text>
<live-pusher url="填之前保存的推流域名" mode="RTC" autopush bindstatechange="statechange" style="width: 100vw; height: 100vh;" beauty="9" whiteness="9"/>
player.wxml(观众)
<text>我是观众页面</text>
<live-player src="填之前保存的播放域名" mode="RTC" autoplay bindstatechange="statechange" binderror="error" style="width: 100vw; height: 100vh" object-fit="fillCrop" id="player"/>
把域名替换成自己申请的播放和推流域名
在手机预览效果如下 (必须两个微信号测试)

如果主播不在线, 进去看到就是黑屏,我们可以通过云直播返回code来判断,主播是否正在直播,如果不在直播可以提示用户,主播已经下线。
code:-2301 网络断连,且经多次重连抢救无效,更多重试请自行重启播放
player.js
onLoad: function (options) {
this.player = wx.createLivePlayerContext("player")
},
statechange(evt){
console.log(evt.detail.code)
switch(evt.detail.code){
case -2301: //网络断连,且经多次重连抢救无效,更多重试请自行重启播放
wx.showModal({
content:"主播暂时离开了",
success:(res)=>{
if(res.confirm){
//重新连接播放地址
this.player.play()
}else{
wx.navigateBack()
}
}
})
}
},
ess:(res)=>{
if(res.confirm){
//重新连接播放地址
this.player.play()
}else{
wx.navigateBack()
}
}
})
}
},
好了,纸上得来终觉浅,小伙伴快试试吧!
目录1.AdmobSDK下载地址2.将下载好的unityPackagesdk导入到unity里编辑 3.解析依赖到项目中
前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现
提供3种Ubuntu系统安装微信的方法,在Ubuntu20.04上验证都ok。1.WineHQ7.0安装微信:ubuntu20.04安装最新版微信--可以支持微信最新版,但是适配的不是特别好;比如WeChartOCR.exe报错。2.原生微信安装:linux系统下的微信安装(ubuntu20.04)--微信适配的最好,反应最快,但是微信版本只到2.1.1,版本太老,很多功能都没有。3.深度deepin-wine6安装微信:ubuntu20.04+系统deepin-wine6安装新版微信--综合比较好,当前个人使用此种方法1个月,微信版本3.4;没什么大问题,尚可。一、WineHQ7.0安装微信
对传统的餐饮商家来说,小程序很好地解决了餐厅线下线上连接的问题,在引流获客、节约人力、营销宣传、塑造会员体系、改善消费体验等方面都有很大帮助。小程序点餐可以帮助餐饮企业节省一大把人力开支。一个包含扫码点单、菜品管理、优惠券推送、外卖配送的小程序,商家花几万元就能完成开发测试并投入。商家为什么要开通“扫码点餐”1.解决服务员不够用的问题。2.不怕顾客跑单漏单。3.在微信就能管理菜品、查看营业额。4.订单小票显示顾客桌号和已点菜品。5.可在“附近的小程序”找到您的门店。如今餐饮业常用的三种经营模式:1堂食点单模式客人通过小程序堂食点单。商家可以在微信扫码点餐小程序管理后台根据自己店内情况来设置不同
技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进
在开发微信小程序的时候,我们可能需要开发环境和测试环境,或者其他环境,下面是切换环境的方法。首先需要明确的是:前端的页面代码是不区分环境的,环境的区分指的是云函数、云数据库、云存储这些。1、更改云函数的使用云环境这里我们从cloud1更改为test-cloud,这个改完是没有用的,因为在前端代码指定了使用的云环境。cloudfunctions文件和miniprogram文件虽然都在一个目录下,但是这两个没有直接联系。2、在evList.js中添加自己云环境evList.js存储了云环境列表,这里把test-cloud加到这个列表里,需要填写envId和alias,参照cloud1写就行。3、更
前言微信支付是企业级项目中经常使用到的功能,作为后端开发人员,完整地掌握该技术是十分有必要的。一、申请流程和步骤图1-1注册微信支付账号获取微信小程序APPID获取微信商家的商户ID获取微信商家的API私钥配置微信支付回调地址绑定微信小程序和微信支付的关系搭建SpringBoot工程编写后台支付接口发布部署接口服务项目使用微信小程序或者UniAPP调用微信支付功能支付接口的封装配置jwt或者openid的token派发原生微信小程序完成支付对接二、注册商家2.1商户平台商家或者企业想要通过微信支付来进行商品的销售,必须先通过微信平台(pay.weixin.qq.com)去将商家进行注册。注册成
介绍 最近在做微信小程序时,顶部标题栏总是与胶囊对不齐。往往是在这款手机上对齐了,在另外一款手机差很多。我在查阅资料后,提出了一种方法解决这个问题,即:在页面onLoad或组件created时,利用微信小程序提供的API,获取系统状态栏高度和胶囊信息,进而动态调整顶部标题栏样式。在苹果、小米、荣耀手机做验证,能做到精准对齐。理论 胶囊样式应该是垂直居中,有1px的border,border-radius为18px。 若要使顶部标题栏与胶囊对齐,则其高度必须是导航栏高度,标题栏内容也要垂直居中,顶部标题栏的外边距或内边距必须是状态栏高度。 如果顶部