此链接上有一个 android 中的自定义相机实现 http://store.ovi.com/content/147853?clickSource=search&pos=1 我想知道我们如何在拍摄图像时打开闪光灯,这是我们自己做的事情吗? 或任何在示例中设置相机模式的 API?
请帮忙!
谢谢
您可以使用 setParameters(Camera.Parameters params)
将所需的闪光模式设置为传入Camera
对象参数的一部分。请参阅参数上的setFlashMode(String)
方法,提供FLASH_MODE_ON
、FLASH_MODE_OFF
或FLASH_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);
希望这对某人有所帮助!