欢迎您访问 广东某某电缆桥架有限公司官方网站

杏宇注册简介 联系我们 网站地图

欢迎来电咨询

13988888888

新闻资讯

全国服务热线

13988888888

技术过硬,据实报价

新闻动态

当前位置: 主页 > 新闻资讯 > 新闻动态

uniapp 使用摄像头 live-pusher (APP)

2025-06-01 17:02 已有 人浏览 佚名

前因:公司需求需要类似于微信小程序camera 类似的功能,但是uniapp并没有相应的组件,由于开发周期相对较短,暂时放弃使用iOS与android原生开发。凑巧之前做过类似直播的功能,所以就想起来使用live-pusher来调用摄像头。一开始感觉挺好的,但是之后就发现有各种各样的问题:

1、APP打包运行报错(例如:e[t] is not undefined)(app 离线打包)

HX项目中除了在mainifest.json中app模块设置中勾选LivePusher?

android/ios外壳:模块/三方SDK配置介绍 | uni小程序SDK

按照上述文档操作就可以了,如果还有问题,就看一下是不是那里有遗漏

2、live-pusher初始化的问题

uni.createLivePusherContext('livePusher', this)可以根据官方建议放到onReady中去执行,然后记得开启摄像头预览以及轮询摄像头是否打开,否者用户打开时可能会到黑屏的情况

 

3、android权限问题,使用live-pusher初始化的时候,系统回个用户弹出授权窗口,当用户拒绝的时候是无法使用的。与iOS不同的是android有三个权限,分别是相机、麦克风、电话。这是error方法:(:安卓不同系统会出现,权限弹框出现时,当前界面自动后台运行)

 

4、iOS中statechange、error、netstatu方法无效(瞬间想骂人了,果然官方文档也不能全信。没有最坑,只有更坑)。由于没有方法判断用户是否同意授权,所以这里只能单独对iOS进行一下授权判断。大家可以使用这个插件:

App权限判断和提示 - DCloud 插件市场

由于IOS需要麦克风与相机权限,但是如果live-pusher 未初始化的时候,麦克风可以调起系统的授权申请弹框,但是相机没有调起只能查询。按照iOS的权限申请机制,当用户未调用权限时,对应的权限不会出现在APP的权限设置中,所以就算我们让用户跳转到应用的权限设置中也无法打开相机权限。所以用户在进入界面的时候要对live-pusher 进行初始化。然后再用户点击时在进行权限判断。

5、横竖屏切换问题。APP一般开发的时候默认是竖屏,安卓在横竖屏切换的时候没什么问题,但是IOS在切换的时候,影响逆转90%,没办法矫正(目前我们解决办法:IOS使用原生开发)。

6、摄像头被抢。应用中使用摄像头并且在打开摄像头的情况下进入后台,同时在其他应用打开摄像头,这个时候再返回应用的时候,摄像头出现黑屏的情况。这是因为当前我们应用的摄像头等级降低也就是说被后面打开的摄像头抢了,所以在我们从后台进入的时候要默认打开一下摄像头来提高摄像头调用等级

7、live-pusher 在iOS可能存在闪退的情况。(目前是在确认中,这是一个建议)由于我们之前使用过摄像头预览,所以我想着是不是这个功能的问题,当页面卸载的时候,使用stopPreview来关闭摄像头预览

这是我在使用中遇到的问题,由于我写的不是很详细,大家可以参考一下:live-camera: 利用live-pusher组件制作的自定义相机

TAG: 摄像 权限

与uniapp 使用摄像头 live-pusher (APP)相关的其他内容

平台注册入口