我正在处理原始相机图像,但需要在捕获图像后重新开始预览。当我在takePicture之后调用startPreview()时,android会挂起,因为相机会一直使用。我一直等到原始图像写入磁盘后,但相机仍在使用中,所以开始预览仍会挂起系统。任何方式来确定相机是否空闲?
camera.takePicture(null, null, null);
(test needed here){
camera.startPreview();
}
将开始预览放在rawcallback挂起android。
当调用takePicture时,jpegCallback在相机完成后发生,因此可以安全地启动预览,但是这也会创建一个.jpg。
问题出在takePicture之后,有什么方法可以确定相机何时闲置? (除了jpegCallback?)。
我已经找到了解决这个问题的方法,比如在一个定时器上启动预览,但是仍然想知道是否有任何方法来确定摄像机的实际状态,以及如何测试它何时保存以重新启动预习。
知道你的具体目标在这里将有助于实际上帮助你实现你的目标,而不是只回答你陈述的问题确定摄像机的'状态'是否可以被知道 - 直到JPEG回调才会被占用 – 2013-03-04 19:37:16
该应用程序是一个基于点的条形码应用程序,其中点的大小非常小,出于我的目的,最有效的图像格式是直接从相机芯片原始文件。另一个考虑是采取全分辨率.jpg和调用BitmapFactory.decodeByteArray得到一个位图导致内存问题。该API似乎表明,jpegcallback是可选的,所以看起来有些方法不需要它。然后,api再次表示rawimagecallback会给出一个原始图像,非常适合文档。 – 2013-03-04 22:53:29
哦,我明白了..所以你想要全分辨率的原始回调,由于小点的小尺寸?您是否试图立即重新开始预览,因为您想要某种无缝图像捕捉,而不会中断用户体验或暂停相机预览? – 2013-03-05 00:44:06