7

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

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

新症状:这个缓冲区的大小是我的帧大小,460800。我在 onCameraFrame 记录了帧大小。每帧的大小为 460800。据我了解,takePicture 尝试使用预览缓冲区。而且它们的尺寸不同。

4

2 回答 2

1

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

于 2013-05-27T13:32:51.483 回答
1

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

camera.startPreview()

然而,在 Android 3.2.1 等更高版本的系统上,这不再是问题(但它可能是特定于供应商的)。

于 2013-05-21T11:49:33.773 回答