2012-12-18 3 views

답변

3

당신은 당신이 setParameters(Camera.Parameters params)를 사용하여 Camera 객체에 전달하는 매개 변수의 일환으로 원하는 플래시 모드를 설정할 수 있습니다. 매개 변수에 대한 FLASH_MODE_ON, FLASH_MODE_OFF 또는 FLASH_MODE_AUTO 중 하나를 제공하는 setFlashMode(String) 메서드를 참조하십시오. 당신이 카메라의 인스턴스가 후

Camera camera = Camera.open(); 
Camera.Parameters params = new Camera.Parameters(); 
params.setFlashMode(Camera.Parameters.FLASH_MODE_ON); 
// ... set other parameters 
camera.setParameters(params); 
+0

그러나 위의 2.2 또는 뭔가 같은 모든 버전에서이 메서드가 작동하지 않는다는 것을 확신하지만 –

+0

'setFlashMode (String)'은 API 레벨 5부터 사용되었으므로 실행중인 장치에서 지원되어야합니다. 안드로이드 1.6 이상 (기본적으로 모든 장치가 있음). 그러나 하드웨어 제조업체가 구현 한 드라이버 측면에서 한계가있을 수 있다고 생각합니다. –

1

이것은 (Camera.open()가 카메라 인스턴스를 반환합니다) 상대적으로 쉽다.

먼저 당신은 당신이 장치를 말하려고 단지의 경우, 사용중인 기기가 구현하고자하는 플래시 모드 수 있는지 확인해야

Camera.Parameters params = yourCameraInstance.getParameters(); 

다음에서 카메라 매개 변수를 얻을 필요 플래시를 켜면 플래시가 켜지지 않습니다. 이것은 충돌을 일으킬 것입니다.

List<String> flashModes = params.getSupportedFlashModes(); 

이것은 장치가 문자열 형식에서 수행 할 수있는 모든 플래시 모드 목록을 반환합니다. 예를 들어, 목록에 FLASH_MODE_AUTO, FLASH_MODE_ON, FLASH_MODE_OFF 등이 있어야합니다. 당신은 다른 카메라 기능을 확인할 수 있습니다, 마찬가지로

yourCameraInstance.setParameters(params); 

:

if (flashModes.contains(Camera.Parameters.FLASH_MODE_AUTO)) { 
     params.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO); 
    } 

마지막으로,과 같이 카메라 인스턴스에 새 PARAMS을 설정

그런 다음 같은 것을 할 같은 패션 :

List<String> focusModes = params.getSupportedFocusModes(); 
    if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) { 
     params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); 
    } 
    yourCameraInstance.setParameters(params); 

희망이 있으면 도움이됩니다!