0

私のアクティビティでは、android.hardware.Cameraで写真を撮りたいです。コード(以下を参照)はAVDで正常に機能しますが、Androidフォンでは機能しません。取得するのは「エラー-1」だけです。

AVD:ターゲット:Android 2.3.3 SDカード:64 MB WVGA800

電話:Android2.3.6を搭載したSamsungGalaxy 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メソッドですべてをコメントすると、同じエラーが返されます。また、電話を再起動し、いくつかのカメラパラメータなどを設定しようとしましたが、何も役に立ちません。カメラのこの特定のエラーコードも見つかりません。

前もって感謝します!

4

2 に答える 2

0

正しく割り当てられたSurfaceViewがないと、機能しません。

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

于 2012-04-06T18:20:54.393 に答える
0

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

于 2013-12-14T23:43:10.120 に答える