2012-04-06 27 views
0

在我的活動中,我想用android.hardware.Camera拍照。 代碼(見下文)在我的AVD中可以正常工作,但它在我的Android手機上不起作用 - 我得到的只是「錯誤-1」。Android相機「Error -1」wenn calling camera.take圖片

AVD: 目標:安卓2.3.3 SD卡:64 MB WVGA800

電話: 三星Galaxy S2採用Android 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方法的一切,返回相同的錯誤。 此外,我已重新啓動手機,嘗試設置一些相機參數等 - 但沒有任何幫助。 我找不到相機的這個特定的錯誤代碼。

在此先感謝!

回答

0

沒有正確分配SurfaceView它不會工作。

即使是SurfaceView必須具有最小尺寸。

+0

當我想拍照並只保存它(不顯示內容)時,是否還必須添加SurfaceView? – Flok 2012-04-06 18:30:53

+0

是的,代碼非常微妙。不是很抱歉。 – 2012-04-06 18:33:17

+0

我會研究它 - 謝謝! – Flok 2012-04-06 18:38:47

0

您的代碼有一個重要的缺失部分。您需要致電startPreview(),然後致電takePicture()。其他重要的是,拍攝的照片可以延遲一點,Java垃圾收集器可以收集你的相機變量,然後你有結果。因此,在Picture Callback方法中釋放相機變量。您也不需要明確定義setPreviewCallback(null),您可以將其從代碼中刪除。 在拍攝照片之前,避免兩次拍攝startPreview()是很重要的。禁用界面上的元素,並在回調方法之後(和內部)啓用。