2013-05-18 86 views
0

以及我正在使用服务在上&关闪光灯的相机,它工作正常,但我的手机相机应用程序崩溃,我无法释放相机服务如何在服务中打开和关闭闪光灯相机

Camera camera = Camera.open(); 
final Parameters p = camera.getParameters();  
      if (isFlashOn) 
      { 
       Log.i("info", "torch is turned off!"); 

      Toast toast= Toast.makeText(getApplicationContext(), 
         "Torch is turned off!",Toast.LENGTH_SHORT); 
      toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 100); 
      toast.show(); 

      p.setFlashMode(Parameters.FLASH_MODE_OFF); 
      camera.setParameters(p);   

       //Set flag to false    
      isFlashOn = false; 
      release=true; 

      } 
      //If Flag is set to false 
      else 
      { 
       Log.i("info", "torch is turned on!"); 

      Toast toast= Toast.makeText(getApplicationContext(), 
         "Torch is turned on!",Toast.LENGTH_SHORT); 
       toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 100); 
       toast.show(); 

       p.setFlashMode(Parameters.FLASH_MODE_TORCH); 

      camera.setParameters(p); 

      isFlashOn = true; 
      release=false; 

      } 

     if (release == true) 
      { 
      camera.stopPreview(); 
      camera.release(); 
        } 

回答

1

您必须安全地打开相机,以便您必须在直接打开相机之前检查相机状态。

private boolean safeCameraOpen(int id) { 
    boolean qOpened = false; 

    try { 
     releaseCameraAndPreview(); 
     mCamera = Camera.open(id); 
     qOpened = (mCamera != null); 
    } catch (Exception e) { 
     Log.e(getString(R.string.app_name), "failed to open Camera"); 
     e.printStackTrace(); 
    } 

    return qOpened;  
} 

private void releaseCameraAndPreview() { 
    mPreview.setCamera(null); 
    if (mCamera != null) { 
     mCamera.release(); 
     mCamera = null; 
    } 
} 

For Further Details about Camera检查出来并根据您的需要进行调整。

Enjoy !!!

+1

谢谢兄弟,它的工作原理。 – Uday

+0

Enjoy.if是好的,那么不要忘记接受和upvote :) –

+0

好吧你不能投票,因为低信誉,但你可以接受它 –

相关问题