2

我想拍多张照片,我正在使用这些代码。但它会使屏幕在短时间内冻结(停止和开始预览后),让用户感到不舒服。我该如何解决这个问题。感谢您的关注。

PictureCallback jpegCallback = new PictureCallback() {
        public void onPictureTaken(byte[] data, Camera camera) {
            cpreview.mCamera.startPreview();
            FileOutputStream outStream = null;
            /*try {

                outStream = new FileOutputStream(String.format(
                        "/sdcard/camtest/%d.jpg", System.currentTimeMillis()));
                outStream.write(data);
                outStream.close();

            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
            }*/

        }
    };

如果没有办法,我正在考虑录制视频然后将其转换为图像(尽管它会浪费更多时间)。

4

2 回答 2

1

一些最新的手机,如 nexus 4、三星 Galaxy s5 等,支持名为“zsl”(零快门延迟)的相机参数。

在常规图像捕获序列中,相机 HAL 停止预览并拍照。但是设置了这个参数后,在抓图的过程中不会停止预览。并且图像将被相对更快地捕获。由于预览不会停止,您不会看到上述问题,也不必在图片回调中调用开始预览。

于 2014-12-31T11:11:42.670 回答
0

没有办法让它无缝(尽管在较新的手机上暂停越来越小)。相机在捕捉图像时太忙了,无法提供预览。

视频是一个不错的选择,但前提是您愿意牺牲大量图像质量。如果您担心浪费空间,您可以在提取图像后删除原始视频。

于 2013-08-05T18:12:23.230 回答