Android Camera takePicture正在使用Previews小缓冲区

时间:2013-05-21 08:53:54

标签: android opencv java-native-interface android-camera

我正在使用OPENCV开发一个项目。我在onCameraFrame上有一些过程。虽然它显示预览,但用户可以拍照。但在某些设备中,我在调用takePicture(...)方法后出错。我该怎么办?

E/Camera-JNI(11783): Manually set buffer was too small! Expected 539380 bytes, but got 460800!

新症状:此缓冲区的大小是我的帧大小,460800。我在onCameraFrame上记录了帧大小。每帧的大小都是460800.据我了解,takePicture尝试使用预览缓冲区。他们的尺寸不同。

2 个答案:

答案 0 :(得分:1)

我解决了这个问题。  似乎在Android 2.2.1上你必须在调用之前设置相机参数

camera.startPreview()

然而,在Android 3.2.1等后续系统中,这不再是一个问题(但它可能是供应商特定的)。

答案 1 :(得分:1)

我解决了我的问题。我将缓冲区大小设置为图片大小。但是预览开始出现荒谬的行为,比如在某些设备上没有在拍摄后继续预览,...因此,当我按下重拍或后退按钮时,我关闭并重新开始预览。