有奇怪的情况。我拿了标准的谷歌样本camera2API。
无论外部光线如何,我都需要闪光灯永久工作。
为了完成它,我更改了一行代码:
private void setAutoFlash(CaptureRequest.Builder requestBuilder) {
if (mFlashSupported) {
// requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_ALWAYS_FLASH);
}
}
是CONTROL_AE_MODE_ON_AUTO_FLASH我把它改成了CONTROL_AE_MODE_ON_ALWAYS_FLASH。
而且我遇到了问题,当我单击Take picture按钮时,相机正在闪烁,就是这样。应用程序进入堆栈...
我究竟做错了什么?
编辑
我接下来弄清楚:
我已经在三个不同的设备上尝试过 tern on flash Meizu MX5,Samsung S5并且Samsung S6。
其中两个,Meizu MX5与Samsung S5上面的代码一起正常工作,并且应用程序不在堆栈中驱动。
出现问题Samsung S6,但是...
方法setAutoFlash()在不同地方在代码内调用 3 次
captureStillPicture()unlockFocus()onConfigured()
诀窍是,如果我禁用它setAutoFlash(),captureStillPicture()因为Samsung S6它会停止堆叠并且 flash 开始工作,但是如果我尝试这种方法Meizu MX5,Samsung S5flash 不起作用......