Android 相机闪光灯可以转多快 on/off?

How fast can an Android camera flash turn on/off?

我想快速打开 Android 智能手机相机的 LED 闪光灯 on/off,我想知道是否有人知道 hardware/OS 限制规格?

我目前在我的 Samsung GT s7580 上使用的闪光灯软件在我尝试打开和关闭时似乎有相当大的延迟,而我想要制作的应用程序需要让灯保持打开一段时间十分之一秒...

我是不是找错树了?

我刚刚测试了 Google 游戏中的 LED Strobe app,在其最快设置下,它给了我一个非常快速的 on/off 循环。我会说它接近 10 fps。有些闪光灯很亮,有些则较暗(但仍然可见)- 这可能与如此快的周期的电源效率低下有关。

无论如何,我认为您不能保证 10 fps,它取决于以下任何一项:phone 型号、LED 模块、LED 的电源连接、电池电量。就我而言,我在第一代 Moto X 上对其进行了测试。

我也在想同样的事情,我在 Samsung Galaxy Ace 3 GT-S7275Y 中得到了 50 on/off 周期大约 2.5 到 3 秒的时间 我使用了已弃用的 Camera 对象,我使用的代码粘贴在下面:

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));
}