3

我想在 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" />

任何人都可以告诉我如何长时间打开闪光灯直到使用点击关闭按钮。它是否需要任何第三方库。我在 Google play Tiny flash中看到了这个应用,他们是如何做这个应用的。

从我开机后它转到关闭2 sec我没有得到什么问题。

4

3 回答 3

1

@RajaReddy PolamReddy,

我正在使用三星 S3 LTE (4G)。您需要更改的只是将 Parameters.FLASH_MODE_ON 更改为 Parameters.FLASH_MODE_TORCH。

这个对我有用。

于 2013-06-12T07:12:19.230 回答
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();
于 2012-10-19T07:34:49.893 回答
-1

坏消息:根据文档android相机需要初始化表面视图才能开始预览好消息:它不能全屏或可见

到目前为止,我的经验是启动预览是激活 Flash 所必需的(但我不能代表所有设备)

如果您需要一些示例如何激活预览并可能将其隐藏在叠加层后面,请查看 javaocr 库(参见演示 - 有 2 个 android 应用程序,以及单独项目中的相机管理库 - 您可以抓住它)

https://sourceforge.net/projects/javaocr/

于 2012-10-19T06:34:20.360 回答