有没有一种方法可以设置我想要的LED亮度?我知道要打开LED,我要使用:
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mycam.setParameters(p);
但是这段代码只能打开LED灯。是否有一种方法可以为LED灯设置不同的亮度,以便获得更强的光或减少光的强度?
有没有一种方法可以设置我想要的LED亮度?我知道要打开LED,我要使用:
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mycam.setParameters(p);
但是这段代码只能打开LED灯。是否有一种方法可以为LED灯设置不同的亮度,以便获得更强的光或减少光的强度?
HTC有一种替代API支持此功能,但它只适用于HTC Sense设备,并且从Gingerbread开始,它们更改了权限,因此仅适用于其手电筒应用程序,而不是第三方应用程序(除非您使用root)。
但在2.2的HTC设备上,您可以通过向/sys/devices/platform/flashlight.0/leds/flashlight/brightness
写入字符串来使用它。 这控制LED是否开启以及亮度。要达到最大亮度,请写入"128\n"
,要达到一半的亮度,请写入"64\n"
。 可以从adb shell轻松测试:
echo "128" > /sys/devices/platform/flashlight.0/leds/flashlight/brightness
最后,通过写入"0\n"
来关闭它。
简短回答是:不可以。
更长的回答是:在某些设备上,可能会使用未记录的调用/参数来实现该功能。不同设备支持的闪光模式及其含义(和行为)也各不相同。
您最好的选择是查询支持的闪光模式,并希望它们按预期工作。
尝试设置相机参数可用的不同闪光模式。
* FLASH_MODE_OFF
* FLASH_MODE_AUTO
* FLASH_MODE_ON
* FLASH_MODE_RED_EYE
* FLASH_MODE_TORCH
试图找到此函数的代码:
private native final void native_setParameters(String params);
当您查看它时,我相信您会发现是否可能。
看起来似乎不可能,考虑到这些 public
。
public void changeIntensity()
{
cam.stopPreview();
cam.startPreview();
}
LED灯可以在3个不同的亮度级别之间旋转。虽然看起来没有什么意义,但它确实有效。