因此,我知道相机的默认行为是在拍摄照片时暂停。我试图覆盖此行为,并在后台拍摄多张照片时继续运行相机预览。

反正有做到这一点吗?

我还要补充一点,我使用的是相机预览,而不是相机意图

最佳答案

我的应用程序实际上使用OCR,我需要拍摄几张照片/帧并传递到ocr,而相机的预览不会停止。

我想也许我在最初的问题中会更加清楚。但是出于对任何可能遇到类似问题的人的兴趣,我通过使用setPreviewCallback方法每2秒从相机获取帧来解决此问题,该方法返回一个字节数组,然后可以将其转换为位图。

mCamera.setPreviewCallback(new PreviewCallback() {

            public void onPreviewFrame(byte[] _data, Camera _camera) {

                    int width = parameters.getPreviewSize().width;
                    int height = parameters.getPreviewSize().height;

                    ByteArrayOutputStream outstr = new ByteArrayOutputStream();
                    Rect rect = new Rect(0, 0, width, height);
                    YuvImage yuvimage = new YuvImage(_data,
                            ImageFormat.NV21, width, height, null);

                    yuvimage.compressToJpeg(rect, 100, outstr);
                    Bitmap bmp = BitmapFactory.decodeByteArray(
                            outstr.toByteArray(), 0, outstr.size());

                }

        });

10-08 03:05