Android cwac相机拍多张照片?

时间:2014-10-14 03:44:44

标签: android android-camera commonsware-cwac cwac-camera

标题可能不清楚,但是我使用CommonsWare的这个很棒的库(很高兴见到你在DroidCon btw)处理Android的碎片相机api的臭名昭着的问题。

我想要拍摄5张照片或相框......但不能同时拍摄。每帧应捕获相隔几毫秒的另一个镜头,或者可能是在成功捕获上一张照片之后。可以这样做吗?

我在演示中遵循独立实施,只需使用

拍摄照片
  mCapture.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            try {


                takePicture(true, false);


            }catch(Exception e){
                e.printStackTrace();
            }
        }
    });

将true传递给takePicture(),因为我需要生成的Bitmap。我也禁用了单拍模式,因为我想在上一张照片拍完后立即拍摄另一张照片,然后重新开始预览

  

默认情况下,拍照的结果是返回   CameraFragment预览模式,准备拍下一张照片。   相反,如果你只需要一张图片,或者你想发送一张图片   用户首先使用其他UI,不希望预览启动   马上再次覆盖你的CameraHost中的useSingleShotMode()   返回true。或者,在你的上面调用useSingleShotMode()   SimpleCameraHost.Builder,传入一个默认使用的布尔值。要么,   在PictureTransaction上调用useSingleShotMode()来控制它   个人照片。

我正在寻找像onPictureTaken()或CameraHost内部类似的回调,这样我可以在释放相机之前立即拍摄另一张照片,但我不会看到这样的事情。有没有人用这个库做过这样的事情?有抱负的CommonsWare能不能对此有所了解(如果你看到这个?)

谢谢!

1 个答案:

答案 0 :(得分:1)

读过引用的段落到下一段,开头是:

  

然后,您可能希望在CameraHost中使用自己的saveImage()实现来执行任何操作,而不是重新启动预览。例如,您可以启动另一个活动来对图像执行某些操作。

如果您想要的是什么,除了对收到的图片做些什么外,您还可以在takePicture() saveImage()再次致电CameraHost

然而:

  • 即使启用了大堆,您可能也没有足够的堆空间来执行您尝试的操作。您可能需要为图片明确选择较低分辨率的图像。

  • 这不完全在库的范围内。它可以工作,我没有工作的问题,但能够在M秒内拍摄N张图片不是图书馆的痒,我(非常非常慢)抓。特别是,我不认为我已经测试过已经关闭预览的图片,并且我的代码中可能存在一些问题。

  • 长期来看,您可能会更好地使用预览帧处理,而不是实际拍摄照片。