在HTC Desire上拍照时使用手电筒模式时,闪光灯过早熄灭

时间:2011-07-28 11:33:01

标签: camera flashlight android

我遇到了HTC Desire后置摄像头的问题。

我正在开发一款使用torch mode拍照的应用程序,并且它可以与其他设备(Nexus One,Galaxy S II,......)配合使用,但是在照片显示之前,LED已经过了拍摄。我已经测试了其他相机应用程序("Camera Magic",“扭曲的相机”),看起来他们有完全相同的问题。

相关代码非常标准(并且适用于其他设备)

// set the torch mode in the Camera.Parameters 
String flashMode = parameters.getFlashMode();
List<String> flashModes = parameters.getSupportedFlashModes();
if ((flashModes != null) && (flashModes.contains(Camera.Parameters.FLASH_MODE_TORCH))) {
    parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);    
}
...
...
// then just start the camera preview
mCamera.startPreview();

我想知道是否有人知道问题可能是什么或经历过同样的问题?

2 个答案:

答案 0 :(得分:0)

对于它的价值,我遇到了与HTC Desire相同的问题。

要考虑的一种可行解决方法是在拍摄照片之前将闪光模式切换为FLASH_MODE_ON,然后将其重新设置为FLASH_MODE_TORCH

虽然闪光灯比手电筒强,所以拍摄的照片看起来与预览不同。

答案 1 :(得分:0)

是的我在HTC手机上发现了同样的问题。

我已经放置条件使用FLASH_MODE_ON而不是FLASH_MODE_TORCH

if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
    if (pList.contains(Parameters.FLASH_MODE_TORCH) && (!ManufacturerName.contains("htc"))) {
        parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
    }
    else
    if (pList.contains(Parameters.FLASH_MODE_ON)) {
        parameters.setFlashMode(Parameters.FLASH_MODE_ON);
    }
}