有奇怪的情况。我拿了标准的谷歌样本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 S5
flash 不起作用......