拍照而不停止预览android

时间:2014-03-25 10:23:51

标签: android android-camera

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

无论如何要做到这一点?

我还补充说我正在使用相机预览,而不是相机意图

2 个答案:

答案 0 :(得分:2)

我的应用程序实际上使用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());

                }

        });

答案 1 :(得分:0)

我假设您要实现全景应用。 1.如果你想实现像三星相机这样的应用程序,你必须修改原生相机代码。但是,它不是开源的。 2.如果要在Java中实现它,可以参考Android的Panorama source code