最近做的项目都是Android的定制设备的项目,最近的一个需求是需要拍照上传,然后进行其他的操作,对这个要求需要实现秒级,但是拍照、上传、再加上自己的一些操作,很难达到这个要求,因为拍照里面涉及到对焦,预览,图片压缩等,于是想到了一些减少耗时的办法,就是相机在后台静默拍照,程序打开的时候就初始化启动相机,需要上传上传拍照的时候就可以直接进行拍照了,这样就不用每次都去打开相机了。本来用着是没问题的,测试也通过了,然后就暂时没管了,结果用了一段时间之后,客户反馈说App设置成拍照模式之后闪退了,赶紧拿出以前的代码亲测一遍,果然GG了,实在是想不通,以前公司测试了都是通过的呀,然后debug了一下,
发现多次调用camera之后PictureCallback接口的onPictureTaken()函数有时候会不行,这个是随机的,没有固定次数,然后就去百度了。以下是百度的结果:
Android Camera中无法回调PictureCallback接口onPictureTaken()函数
camera多次调用出现错误解决方法
最后自己的解决办法是拍照之后调用如下代码:
myCamera.cancelAutoFocus(); //这一句很关键 myCamera.startPreview();
最近公司还是觉得这个拍照有点慢,还有点low,不能满足实际效果,想换成人脸识别,对这一块还不了解,知道的小伙伴可以留言建议哟。主管让我去学一下人脸识别算法,看得我好懵逼呀!!!有没有简单点的实现方式呀。
这里有一些相关的博文,没解决的可以看一下:
Android相机开发中遇到的一些问题