2015-01-27 2 views
3

Android 스마트 폰 카메라 용 LED 플래시를 매우 빠르게 켜고 싶습니다. 하드웨어/OS 제한 사양을 아는 사람이 있는지 궁금합니다.Android 카메라 플래시가 얼마나 빨리 켜지거나 꺼질 수 있습니까?

삼성 전자의 s7580에서 지금까지 사용해온 플래시 라이트 소프트웨어는 켜고 끄려고 할 때 꽤 큰 대기 시간을 보였습니다. 원하는 애플리케이션은 빛을 열 번째로 유지해야합니다. 잠깐 ...

나는 잘못된 나무를 짖고 있습니까?

+0

큰 대기 시간이란 무엇입니까? 지금 어떻게 켜고 끕니까? 하드웨어 제조업체에 따라 다를 수 있습니다. 결국 플래시 전에 어딘가에서 콘덴서를 충전해야합니다. 어쨌든 내 추측은 앱이 가능한 빨리 배터리를 빠져 나오도록 설계되었다는 것입니다. ;) – Trilarion

+0

Google Play에서 플래시 라이트 토치 (Flash Light Torch)라는 플래시 라이트 앱을 사용하고있었습니다. –

+0

지연 시간은 최대 1 초입니다. 나는 @ kamituel의 응답 –

답변

1

Google Play에서 방금 LED Strobe app을 테스트했으며, 가장 빠른 설정으로 매우 빠르게 켜고 끌 수 있습니다. 나는 그것이 10 fps에 가깝다고 말하고 싶다. 일부 깜박임은 밝고 일부는 어둡지 만 (여전히 눈에)니다) 빠른주기의 전원 비효율과 관련 될 수 있습니다.

어쨌든 10fps를 보장 할 수 없다고 생각합니다. 휴대 전화 모델, LED 모듈, LED에 대한 전원 연결, 배터리 전원 수준에 따라 달라질 수 있습니다. 제 경우에는 Moto X 1 gen에서 테스트했습니다.

+1

에서 응용 프로그램을 확인하셔야합니다 이것은 대답이 아니므로, 코멘트해야합니다! – Sithys

+0

나는 LED Strobe 앱에 대해 몰랐다. 고마워! –

+0

글쎄,이 대답은 그것에 소프트웨어 (OS) 제한이 없다는 것을 보여줍니다, 나는 그것을 승인하고, 하드웨어 부분을위한 다른 스택 교환 사이트로 이동합니다. 감사 –

4

나는 똑같은 것을 궁금해했다. 나는 삼성 갤럭시 에이스에서 약 50 초간 켜기/끄기 사이클을 2.5 초에서 3 초까지 다양하게했다. GT-S7275Y 사용하지 않는 Camera 개체와 코드 I 다음에 붙여 넣습니다.

Camera cam; 
Camera.Parameters p; 


public void turnOnFlashLight() { 
    if (cam != null) { 
     p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); 
     cam.setParameters(p); 
    } 

} 

public void turnOffFlashLight() { 
    if (cam != null) { 
     p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); 
     cam.setParameters(p); 
    } 
} 

public void prepareCamera() { 
    if (cam == null) { 
     try { 
      cam = Camera.open(); 
      p = cam.getParameters(); 
      if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) { 
       p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); 
       cam.setParameters(p); 
       cam.startPreview(); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
      Toast.makeText(getBaseContext(), "Exception throws in turning on flashlight.", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

public void flashSpeedTest(View v) { 
    prepareCamera(); 
    long startTm = System.nanoTime(); 
    for (int x = 0; x < 100; ++x) { 
     if (x % 2 == 0) 
      turnOnFlashLight(); 
     else 
      turnOffFlashLight(); 
    } 
    long elapsed = System.nanoTime() - startTm; 
    Misc.showMessage(this, String.format("%.3f seconds", elapsed/1e9)); 
} 
관련 문제