我认为问题的一个重要部分是:当前手机的连拍模式是如何工作的?一些博客指出,谷歌已经确认他们将添加一个连拍模式 API。
我猜测目前实现的方式是将曝光时间设为最小值,然后在循环中调用 takePicture 或使用 Camera.PreviewCallback
我曾经尝试过使用后者进行一些计算机视觉项目,并碰巧了解到使用此 API 编写连拍相机的方法。你可以将从 Camera.PreviewCallback 收到的缓冲区存储在内存中,并在后台线程上处理它们。
如果我没记错的话,分辨率比实际相机分辨率要低,所以这可能并不理想。
除了由制造商提供的特定于设备的API之外,唯一一种可以在多个设备上使用的“连拍模式”将是使用预览帧作为图像。 takePicture()
不能保证您何时能够再次调用 takePicture()
。
takePicture()
,然后你又回到了一个问题,你不知道什么时候再次调用它才是安全的。 - CommonsWaretakePicture()
时,最好的方法是什么?目前我正在将图像保存到内部存储(这里没有线程),并在 pictureCallback
中再次调用 takePicture()
。在 Nexus 5 上,这样做目前可以每秒拍摄2张照片。这是最好的方式吗? - COD3BOYtakePicture()
和onPictureTaken()
之间的某些时间应该用于处理,这可能不会干扰另一个takePicture()
调用。您可以尝试在onPictureTaken()
被调用之前更频繁地调用takePicture()
,但正如俗话所说,您的效果可能会有所不同。 :-) - CommonsWare