预览回调问题[ANDROID]

时间:2015-02-11 13:29:35

标签: java android camera

我正在做一个使用相机的Android应用程序。 我正在使用facedetection侦听器并且运行正常,但是当我尝试添加预览回调来执行某些进程任务时,人脸检测会停止运行。

为什么?

这是我的代码:

@Override
    public void surfaceCreated(SurfaceHolder holder) {
        mCamera = StartCapture();
        mCamera.setPreviewCallback(framesCallback);
mCamera.setFaceDetectionListener(faceDetectionListener);

    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width,
            int height) {

        if (mCamera != null) {
            try {
                mCamera.setPreviewDisplay(holder);
                mCamera.startPreview();
                mCamera.startFaceDetection();

            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
        mCamera.stopFaceDetection();
        mCamera.stopPreview();
        mCamera.release();
        mCamera = null;

    }

这是我使用它们时产生的logcat:

02-11 14:35:14.376: E/mm-camera-img(197): FACEPROC_Detection returned error: -3
02-11 14:35:14.376: E/mm-camera-img(197): face_proc_thread_loop:466] frameproc exec error -1
02-11 14:35:14.510: E/mm-camera-img(197): FACEPROC_Detection returned error: -3
02-11 14:35:14.510: E/mm-camera-img(197): face_proc_thread_loop:466] frameproc exec error -1
02-11 14:35:14.643: E/mm-camera-img(197): FACEPROC_Detection returned error: -3
02-11 14:35:14.643: E/mm-camera-img(197): face_proc_thread_loop:466] frameproc exec error -1

1 个答案:

答案 0 :(得分:0)

回答已经太迟了,但我遇到了同样的情况。将setPreviewCallback()的位置移动到startFaceDetection()之后,它可以工作。