【问题标题】:Android camera control how long captured image stays in preview after shutterAndroid相机控制快门后捕获的图​​像在预览中停留多长时间
【发布时间】:2011-12-09 13:11:44
【问题描述】:

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

目前,一种解决方法是在 onShutter() 事件中调用 camera.stopPreview(),但这仍然有点奇怪,因为它没有显示您拍摄的照片,它显示的是在您拍摄后一瞬间预览看到的内容图片。在 Transformer 上,您甚至可以看到它“freeze-move-freeze”,因为它在拍照后冻结了一秒钟,然后再次开始移动,然后在我调用 stopPreview() 时进入 onShutter 并冻结。

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

【问题讨论】:

    标签: android android-camera


    【解决方案1】:

    在我的设备上,我必须手动重新启动预览,拍照后它不会自行启动。我使用像

    这样的图片回调
    camera.takePicture(null, null, takePictureCallback);
    

    回调是

    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 保存图像,PHOTO_PREVIEW_LENGTH 是以毫秒为单位的长度,用于显示捕获的图像多长时间。

    【讨论】:

    • 感谢您花时间回答。这似乎是一个不错的方法,但我正在从事的项目早已死去,即使我愿意,我也不确定我是否可以测试它。
    • 啊该死的,我没有注意到它的那个老问题:D 没关系然后
    猜你喜欢
    • 2011-03-23
    • 1970-01-01
    • 2015-06-30
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多