Android 15 introduit le mode d'exposition automatique (AE) avec amplification de la luminosité, un nouveau mode d'exposition automatique disponible pour Camera 2 et l'extension du mode Nuit de l'appareil photo. Le mode AE d'amplification de la luminosité ajuste automatiquement la luminosité du flux d'aperçu dans des conditions de faible luminosité. Cela diffère de la façon dont l'extension d'appareil photo en mode nuit crée des images fixes, car le mode nuit combine une rafale de photos pour créer une seule image améliorée. Bien que le mode nuit soit très efficace pour créer une image fixe, il ne peut pas créer un flux continu d'images, contrairement au mode AE d'optimisation en cas de faible luminosité. Ainsi, le mode AE d'amplification de la luminosité permet de nouvelles fonctionnalités de l'appareil photo, telles que les suivantes :
- Fournir un aperçu d'image amélioré pour que les utilisateurs puissent mieux cadrer leurs photos en basse luminosité.
- Scanner des codes QR dans des conditions de faible luminosité.
Si vous activez le mode AE d'amélioration en cas de faible luminosité, il s'active automatiquement lorsque la luminosité est faible et se désactive lorsqu'elle est plus élevée.
Les applications peuvent enregistrer le flux d'aperçu par faible luminosité dans le but d'éclaircir les vidéos.
Vous pouvez utiliser le mode AE d'amélioration en basse lumière dans Camera2 ou via les extensions de l'appareil photo. Ce document explique comment utiliser le mode AE d'amplification en cas de faible luminosité avec Camera2. Vous pouvez également utiliser le mode d'exposition automatique Amplification de la luminosité avec l'extension du mode Nuit de l'appareil photo, si l'appareil est compatible.
Vérifier la disponibilité
Avant d'utiliser le mode AE d'amélioration en faible luminosité, vérifiez qu'il est compatible avec l'appareil.
S'il est disponible, le mode AE d'amplification de la luminosité est l'un des modes d'exposition listés dans camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES. (L'amplification de la luminosité est un paramètre d'exposition automatique à part entière, car les autres paramètres d'exposition automatique ne sont pas compatibles avec l'éclaircissement de l'aperçu effectué par le mode d'exposition automatique Amplification de la luminosité.)
Pour vérifier si le mode AE d'optimisation en basse lumière est disponible, appelez CameraCharacteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES) et vérifiez si les modes renvoyés incluent ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY :
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. }
Activer le mode AE d'amplification de luminosité
Pour activer le mode AE d'amplification de la luminosité dans une session Camera2, définissez CaptureRequest.CONTROL_AE_MODE sur ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY. Ensuite, vous devez confirmer que le mode AE d'amélioration en cas de faible luminosité a été activé. Pour ce faire, vérifiez le champ CaptureResult.CONTROL_AE_MODE. Vous devez vérifier, car l'amplification de la luminosité n'est pas compatible avec toutes les configurations de l'appareil photo. Par exemple, l'enregistrement à grande vitesse n'est pas compatible avec le mode AE d'amélioration en cas de faible luminosité, en raison de considérations liées au nombre d'images par seconde. Si le mode AE d'amélioration en basse luminosité n'est pas activé, vous devrez peut-être modifier la configuration de la caméra et réessayer.
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 )
Surveiller le mode AE d'amplification de luminosité faible
Le mode AE d'amplification de la luminosité éclaircit le flux d'aperçu par faible luminosité et n'a aucun effet si l'environnement est déjà suffisamment lumineux pour une capture normale. Vous pouvez vérifier si le mode AE d'amplification de la luminosité est actuellement actif en consultant le champ CaptureResult.CONTROL_LOW_LIGHT_BOOST_STATE.
Si vous avez activé le mode AE d'amplification de luminosité et qu'il est actuellement actif, le champ est défini sur CameraMetadata.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE.
Vous pouvez ensuite afficher une icône de lune ou une autre indication que l'aperçu est en cours d'éclaircissement.
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 )