拍摄一张照片后,Android相机冻结

问题描述

| 我正在用相机做一个项目,在拍摄完一张照片后,相机冻结了,您必须完成该活动并再次调用它才能拍摄另一张照片,如何冻结照片仅1-2秒,然后进行表面观察再次拍照。与我使用媒体记录器的视频相同,按视频按钮停止视频保存,并且屏幕仍然有效,但是我不能再次拍摄视频我必须重新启动活动吗? 有人有解决办法吗?     

解决方法

在背景
AsyncTask
中进行任何图像处理。这将允许您的UI活动继续并拍摄另一张照片。 编辑:我无法删除一个可接受的答案,因此请在下面查看stoefin的答案。在拍下张照片之前叫
camera.startPreview()
对他有效。     ,我找到了解决方案:拍照后,预览显示将停止。要拍摄更多照片,请先再次致电ѭ1。     ,捕获图像后,您应该停止预览并重新开始。
mCamera.stopPreview();
mCamera.startPreview();
会很好的。     ,camera.startpreview();答案对我的情况不起作用,但是下面的代码对我来说解决了这个问题,希望对其他人也有所帮助。我使用了一个线程,在照片被500ms捕获后延迟了相机的关闭和打开。
 private void start_camera() {
     try {
         camera = Camera.open();
         // camera.lock();
     } catch (RuntimeException e) {
         Log.e(tag,\"init_camera: \" + e);
         return;
     }
     Camera.Parameters param = camera.getParameters();
     param = camera.getParameters();
     Camera.Size size = param.getSupportedPreviewSizes().get(0);
     param.setPreviewSize(size.width,size.height);
     camera.setParameters(param);
     try {
         camera.setPreviewDisplay(surfaceHolder);
         camera.startPreview();
         previewRunning = true;
     } catch (Exception e) {
         Log.e(tag,\"init_camera: \" + e);
         return;
     }}
 private void captureImage() {
     camera.takePicture(shutterCallback,null,jpegCallback);
     Thread restart_preview=new Thread(){public void run(){
         try {
             Thread.sleep(500);
         } catch (InterruptedException e) {
             e.printStackTrace();
         }

         camera.release();
         camera=null;
         start_camera();
     }};
     restart_preview.start();}
    ,您可以编写自己的直接使用Camera API来完成您描述的功能的Activity,而不必使用电话上现有的Camera应用程序定义的活动。 Camera类记录在这里:http://developer.android.com/reference/android/hardware/Camera.html     ,相机冻结,因为您没有重新启动相机的预览,因此请致电ѭ5重启相机     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...