【问题标题】:Android Camera takePicture is using Previews small bufferAndroid Camera takePicture 正在使用 Previews 小缓冲区
【发布时间】:2013-05-15 23:23:27
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    camera.startPreview()
    

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

    【讨论】:

    • 我已经设置了相机参数.. :(如果我将图片帧大小设置为一半,它可以工作。但我的方法不对。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多