2012-04-06 5 views
0

を呼び出すと、アンドロイド。hardware.Cameraで写真を撮りたいと思います。 コード(下記参照)は私のAVDでうまく動作しますが、Androidの携帯電話では動作しません。「エラー-1」が表示されます。Androidカメラ「エラー-1」が私のアクティビティでcamera.takePicture

AVD: 対象:アンドロイド2.3.3 SDカード:64メガバイト WVGA800

電話:アンドロイド2.3.6と サムスンギャラクシー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方法ですべてをコメントしたときに、同じエラーが返されます。 また、私は私の携帯電話を再起動し、いくつかのカメラパラメータなどを設定しようとしました - しかし、何も役立ちません。 カメラのこの特定のエラーコードも見つかりません。

ありがとうございます!

答えて

0

SurfaceViewが正しく割り当てられていないと動作しません。

Even SurfaceViewは最小サイズでなければなりません。

+0

写真を撮りたいときにSurfaceViewを追加する必要がありますか(何も表示せずに)保存するだけですか? – Flok

+0

はい、コードは非常に繊細です。あまり言い訳にならない。 –

+0

私はそれを見ます - ありがとう! – Flok

0

コードには重要な欠落部分があります。 takePicture()に電話する前にstartPreview()に電話する必要があります。他の重要なことは、撮った写真が少し遅れて、結果を得る前にJavaのGarbage Colletorがカメラ変数を収集できることです。したがって、ピクチャコールバックメソッドでカメラ変数を解放します。また、明示的にsetPreviewCallback(null)を定義する必要はありません。コードから削除することができます。 startPreview()の放出を2回撮影することを避けることが重要です。インターフェイス上の要素を無効にし、Callbackメソッドの後(および内部)で有効にします。

関連する問題