【问题标题】:How fast can an Android camera flash turn on/off?Android 相机闪光灯的开/关速度有多快?
【发布时间】:2016-02-17 10:38:52
【问题描述】:

我想快速打开/关闭 Android 智能手机摄像头的 LED 闪光灯,我想知道是否有人知道硬件/操作系统限制规范?

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

我是不是找错树了?

【问题讨论】:

  • 大延迟是什么意思?你现在如何打开/关闭它?这可能取决于硬件的制造商。毕竟对于闪光灯,您必须在某个地方之前为冷凝器充电。无论如何,我的猜测是您的应用程序旨在尽可能快地耗尽电池。 ;)
  • 我正在使用来自 Google Play 的名为“Flash Light Torch”的手电筒应用。
  • 延迟达到 1 秒。我必须从@kamituel 的回复中检查应用程序

标签: android android-camera


【解决方案1】:

我想知道同样的事情,我在三星 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));
}

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 这不是答案,应该是评论!
    • 嗯,这个答案表明它没有软件 (OS) 限制,我会简单地批准它,然后转到另一个 stackexchange 站点来获取硬件部分。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2011-08-18
    • 1970-01-01
    • 2011-04-15
    • 2011-03-06
    • 2011-05-16
    相关资源
    最近更新 更多