uniapp 使用摄像头 live

阅读: 评论:0

uniapp 使用摄像头 live

uniapp 使用摄像头 live

前因:公司需求需要类似于微信小程序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初始化的问题

//开始预览startPreview() {this.livePusher.startPreview({success: res)=> {}});},//轮询摄像头打开
poenCarme() {if (plus.os.name == 'Android') {this.poenCarmeInterval = setInterval(() => {...    //添加是否需要预览摄像头的方法,一般摄像头打开之后就不会在开启预览摄像头  }, 2500);}
},

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

error({detail}){console.log(detail);//10001 用户禁止使用摄像头 //10002 用户禁止使用录音 //10003 用户禁止读取设备状态 (电话)
},    

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组件制作的自定义相机

本文发布于:2024-01-31 08:10:15,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170665981627006.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:摄像头   uniapp   live
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23