我正在为Android写一个应用程序来拍照。代码在从onPreviewFrame(byte [] data,Camera camera)的预览中获取帧后执行一些处理。 问题是android.hardware.Camera的函数takePicture()有时会做我想要的东西,有时不会返回,也不会调用回调函数。当我运行应用程序一些时候,第一张照片不会返回,有时我可以拍摄四张照片,第五张会导致应用程序挂起。有一个simillar线程:problem with taking pictures using the android camera。建议的解决方案是使用上次预览的框架,但它肯定不是一个好的解决方案!此问题可能会引起,因为takePicture是Asancronous(Android Doc)。Android Camera.takePicture()不会返回一些?
我只需调用takePicture()函数是这样的:
public static void takePicture() {
mCamera.takePicture(null, null, jpegCallback);
}
Here是logcat的输出的链接。你可以在输出中搜索短语“takePicture”,你会看到这个函数有时会返回,有时不会返回。
这是当takePicture返回输出:
10-02 19:24:36.570: INFO/ShotSingle(3198): ShotSingle::takePicture start
10-02 19:24:36.570: DEBUG/CameraHal(3198): 2489: takePicture() ENTER
10-02 19:24:36.570: DEBUG/MessageQueue(3198): M