我想开启/关闭Android智能手机的相机的LED闪光灯非常快,我想知道是否有人知道硬件/操作系统限制规格?
到目前为止我在三星GT s7580上使用的闪光灯软件在我试图打开和关闭时似乎有相当大的延迟,而我想要制作的应用程序需要保持打开灯的十分之一一秒......
我是在咆哮错误的树吗?
答案 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上进行了测试。