【问题标题】:Android Camera "Error -1" wenn calling camera.takePictureAndroid Camera "Error -1" wenn 调用 camera.takePicture
【发布时间】:2012-04-06 17:39:03
【问题描述】:

在我的活动中,我想用 android.hardware.Camera 拍照。 该代码(见下文)在我的 AVD 中运行良好,但在我的 Android 手机上无法运行 - 我得到的只是“错误 -1”。

AVD: 目标:Android 2.3.3 SD 卡:64 MB WVGA800

电话: 搭载 Android 2.3.6 的三星 Galaxy S2

代码
android.hardware.Camera camera = Camera.open();
camera.takePicture(null, null, mPictureCallback);
camera.stopPreview();
camera.setPreviewCallback(null);
camera.release();
camera = null;

清单:
uses-feature android:name="android.hardware.camera"
uses-permission android:name="android.permission.CAMERA"

我认为 PictureCallback 并不重要 - 当我在 onPictureTaken 方法中注释所有内容时,会返回相同的错误。 此外,我重新启动了手机,尝试设置一些相机参数等 - 但没有任何帮助。 我也找不到相机的这个特定错误代码。

提前致谢!

【问题讨论】:

    标签: android camera android-camera


    【解决方案1】:

    如果没有正确分配 SurfaceView,它将无法工作。

    即使是 SurfaceView 也必须有最小尺寸。

    【讨论】:

    • 当我想拍照并且只保存它(不显示任何东西)时,我是否也必须添加一个SurfaceView?
    • 可以,而且代码很细腻。不太会原谅。
    【解决方案2】:

    您的代码有一个重要的缺失部分。您需要先致电startPreview(),然后再致电takePicture()。另一个重要的事情是拍摄的照片可能会延迟一点,java Garbage Collector 可以在你得到结果之前收集你的相机变量。所以释放图片回调方法上的相机变量。你也不需要明确定义setPreviewCallback(null),你可以从你的代码中删除它。 重要的是要避免在拍摄照片之前两次执行startPreview()。禁用界面上的元素并在回调方法之后(和内部)启用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      • 2011-11-29
      相关资源
      最近更新 更多