我想非常快地打开/关闭Android智能手机的摄像头的LED闪光灯,我想知道是否有人知道硬件/操作系统的限制规格?
到目前为止,我在三星GT s7580上使用的闪光灯软件似乎有相当大的延迟,当我试图打开和关闭时,我想制作的应用程序需要将灯打开10秒钟……
我撞错树了吗?
发布于 2015-01-27 08:33:29
我刚刚测试了谷歌游戏中的LED Strobe应用程序,在它最快的设置下,它给了我一个非常快的开/关周期。我会说是接近10 fps。有些闪光是明亮的,有些则是较暗的(但仍然可见)--这可能与如此快速的循环中的电源效率低下有关。
无论如何,我不认为你能保证10 fps,它将取决于任何一个:手机模型,LED模块,电源连接到LED,电池的功率水平。在我的例子中,我在MotoX1Gen上测试了它。
发布于 2016-02-17 02:38:52
我也在想同样的事情,在三星Galaxy Ace 3GT-S7275Y中,我使用的相机对象大约有2.5到3秒左右的50个开/关周期,我使用的代码粘贴在下面:
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));
}https://stackoverflow.com/questions/28166019
复制相似问题