2

Android の Camera previewCallback について質問があります。私のアプリには、カメラを開いてそのパラメーターを構成するアクティビティと、プレビューを表示するために使用される SurfaceView のサブクラスの 2 つの主要部分があります。私は4.0.4でテストしています

アクティビティが Camera.PreviewCallback を実装している場合、次のようにします。

Public Class PreviewFrameActivity extends Activity implements Camera.PreviewCallback {<br />
     @Override
     public void onCreate(Bundle savedInstanceState) {
       // setup layout and create SurfaceView object before getting here
       Camera mCamera = Camera.open();
       mCamera.setPreviewCallback(this);
     } 

     public void onPreviewFrame(byte[] data, Camera camera) {
       Log.d(TAG, "Starting frame processing...");
     }
 }


previewCallback は、この方法で実際に呼び出されることはありません。ただし、SurfaceView に PreviewCallback を実装させ、それを surfaceCreated の一部としてカメラ オブジェクトに設定すると、突然コールバックが機能し始めます。これにより、ドキュメントでは setPreviewCallback をいつでも呼び出すことができると書かれていますが、実際にはそうではないと私は信じています。startPreview() と同じように、有効なプレビュー サーフェスを取得するまで setPreviewFormat を呼び出せないようです (これが、サーフェスの作成後にプレビューを開始するブロックにコードを移動したときに機能し始めた理由です)。誰かが私のためにこれを確認できますか?

4

0 に答える 0