0

我正在使用原始相机图像,但需要在捕获图像后重新启动预览。当我在 takePicture 之后调用 startPreview() 时,android 挂起,因为相机一直在使用中。我一直等到原始图像写入磁盘后,但相机仍在使用中,所以开始预览仍然会挂起系统。

camera.takePicture(null, null, null);
(test needed here){
camera.startPreview();      
}

将开始预览放在 rawcallback 中会挂起 android。

调用 takePicture 时,jpegCallback 发生在相机完成后,因此可以安全地开始预览,但这也会创建一个 .jpg。

问题是跟着takePicture,有没有办法判断相机什么时候空闲?(除了 jpegCallback?)。

我找到了解决问题的方法,例如在计时器上启动预览,但仍然想知道是否有任何方法可以确定相机的实际状态以及测试何时保存以重新启动预览的方法。

4

1 回答 1

0

调用takePicture() 函数后,您必须等待 JPEG 回调返回,以便相机再次准备好使用。无法监控其状态。该文档明确指出以下内容:

调用此方法后,在 JPEG 回调返回之前,您不得调用 startPreview() 或拍摄另一张照片。

如果您需要一些快速获取帧(即图像)的方法,而无需停止和重新启动相机预览,您可以实现PreviewCallback接口,它只允许您在不停止预览的情况下抓取预览帧。请记住,您需要将这些从 YUV 格式转换(使用 Android 的YUVImage 类并不难。

于 2013-03-04T19:31:31.703 回答