2017-07-03 4 views
1

私はCamera2 APIを使用しており、チュートリアルに従っています。私はTextureViewを設定しており、SurfaceTextureListenerがそのTextureViewにあります。リスナーが呼び出されると、CameraManagerを使用して、使用するカメラIDを取得し、提供された幅と高さを使用してプレビューサイズを設定します。 CameraManagerを使用して、カメラIDとカメラデバイスステートコールバックを指定してカメラを開きます。 onOpenedオーバーライドメソッドでは、私はstartPreview()と呼ばれるメソッドを呼び出す:Androidでのキャプチャリクエストとキャプチャのセッション

private void startPreview() { 
    SurfaceTexture surfaceTexture = mTextureView.getSurfaceTexture(); 
    surfaceTexture.setDefaultBufferSize(mPreviewSize.getWidth(), mPreviewSize.getHeight()); 
    Surface previewSurface = new Surface(surfaceTexture); 

    try { 
     mCaptureRequestBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); 
     mCaptureRequestBuilder.addTarget(previewSurface); 

     mCameraDevice.createCaptureSession(Arrays.asList(previewSurface, mImageReader.getSurface()), 
       new CameraCaptureSession.StateCallback() { 
        @Override 
        public void onConfigured(CameraCaptureSession session) { 
         Log.d(TAG, "onConfigured: startPreview"); 
         mPreviewCaptureSession = session; 
         try { 
          mPreviewCaptureSession.setRepeatingRequest(mCaptureRequestBuilder.build(), 
            null, mBackgroundHandler); 
         } catch (CameraAccessException e) { 
          e.printStackTrace(); 
         } 
        } 

        @Override 
        public void onConfigureFailed(CameraCaptureSession session) { 
         Log.d(TAG, "onConfigureFailed: startPreview"); 

        } 
       }, null); 
    } catch (CameraAccessException e) { 
     e.printStackTrace(); 
    } 
} 

キャプチャ要求は何をしてセッションをキャプチャ? Androidのdocumentation状態はcreateCaptureRequest:

が新しいキャプチャのCaptureRequest.Builderオクラホマので、CaptureRequest.Builder何

で要求を作成しますか?ドキュメント:

キャプチャ要求のビルダー。

どちらの定義も意味を持たずに他を参照します。

+0

ビルドアップするソースコードを教えてください。すべてのリンク –

答えて

1

CaptureRequestは、カメラデバイスのパラメータ(例:博覧会、解像度)を定義します。 Camera2 APIには、特定のカメラと目的に合わせて最適なCaptureRequestを簡単に作成するためのテンプレートが用意されています。カメラ装置にCaptureRequestを通過させるように

、我々は、要求(例えば、ライブ・プレビューを表示する)(例えば、写真を撮る)または反復単一のコンテキストを提供CameraCaptureSessionを、使用。

セッションの作成は、カメラデバイスの内部パイプラインを設定し、画像を目的のターゲットに送信するためにメモリバッファを割り当てる必要があるため、高価な操作で、数百ミリ秒かかることがあります。

関連する問題