拍照时如何不停止表面视图

时间:2013-07-24 04:26:43

标签: android camera android-camera

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

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 {
            }*/

        }
    };

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

2 个答案:

答案 0 :(得分:1)

一些最新的手机,如nexus 4,samsung galaxy s5等,支持称为“zsl”(零快门延迟)的相机参数。

在常规图像捕捉序列中,相机HAL停止预览并拍照。但是设置此参数时,捕获图片时不会停止预览。并且图像将被捕获得相对更快。由于预览不会停止,您将看不到上述问题,也无需在图片回调中调用开始预览。

答案 1 :(得分:0)

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

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