问题描述
在三星 S10 上,我无法使用前置摄像头启用闪光灯(在检查此相机的闪光灯支持时,camera2 和旧相机 API 都返回 false
)
例如
Timber.d("flashSupport ${CameraUtil.isFlashAvailable(this,"0")},${CameraUtil.isFlashAvailable(this,"1")}")
"0"
- 后置摄像头的 id
"1"
- 前置摄像头的 id
输出:
flashSupport true,false
fun isFlashAvailable(context: Context,cameraId: String): Boolean {
val characteristics = getCameraCharacteristics(context,cameraId)
return characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE) == true
}
所以我只能为后置摄像头启用闪光灯,而不能为前置摄像头启用闪光灯?为什么这样?三星限制了它,只允许他们的系统相机应用程序或者还有其他东西吗?
解决方法
从三星 S10 的 specs 来看,它似乎没有前置闪光灯?
主摄像头:三重 12 MP,f/1.5-2.4,26mm(宽),1/2.55",1.4µm,双像素 PDAF,OIS 12 MP,f/2.4,52mm (长焦),1/3.6",1.0µm,AF,OIS,2x 光学变焦 16 MP、f/2.2、12mm(超宽)、1/3.1"、1.0µm、超稳定视频
功能:LED 闪光灯、自动 HDR、全景 视频 4K@60fps(无 EIS)、4K@30fps、1080p@30/60/240fps、720p@960fps、HDR10+、立体声录音、陀螺仪 EIS 和 OIS
自拍相机:单 10 MP,f/1.9,26 毫米(宽),1/3 英寸,1.22 微米,双像素 PDAF
功能:双视频通话、自动 HDR 视频 4K@30/60fps、1080p@30fps
三星的相机应用程序可能通过将屏幕变白并以这种方式照亮用户来实现“闪光”。如果是这样,您可以在自己的应用中实现相同的功能。
但相机 API 仅列出带有 LED 或其他频闪灯的常规闪光灯装置。