Düşük Işık Güçlendirme Otomatik Pozlama Modu

Android 15, hem Camera 2 hem de gece modu kamera uzantısında kullanılabilen yeni bir otomatik pozlama modu olan Düşük Işık Güçlendirmesi Otomatik Pozlama (AE) Modu'nu sunar. Düşük Işık Güçlendirmesi AE modu, düşük ışık koşullarında önizleme akışının parlaklığını otomatik olarak ayarlar. Bu, gece modu kamera uzantısının hareketsiz görüntüler oluşturma şeklinden farklıdır. Gece modu, tek bir iyileştirilmiş görüntü oluşturmak için bir dizi fotoğrafı birleştirir. Gece modu, sabit görüntü oluşturmak için çok iyi çalışsa da sürekli bir kare akışı oluşturamaz. Ancak Düşük Işıkta Geliştirilmiş AE Modu bunu yapabilir. Bu nedenle, Düşük Işık Güçlendirmesi AE Modu, aşağıdaki gibi yeni kamera özelliklerini etkinleştirir:

  • Gelişmiş resim önizlemesi sunarak kullanıcıların düşük ışıkta çektikleri fotoğrafları daha iyi kadraja almalarını sağlar.
  • Düşük ışıkta QR kodlarını tarama

Zayıf Işık Güçlendirme AE Modu'nu etkinleştirirseniz ışık seviyesi düşük olduğunda otomatik olarak açılır, ışık seviyesi yükseldiğinde ise kapanır.

Uygulamalar, düşük ışık koşullarında önizleme akışını kaydederek videoları aydınlatabilir.

Düşük Işık Güçlendirme AE Modu'nu Camera2'de veya kamera uzantıları aracılığıyla kullanabilirsiniz. Bu belgede, Camera2 ile Düşük Işık Güçlendirmesi AE modunun nasıl kullanılacağı açıklanmaktadır. Cihaz tarafından destekleniyorsa Gece Modu kamera uzantısıyla Düşük Işıkta Güçlendirme AE Modu'nu da kullanabilirsiniz.

Kullanılabilirlik durumunu kontrol etme

Düşük Işıkta Güçlendirme AE Modu'nu kullanmadan önce cihazda desteklendiğinden emin olun. Kullanılabiliyorsa Zayıf Işık Güçlendirme AE Modu, camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES içinde listelenen pozlama modlarından biridir. (Düşük Işık Güçlendirmesi, kendi otomatik pozlama ayarına sahiptir. Diğer otomatik pozlama ayarları, Düşük Işık Güçlendirmesi AE Modu tarafından gerçekleştirilen önizleme parlaklaştırma işlemiyle uyumlu değildir.)

Bu nedenle, Düşük Işıkta Geliştirme AE Modu'nun kullanılabilir olup olmadığını kontrol etmek için CameraCharacteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES) yöntemini çağırın ve döndürülen modların ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY değerini içerip içermediğini kontrol edin:

val characteristics = cameraManager.getCameraCharacteristics(cameraId)
val autoExposureModes =
    characteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES)!!
val lowLightBoostSupported = autoExposureModes.contains(
    CameraMetadata.CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
)

if (lowLightBoostSupported) {
    // Enable Low Light Boost AE Mode (next section).
} else {
    // Proceed without Low Light Boost AE Mode.
}

Düşük Işık Geliştirme AE Modu'nu etkinleştirme

Camera2 oturumunda Zayıf Işık Güçlendirme AE Modu'nu etkinleştirmek için CaptureRequest.CONTROL_AE_MODE değerini ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY olarak ayarlayın. Bunu yaptıktan sonra, Düşük Işıkta İyileştirme AE Modu'nun etkinleştirildiğini onaylamanız gerekir. Bunu, CaptureResult.CONTROL_AE_MODE alanını kontrol ederek yapabilirsiniz. Düşük Işık Güçlendirmesi tüm kamera yapılandırmalarıyla uyumlu olmadığından kontrol etmeniz gerekir. Örneğin, yüksek hızlı kayıt, FPS ile ilgili nedenlerden dolayı Düşük Işık Güçlendirmesi AE modunu desteklemez. Düşük Işıkta Geliştirme AE Modu etkinleştirilmezse kamera yapılandırmasını değiştirip tekrar denemeniz gerekebilir.

val captureRequestBuilder = camera.createCaptureRequest(
    CameraDevice.TEMPLATE_PREVIEW
)
if (isLowLightBoostAvailable(cameraId)) {
    captureRequestBuilder.set(
        CaptureRequest.CONTROL_AE_MODE,
        CameraMetadata.CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
    )
}
// other capture request params.

session.setRepeatingRequest(
    captureRequestBuilder.build(),
    object : CaptureCallback() {
        override fun onCaptureCompleted(
            session: CameraCaptureSession,
            request: CaptureRequest,
            result: TotalCaptureResult
        ) {
            // verify Low Light Boost AE Mode AE mode set successfully.
            result.get(CaptureResult.CONTROL_AE_MODE) ==
                CameraMetadata.CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
        }
    },
    cameraHandler
)

Düşük Işık Geliştirme AE Modunu İzleme

Düşük Işık Güçlendirmesi AE Modu, düşük ışık koşullarında önizleme akışını aydınlatır. Ortam normal çekim için yeterince aydınlıksa bu modun herhangi bir etkisi olmaz. Düşük Işıkta Geliştirme AE Modu'nun etkin olup olmadığını CaptureResult.CONTROL_LOW_LIGHT_BOOST_STATE alanını kontrol ederek doğrulayabilirsiniz. Düşük Işık Geliştirme AE Modu'nu açtıysanız ve şu anda etkinse alan CameraMetadata.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE olarak ayarlanır. Ardından, önizlemenin parlaklığının artırıldığını gösteren bir ay simgesi veya başka bir gösterge görebilirsiniz.

session.setRepeatingRequest(
    captureRequestBuilder.build(),
    object : CaptureCallback() {
        override fun onCaptureCompleted(
            session: CameraCaptureSession,
            request: CaptureRequest,
            result: TotalCaptureResult
        ) {
            // check if Low Light Boost AE Mode is active or inactive.
            if (result.get(CaptureResult.CONTROL_LOW_LIGHT_BOOST_STATE) ==
                CameraMetadata.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE
            ) {
                // Low Light Boost AE Mode state is active.
                // Show Moon Icon.
            } else {
                // Low Light Boost AE Mode state is inactive or AE mode is not set
                // to Low Light Boost AE Mode.
                // Hide Moon Icon.
            }
        }
    },
    cameraHandler
)