最終更新:2017-04-04 (火) 19:05:08 (2551d)
Android/カメラ/処理の流れ
プレビュー周り
- CaptureRequest.Builder pb = CameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW)
- TextureView tv;//ビュー上に用意
- SurfaceTexture t= tv.getSurfaceTexture();
- Surface s = new Surface(t);
- pb.addTarget(s);
- CameraCaptureSession.setRepeatingRequest
流れ
カメラマネージャの取得
Android/カメラ/処理の流れ/カメラ特性の取得
Android/カメラ/処理の流れ/カメラオープン
プレビューセッションの構成
- SurfaceTexture texture = TextureView.getSurfaceTexture();
- Surface surface = new Surface(texture);
- CaptureRequest.Builder = CameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW)
- CaptureRequest.Builder.addTarget(surface) //TextureViewからのSurface
- CameraDevice.createCaptureSession(List<Surface>(surface, ImageReader.getSurface(),CameraCaptureSession.StateCallback)) - TextureViewとImageReaderのSurfaceをoutputとして指定
プレビュー開始 (StateCallback.onConfigured内)
- CaptureRequest = CaptureRequest.Builder.build()
- CameraCaptureSession.setRepeatingRequest(CaptureRequest, CameraCaptureSession.CaptureCallback)
- CaptureCallback.onCaptureCompleted
シャッターボタン
- onClick
- CaptureRequest.Builder = CameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE)
- CaptureRequest.Builder.addTarget(ImageReader.getSurface()); // ImageReaderのSurface
- lockFocus?
- CaptureRequest.Builder.set?(CaptureRequest.CONTROL_AF_TRIGGER?, CameraMetadata.CONTROL_AF_TRIGGER_START);
- ImageReader.setOnImageAvailableListener?(OnImageAvailableListener)