camera多次调用出现错误或无法回调PictureCallback接口onPictureTaken()函数的解决方法

简介: camera多次调用出现错误或无法回调PictureCallback接口onPictureTaken()函数的解决方法

最近做的项目都是Android的定制设备的项目,最近的一个需求是需要拍照上传,然后进行其他的操作,对这个要求需要实现秒级,但是拍照、上传、再加上自己的一些操作,很难达到这个要求,因为拍照里面涉及到对焦,预览,图片压缩等,于是想到了一些减少耗时的办法,就是相机在后台静默拍照,程序打开的时候就初始化启动相机,需要上传上传拍照的时候就可以直接进行拍照了,这样就不用每次都去打开相机了。本来用着是没问题的,测试也通过了,然后就暂时没管了,结果用了一段时间之后,客户反馈说App设置成拍照模式之后闪退了,赶紧拿出以前的代码亲测一遍,果然GG了,实在是想不通,以前公司测试了都是通过的呀,然后debug了一下,


发现多次调用camera之后PictureCallback接口的onPictureTaken()函数有时候会不行,这个是随机的,没有固定次数,然后就去百度了。以下是百度的结果:


Android Camera中无法回调PictureCallback接口onPictureTaken()函数


camera多次调用出现错误解决方法

最后自己的解决办法是拍照之后调用如下代码:

myCamera.cancelAutoFocus(); //这一句很关键
myCamera.startPreview();


最近公司还是觉得这个拍照有点慢,还有点low,不能满足实际效果,想换成人脸识别,对这一块还不了解,知道的小伙伴可以留言建议哟。主管让我去学一下人脸识别算法,看得我好懵逼呀!!!有没有简单点的实现方式呀。


这里有一些相关的博文,没解决的可以看一下:

Android相机开发中遇到的一些问题



相关文章
|
29天前
|
C语言 C++ 容器
C调用C++代码
C调用C++代码
13 1
|
Java
CheerpJ调用的两种方式
CheerpJ调用的两种方式
200 0
|
网络协议 C# 计算机视觉
关于 C#调用C库Dll,有回调函数时,只执行一次回调函数就直接挂掉 的解决方法
关于 C#调用C库Dll,有回调函数时,只执行一次回调函数就直接挂掉 的解决方法
关于 C#调用C库Dll,有回调函数时,只执行一次回调函数就直接挂掉 的解决方法
|
小程序
小程序调用接口不生效?
小程序调用接口不生效?
312 0
|
缓存 负载均衡 微服务
多服务间的调用
上文我们把我们项目注册到服务器上了,但是在微服务中,我们会有多个服务,同时也会使用A服务调用B服务的接口。springcloud netflix这里有两种方式ribbon和feign,我们分别介绍。
98 0
多服务间的调用
|
C++
c调用c++函数
c调用c++普通函数     cpp_test/cpp.h #ifndef CPP_H #define CPP_H #include "extern_cpp.h" int add(int a, int b); char add(char a, char b); #endif // CPP_H     cpp_test/extern_cpp.
1984 0
|
Java 开发工具 应用服务中间件