Android相机闪光灯打开/关闭的速度有多快?

时间:2015-01-27 08:25:04

标签: android android-camera

我想开启/关闭Android智能手机的相机的LED闪光灯非常快,我想知道是否有人知道硬件/操作系统限制规格?

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

我是在咆哮错误的树吗?

2 个答案:

答案 0 :(得分:4)

我想知道同样的事情,在三星Galaxy Ace 3 GT-S7275Y的50次开/关循环中我得到的时间在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));
}

答案 1 :(得分:1)

我刚刚从Google Play中测试了LED Strobe app,并且在最快的设置下,它给了我一个非常快速的开/关周期。我说它接近10 fps。有些闪光灯很亮,有些闪光灯很暗(但仍然可见) - 这可能与这种快速循环的功率效率低下有关。

无论如何,我不认为你可以保证10 fps,它不依赖于以下任何一种:手机型号,LED模块,LED的电源连接,电池电量。就我而言,我在Moto X 1st gen上进行了测试。