2014-07-11 21 views
-5

全部問候,條件符合時捕獲圖像

我正在開發一個應用程序,並且我需要在滿足某些條件時捕獲圖像。到目前爲止,我有一個SurfaceView預覽後置攝像頭,我的所有條件都完成了。我想在滿足一些條件時讓相機拍照。用戶使用該應用程序時會拍攝多張照片。所以預覽會持續到所有條件都滿足爲止。有關如何做到這一點的任何建議?謝謝!

解決方案: 我找到了一些這樣的代碼,並對其進行了處理。

Camera.ShutterCallback myShutterCallback = new Camera.ShutterCallback() { 
    public void onShutter() { 
     // TODO bl 
    } 
    }; 

    PictureCallback myPictureCallback_RAW = new PictureCallback() { 

    public void onPictureTaken(byte[] arg0, Camera arg1) { 
     // TODO Auto-generated method stub 

    } 
    }; 
    PictureCallback myPictureCallback_JPG = new PictureCallback(){ 

    @Override 
    public void onPictureTaken(byte[] data, Camera camera) { 
      File imagesFolder = new File(Environment.getExternalStorageDirectory(), "/ImagesFromCamera"); 
      imagesFolder.mkdirs(); 
      //Unix time stamp for unique file naming. 
      long unixTime = System.currentTimeMillis()/1000L; 
      String fileName = "image"+ unixTime +".jpg"; 
      File output = new File(imagesFolder, fileName); 
      try { 
       FileOutputStream fos = new FileOutputStream(output); 
       fos.write(data); 
       fos.close(); 
      } catch (FileNotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      // Notify the user when the image is taken. 
       Toast.makeText(CustomCameraActivity.this, 
         "Image saved.", 
         Toast.LENGTH_SHORT).show(); 
      //Continue the Preview as it will stop once an image is taken. 
      camera.startPreview(); 
      } 
    }; 

      //Will call the camera to take a photo. 
     camera.takePicture(myShutterCallback, myPictureCallback_RAW, myPictureCallback_JPG); 
+0

這將有助於看到一些代碼,並至少了解你的條件。 – zgc7009

回答

0

此時您需要在條件滿足時在相機上撥打takePicture()。然後startPreview()onPictureTaken()回調的第一行中,您必須提供這些回調才能讓攝像機繼續。

當所有條件都滿足時,還請確保在使用相機的活動的onPause()內離開相機之前release()。因爲這可能會導致您的應用程序或其他程序的其他負載的問題。

+0

謝謝你的幫助,即使我的問題不是很清楚。它實際上把我引向了正確的方向。我已經發布了上面尋找幫助的代碼。 – ahmadux