闪光灯在自定义相机安卓



此链接上有一个 android 中的自定义相机实现 http://store.ovi.com/content/147853?clickSource=search&pos=1 我想知道我们如何在拍摄图像时打开闪光灯,这是我们自己做的事情吗? 或任何在示例中设置相机模式的 API?

请帮忙!

谢谢

您可以使用 setParameters(Camera.Parameters params) 将所需的闪光模式设置为传入Camera对象参数的一部分。请参阅参数上的setFlashMode(String)方法,提供FLASH_MODE_ONFLASH_MODE_OFFFLASH_MODE_AUTO

Camera camera = Camera.open();
Camera.Parameters params = new Camera.Parameters();
params.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
// ... set other parameters
camera.setParameters(params);

在你有一个 Camera 实例后,这相对容易(Camera.open() 将返回一个 Camera 实例)。

首先,您需要获取相机参数

Camera.Parameters params = yourCameraInstance.getParameters();

接下来,您需要检查正在使用的设备是否能够实现您想要实现的闪光灯模式,以防万一您尝试告诉设备打开闪光灯而它不能。这将导致崩溃。

 List<String> flashModes = params.getSupportedFlashModes();

这将以字符串形式返回设备能够使用的所有闪光模式的列表。例如,列表应包含以下内容:FLASH_MODE_AUTO、FLASH_MODE_ON FLASH_MODE_OFF等。

然后执行以下操作:

 if (flashModes.contains(Camera.Parameters.FLASH_MODE_AUTO)) {
        params.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
    }

最后,将新参数设置为相机实例,如下所示:

yourCameraInstance.setParameters(params);

同样,您可以以相同的方式检查其他相机功能:

    List<String> focusModes = params.getSupportedFocusModes();
    if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
        params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
    }
    yourCameraInstance.setParameters(params);

希望这对某人有所帮助!

最新更新