我想在Android中以编程方式仅启用相机flash light
(不使用相机预览)。我搜索了它,但我找到的帮助不适用于我的三星Galaxy ACE。
通过使用此代码能够在此之后开启几秒钟,它会自动关闭,无需在UI上执行任何操作。如果我再次尝试打开强制关闭。
private void turnOn() {
clicked = true;
mCamera = Camera.open();
Parameters params = mCamera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_ON);
mCamera.setParameters(params);
mCamera.startPreview();
mCamera.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
}
});
}
关闭
private void turnOff() {
clicked = false;
if (mCamera != null) {
mCamera.stopPreview();
mCamera.release();
}
}
声明了这些清单权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />
任何人都可以告诉我如何长时间打开闪光灯直到使用点击OFF按钮。是否需要任何第三方库。我在谷歌播放Tiny flash中看到了这个应用程序,他们是如何使用此应用程序的。
从我开启之后,它在2 sec
中关闭了。我没有得到这个问题。
答案 0 :(得分:1)
试试这个
//Turn on
camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
//Turn off
camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
答案 1 :(得分:1)
@RajaReddy PolamReddy,
我正在使用三星S3 LTE(4G)。您需要更改的是将Parameters.FLASH_MODE_ON更改为Parameters.FLASH_MODE_TORCH。
它对我有用。
答案 2 :(得分:-1)
坏消息: 根据文档android相机需要初始化表面视图来开始预览 好消息: 它不能是全屏或可见的
到目前为止我的经验是开始预览是必要的,以激活闪光灯(但我无法代表所有设备)
如果您需要一些示例如何激活预览并可能隐藏在叠加后面, 看看javaocr库(参见演示 - 有2个Android应用程序,还有单独项目中的摄像头管理库 - 你可以抓住它)