【问题标题】:Android camera freezes after taking one photo拍完一张照片后,Android 相机冻结
【发布时间】:2011-05-26 13:38:35
【问题描述】:

我正在用相机做一个项目,在拍摄一张照片后相机冻结,你必须完成活动并再次回忆它以拍摄另一张照片,我怎样才能让照片冻结 1-2 秒然后表面视图再次拥有相机。相同的视频我正在使用媒体记录器,拍摄视频按下停止视频保存并且屏幕仍然存在但我不能再次拍摄视频我必须重新开始活动?

有人有办法吗?

【问题讨论】:

  • @subspider 你在用galaxy s 来检查相机功能吗?
  • 这里有同样的问题。 @dsc 是的,我正在使用星系 s

标签: android camera photo


【解决方案1】:

我找到了解决方案:拍照后,预览显示将停止。要拍更多照片,请先再次致电camera.startPreview()

【讨论】:

【解决方案2】:

捕获图像后,您应该停止预览并重新开始。

mCamera.stopPreview();
mCamera.startPreview();

它会工作得很好。

【讨论】:

【解决方案3】:

在后台AsyncTask 中进行任何图像处理。这将允许您的 UI Activity 继续并拍摄另一张照片。

编辑:我无法删除已接受的答案,因此请参阅下面的 stoefin 答案。在为他拍摄下一张照片之前致电camera.startPreview()

【讨论】:

  • 这不是相机冻结的原因——stoefln 的回答是正确的;预览需要重新启动。
【解决方案4】:

camera.startpreview();答案对我的情况不起作用,但下面的代码为我解决了这个问题,希望对其他人也有帮助。我使用线程在照片被捕获 500 毫秒后延迟关闭和打开相机

 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();}

【讨论】:

    【解决方案5】:

    您可以编写自己的 Activity,直接使用 Camera API 来完成您描述的功能,而不是使用手机上现有相机应用定义的 Activity。相机类记录在这里:http://developer.android.com/reference/android/hardware/Camera.html

    【讨论】:

      【解决方案6】:

      相机卡死,因为你没有重启相机预览,所以调用camera.startpreview()重启

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多