Cámara Android2 getPreviewFrame

Estoy tratando de obtener el marco de la cámara en modo de vista previa. Estoy ejecutando el proyecto de muestra de githubhttps://github.com/googlesamples/android-Camera2Basic

El problema que tengo es obtener el marco en modo de vista previa.

Aquí está el código:

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

    private void process(CaptureResult result) {
        switch (mState) {
            case STATE_PREVIEW: {

                //HERE, HOW CAN I RETRIEVE THE CURRENT FRAME?

                break;
            }
            case STATE_WAITING_LOCK: {
               ...
                break;
            }
            case STATE_WAITING_PRECAPTURE: {
             ...
                break;
            }
            case STATE_WAITING_NON_PRECAPTURE: {
             ...
                break;
            }
        }
    }

Otra cosa que intenté obtener el marco es configurar mImageReader.setOnImageAvailableListener. Esperaba poder obtener el marco en la devolución de llamada onImageAvailable, pero onImageAvailable nunca se llama. onPreviewFrame es mi propio método, necesito pasarle el marco actual.

  mImageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(), ImageFormat.JPEG, /*maxImages*/2);
  mImageReader.setOnImageAvailableListener(mOnImageAvailableListener, mBackgroundHandler);

  private final ImageReader.OnImageAvailableListener mOnImageAvailableListener  = new ImageReader.OnImageAvailableListener() {

    @Override
    public void onImageAvailable(ImageReader reader) {
        mTextureView.onPreviewFrame(reader.acquireNextImage().getPlanes([0].getBuffer().array());
    }

};

¿Que estoy haciendo mal? Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta