0

camera2 API を使用してプレビュー画面のスナップショットを撮りたいです。私のコードでは、テクスチャビューを更新する surfacetexturelistner (プレビューがレンダリングされる場所) または CameraCaptureSession.CaptureCallback で、プレビューのセッションを更新する 2 つの場所があると思います。したがって、ビットマップのスナップショットが必要なので、それを FaceDetector( http://developer.android.com/reference/android/media/FaceDetector.html ) クラスにフィードできるようにします。もちろん、パフォーマンスを妨げないように別のスレッドを使用します。スナップショットはユーザーに気付かれません。したがって、これを行うための2つの領域があり、誰かがこれを行ったか、または提案があるかどうかを知りたいです:

          private TextureView.SurfaceTextureListener SurListener =
            new TextureView.SurfaceTextureListener() {

                    @Override
                    public void onSurfaceTextureUpdated(SurfaceTexture surface) {
                        drawView();
                        //I can maybe snapshot here?
                    }

                    @Override
                    public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width,
                            int height) {
                    }

                    @Override
                    public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
                        return false;
                    }

                    @Override
                    public void onSurfaceTextureAvailable(SurfaceTexture surface, int width,
                            int height) {
                        setupCamera();
                        StartUpCam();
                    }
                };

または私はここでそれを行うことができます:

        private CameraCaptureSession.CaptureCallback CScallback
        = new CameraCaptureSession.CaptureCallback() {

            @Override
            public void onCaptureStarted(CameraCaptureSession session,
                    CaptureRequest request, long timestamp, long frameNumber) {
                super.onCaptureStarted(session, request, timestamp, frameNumber);
                //take a snapshot here???
            }
        };

念のために言っておくと、camera2 API に付属している顔検出器は知っていますが、それは写真を撮った後にのみアクセスされるため、プレビュー時に実行したいので役に立ちません。

4

1 に答える 1

2

gameSurface.getBitmap() ここで、gameSurface は TextureView です。

于 2015-11-28T17:08:57.363 に答える