0

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

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

手机:三星 Galaxy S2 安卓 2.3.6

代码
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 方法中评论所有内容时,会返回相同的错误。此外,我重新启动了手机,尝试设置一些相机参数等 - 但没有任何帮助。我也找不到相机的这个特定错误代码。

提前致谢!

4

2 回答 2

0

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

于 2013-12-14T23:43:10.120 回答
0

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

甚至SurfaceView也必须具有最小尺寸。

于 2012-04-06T18:20:54.393 回答