我正在处理原始相机图像,但需要在捕获图像后重新开始预览。当我在takePicture之后调用startPreview()时,android挂起,因为相机直到使用。我一直等到原始图像写入磁盘后,但相机仍在使用中,因此启动预览仍会挂起系统。
camera.takePicture(null, null, null);
(test needed here){
camera.startPreview();
}
将开始预览放在rawcallback中会挂起android。
调用takePicture时,相机完成后会发生jpegCallback,因此可以安全地开始预览,但这也会创建一个.jpg。
问题是关注takePicture,有没有办法确定相机何时闲置? (除了jpegCallback?)。
我已经找到解决问题的方法,例如在计时器上启动预览,但仍然想知道是否有任何方法可以确定相机的实际状态以及测试何时保存以重新启动预览的方法
答案 0 :(得分:0)
调用takePicture() function后,您必须等到JPEG回调返回后才能再次使用相机。无法监控其状态。文档明确说明了以下内容:
调用此方法后,您不能调用startPreview()或take 另一张图片,直到JPEG回调返回。
如果你需要一些快速的方法来抓取帧(即图像)而不停止并重新启动相机预览,你可以实现PreviewCallback界面,它只是让你在不停止预览的情况下抓取预览帧。请记住,您需要将这些转换为YUV格式(使用Android的YUVImage class并不困难。