2013-06-03 2 views
0

카메라의 API와 플래시 모드를 토치로 사용하고 있지만 한 장의 사진을 찍은 후에 플래시가 꺼졌습니다. 다시 플래시를 켤 수 있습니까?? Android 2.3을 사용하고 있습니다. 어떻게 할 수 있습니까? 나는 횃불토치가 작동하지 않는 Android 플래시 모드

 public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { // <15> 
    camera = Camera.open(); 
    params = camera.getParameters(); 
    List<Size> sizes = params.getSupportedPictureSizes(); 
    Camera.Size size = sizes.get(0); 
    params.setFocusMode(Camera.Parameters.FOCUS_MODE_MACRO); 
    params.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO); 
     params.setSceneMode(Camera.Parameters.SCENE_MODE_LANDSCAPE); 
     params.setFlashMode("torch"); 
    params.setJpegThumbnailQuality(100); 
    params.setExposureCompensation(0); 
    params.setJpegQuality(100); 
// params.setPreviewSize(PreviewSizeWidth,PreviewSizeHeight); 
    //now that you have the list of supported sizes, pick one and set it back to the parameters... 
    //int w=0,h=0; 
    for(int i=0;i<sizes.size();i++) 
    { 
     if(sizes.get(i).width > size.width) 
      size = sizes.get(i); 
    } 
    params.setPictureSize(size.width, size.height); 
    Toast.makeText(getContext(), size.width+"and"+size.height,Toast.LENGTH_SHORT).show(); 

    camera.setParameters(params); 

    if (this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) 
    { 
    params.set("orientation", "portrait"); 
    camera.setDisplayOrientation(90); 
    } 
    camera.startPreview(); 
    try 
    { 
    camera.setPreviewDisplay(holder); 
    } 
    catch (IOException exception) 
    { 
    camera.release(); 
    camera = null; 
    } 

    } 

}

답변

0

확인이

개인 카메라 카메라로 플래시 모드를 사용;

 if (camera == null) { 

     } else { 
      // Set the torch flash mode 
      Parameters param = camera.getParameters(); 
      param.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); 
      try { 
       camera.setParameters(param); 
       camera.startPreview(); 

      } catch (Exception e) { 

      } 
     } 
+0

하지 작업 :( – devian

+0

있는 장치가 작업중인, 내가 삼성 넥서스 3에 문제가 있었다, 그러나 LG 넥서스 4에서 잘 작동 – abi

0

사진을 찍은 후 어떻게해야합니까? 다른 액티비티/조각으로 이동 한 다음 사진 조각을 가져 가야합니까? 현재 액티비티/프래그먼트를 떠나지 않고 사진을 저장하면됩니까?

활동/조각을 남기지 않으면 마지막 Camera.PictureCallback 끝에 토치를 다시 시작하는 것이 좋습니다. 미리보기를 다시 시작해야하므로 사진을 찍은 후에 카메라 미리보기가 중지됩니다. 아마도 뭔가 같은 :.

mPictureCallback = new Camera.PictureCallback(){ 
    @Override 
    public void onPictureTaken(byte[] data, Camera camera) { 

     // ... process your byte data ... 

     if(mCamera != null){ 

      Camera.Parameters params = mCamera.getParameters(); 
      params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); 
      mCamera.setParameters(params); 

      try{ 
       mCamera.startPreview(); 
      }catch(Exception e){ 
       e.printStackTrace(); 
      } 
     } 
    } 
}; 
관련 문제