Android相机控制拍摄的图像在快门后保留预览的时间

时间:2011-12-09 13:11:44

标签: android android-camera

我正在使用camera.takePicture()在Android(2.3及更高版本)中拍照。它工作得很好,但我在不同的设备上得到奇怪的行为。在我的Nexus One上,我拍摄的图像在恢复到预览之前会保持冻结几秒钟。在我的Transformer上,它几乎立即恢复到预览状态。

目前,解决方法是在camera.stopPreview()活动中致电onShutter(),但这仍然有点奇怪,因为它没有显示您拍摄的照片,它显示了你拍完照片后预览看到的瞬间。在Transformer上,你甚至可以看到它"冻结 - 移动 - 冻结"因为它在拍摄照片后一瞬间冻结,然后再次开始移动,然后在调用stopPreview()时进入onShutter并冻结。

有没有人知道某个地方的某个设置,或者我可以调用的一些代码,它会告诉相机在重新启动预览之前保留该图像多长时间?或者更好的是,它根本不会自动释放预览,并等到我调用startPreview?

1 个答案:

答案 0 :(得分:1)

on my devices I have to restart the preview manually, it doesn't start up itself after taking a picture. I use a picture callback like

camera.takePicture(null, null, takePictureCallback);

and the callback is

private Camera.PictureCallback takePictureCallback = new Camera.PictureCallback() {
    @Override
    public void onPictureTaken(byte[] data, Camera cam) {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                if (camera != null) {
                    camera.startPreview();
                }

                canTakePicture = true;
            }
        }, PHOTO_PREVIEW_LENGTH);

        new PhotoProcessor(activity, targetUri).execute(data);
    }
};

PhotoProcessor saves the image, PHOTO_PREVIEW_LENGTH is the length in ms for how long is the captured image shown.