前置摄像头不支持闪光灯,但相机应用程序支持前置摄像头闪光灯

Flash is not supported for front camera, though stock Camera app has flash support for front camera

在 Samsung S10 上,我无法使用前置摄像头启用闪光灯(camera2 和 legacy camera API return 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来看,好像没有前置闪光灯?

MAIN CAMERA: Triple 12 MP, f/1.5-2.4, 26mm (wide), 1/2.55", 1.4µm, Dual Pixel PDAF, OIS 12 MP, f/2.4, 52mm (telephoto), 1/3.6", 1.0µm, AF, OIS, 2x optical zoom 16 MP, f/2.2, 12mm (ultrawide), 1/3.1", 1.0µm, Super Steady video

Features: LED flash, auto-HDR, panorama Video 4K@60fps (no EIS), 4K@30fps, 1080p@30/60/240fps, 720p@960fps, HDR10+, stereo sound rec., gyro-EIS & OIS

SELFIE CAMERA: Single 10 MP, f/1.9, 26mm (wide), 1/3", 1.22µm, Dual Pixel PDAF

Features: Dual video call, Auto-HDR Video 4K@30/60fps, 1080p@30fps

三星的相机应用可能会通过将屏幕变成白色并照亮用户来实现 'flash'。如果是这样,您可以在自己的应用程序中实现相同的功能。

但相机 API 仅列出带有 LED 或其他闪光灯的普通闪光灯。