Кордова: как убить камеру, созданную SurfaceView и CameraSource

Я открываю камеру, используя SurfaceView и CameraView, как показано ниже

surfaceView = new SurfaceView(context);
        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT,
                Gravity.CENTER);

        cordova.getActivity().addContentView(surfaceView, params);

cameraSource = new CameraSource.Builder(context, textRecognizer)
                    .setFacing(CameraSource.CAMERA_FACING_BACK)
                    .setRequestedPreviewSize(1280, 1024)
                    .setRequestedFps(2.0f)
                    .setAutoFocusEnabled(true)
                    .build();

            surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
                @Override
                public void surfaceCreated(SurfaceHolder surfaceHolder) {

                    try {
                        cameraSource.start(surfaceView.getHolder());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                }

                @Override
                public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {

                }

                @Override
                public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
                    cameraSource.stop();
                }
            });

После этого я пытаюсь закрыть камеру, но не могу закрыть камеру. Кто-нибудь знает, как это сделать?

Что я пробовал (которые не работают)

1. cordova.getActivity().finish();
2. cameraSource.stop();
3. cordova.getActivity().addContentView(null, null);
4. ((ViewGroup) surfaceView.getParent()).removeView(surfaceView);

0 ответов

Другие вопросы по тегам