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));
}
我想快速打开 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));
}