حالت نوردهی خودکار تقویت کننده نور کم، حالت نوردهی خودکار تقویت کننده نور کم

اندروید 15 حالت نوردهی خودکار کم نور (AE) را معرفی می کند، یک حالت نوردهی خودکار جدید که هم برای دوربین 2 و هم برای پسوند دوربین حالت شب در دسترس است. حالت کم نور تقویت AE به طور خودکار روشنایی جریان پیش نمایش را در شرایط کم نور تنظیم می کند. این با نحوه ایجاد تصاویر ثابت توسط پسوند دوربین حالت شب متفاوت است، زیرا حالت شب مجموعه ای از عکس ها را برای ایجاد یک تصویر واحد و پیشرفته ترکیب می کند. در حالی که حالت شب برای ایجاد یک تصویر ثابت بسیار خوب عمل می کند، نمی تواند یک جریان مداوم از فریم ها ایجاد کند، اما حالت Low Light Boost AE می تواند. بنابراین، Low Light Boost AE Mode قابلیت‌های جدید دوربین را فعال می‌کند، مانند موارد زیر:

  • ارائه یک پیش‌نمایش تصویر پیشرفته، بنابراین کاربران بهتر می‌توانند عکس‌های خود را در نور کم قاب کنند.
  • اسکن کدهای QR در نور کم

اگر حالت Low Light Boost AE را فعال کنید، زمانی که سطح نور کم باشد به طور خودکار روشن می شود و زمانی که نور بیشتری وجود دارد خاموش می شود.

برنامه‌ها می‌توانند جریان پیش‌نمایش را در شرایط کم‌نور ضبط کنند تا یک ویدیوی روشن را ذخیره کنند.

می‌توانید از حالت Low Light Boost AE در Camera2 یا از طریق افزونه‌های دوربین استفاده کنید. این سند نحوه استفاده از حالت کم نور تقویت AE با دوربین 2 را پوشش می دهد. در صورتی که دستگاه پشتیبانی می‌کند، می‌توانید از حالت Low Light Boost AE با پسوند دوربین حالت شب استفاده کنید.

در دسترس بودن را بررسی کنید

قبل از استفاده از حالت Low Light Boost AE، بررسی کنید که در دستگاه پشتیبانی می شود. اگر در دسترس باشد، حالت کم نور تقویت AE یکی از حالت‌های نوردهی فهرست شده در camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES است. (تقویت نور کم، تنظیم نوردهی خودکار خودش است، زیرا سایر تنظیمات نوردهی خودکار با روشن‌سازی پیش‌نمایش انجام‌شده توسط حالت کم نور تقویت کننده AE سازگار نیستند.)

بنابراین، برای بررسی در دسترس بودن حالت کم نور Boost AE، با CameraCharacteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES) تماس بگیرید و بررسی کنید که آیا حالت های برگشتی شامل 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
}

جاوا

CameraCharacteristics characteristics =
    mCameraManager.getCameraCharacteristics(cameraId);
int[] autoExposureModes =
    characteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES);
boolean 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
}

حالت Low Light Boost AE را فعال کنید

برای فعال کردن حالت کم نور Boost AE در جلسه Camera2، CaptureRequest.CONTROL_AE_MODE روی ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY تنظیم کنید. پس از انجام این کار، باید تأیید کنید که حالت Low Light Boost AE روشن شده است. می توانید این کار را با بررسی فیلد CaptureResult.CONTROL_AE_MODE انجام دهید. باید بررسی کنید زیرا Low Light Boost با تمام تنظیمات دوربین سازگار نیست. به عنوان مثال، ضبط با سرعت بالا به دلیل ملاحظات FPS، از حالت Low Light Boost AE پشتیبانی نمی کند. اگر حالت Low Light Boost AE روشن نیست، ممکن است لازم باشد پیکربندی دوربین را تغییر دهید و دوباره امتحان کنید.

کاتلین

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
)

جاوا

CaptureRequest.Builder captureRequestBuilder =
  mCamera.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

mSession.setRepeatingRequest(
  captureRequestBuilder.build(),
  new CaptureCallback() {
    @Override
    public void onCaptureCompleted(CameraCaptureSession session,
        CaptureRequest request, TotalCaptureResult result) {
      // 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;
    }
  },
  mCameraHandler
);

حالت AE تقویت نور کم را مانیتور کنید

حالت Low Light Boost AE جریان پیش‌نمایش را در شرایط کم نور روشن می‌کند و اگر محیط از قبل به اندازه کافی برای عکاسی عادی روشن باشد، تأثیری ندارد. با بررسی فیلد CaptureResult.CONTROL_LOW_LIGHT_BOOST_STATE ، می‌توانید تأیید کنید که حالت Low Light Boost AE در حال حاضر فعال است یا خیر. اگر حالت Low Light Boost AE را روشن کرده‌اید و در حال حاضر فعال است، این فیلد روی CameraMetadata.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE تنظیم شده است.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE. سپس ممکن است یک نماد ماه یا نشانه دیگری از روشن شدن پیش نمایش را نشان دهید.

کاتلین

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
)

جاوا

mSession.setRepeatingRequest(
  captureRequestBuilder.build(),
  new CaptureCallback() {
    @Override
    public void onCaptureCompleted(CameraCaptureSession session,
        CaptureRequest request, TotalCaptureResult result) {
      // 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
      }
    }
  },
  mCameraHandler
);
،

اندروید 15 حالت نوردهی خودکار کم نور (AE) را معرفی می کند، یک حالت نوردهی خودکار جدید که هم برای دوربین 2 و هم برای پسوند دوربین حالت شب در دسترس است. حالت کم نور تقویت AE به طور خودکار روشنایی جریان پیش نمایش را در شرایط کم نور تنظیم می کند. این با نحوه ایجاد تصاویر ثابت توسط پسوند دوربین حالت شب متفاوت است، زیرا حالت شب مجموعه ای از عکس ها را برای ایجاد یک تصویر واحد و پیشرفته ترکیب می کند. در حالی که حالت شب برای ایجاد یک تصویر ثابت بسیار خوب عمل می کند، نمی تواند یک جریان مداوم از فریم ها ایجاد کند، اما حالت Low Light Boost AE می تواند. بنابراین، Low Light Boost AE Mode قابلیت‌های جدید دوربین را فعال می‌کند، مانند موارد زیر:

  • ارائه یک پیش‌نمایش تصویر پیشرفته، بنابراین کاربران بهتر می‌توانند عکس‌های خود را در نور کم قاب کنند.
  • اسکن کدهای QR در نور کم

اگر حالت Low Light Boost AE را فعال کنید، زمانی که سطح نور کم باشد به طور خودکار روشن می شود و زمانی که نور بیشتری وجود دارد خاموش می شود.

برنامه‌ها می‌توانند جریان پیش‌نمایش را در شرایط کم‌نور ضبط کنند تا یک ویدیوی روشن را ذخیره کنند.

می‌توانید از حالت Low Light Boost AE در Camera2 یا از طریق افزونه‌های دوربین استفاده کنید. این سند نحوه استفاده از حالت کم نور تقویت AE با دوربین 2 را پوشش می دهد. در صورتی که دستگاه پشتیبانی می‌کند، می‌توانید از حالت Low Light Boost AE با پسوند دوربین حالت شب استفاده کنید.

در دسترس بودن را بررسی کنید

قبل از استفاده از حالت Low Light Boost AE، بررسی کنید که در دستگاه پشتیبانی می شود. اگر در دسترس باشد، حالت کم نور تقویت AE یکی از حالت‌های نوردهی فهرست شده در camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES است. (تقویت نور کم، تنظیم نوردهی خودکار خودش است، زیرا سایر تنظیمات نوردهی خودکار با روشن‌سازی پیش‌نمایش انجام‌شده توسط حالت کم نور تقویت کننده AE سازگار نیستند.)

بنابراین، برای بررسی در دسترس بودن حالت کم نور Boost AE، با CameraCharacteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES) تماس بگیرید و بررسی کنید که آیا حالت های برگشتی شامل 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
}

جاوا

CameraCharacteristics characteristics =
    mCameraManager.getCameraCharacteristics(cameraId);
int[] autoExposureModes =
    characteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES);
boolean 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
}

حالت Low Light Boost AE را فعال کنید

برای فعال کردن حالت کم نور Boost AE در جلسه Camera2، CaptureRequest.CONTROL_AE_MODE روی ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY تنظیم کنید. پس از انجام این کار، باید تأیید کنید که حالت Low Light Boost AE روشن شده است. می توانید این کار را با بررسی فیلد CaptureResult.CONTROL_AE_MODE انجام دهید. باید بررسی کنید زیرا Low Light Boost با تمام تنظیمات دوربین سازگار نیست. به عنوان مثال، ضبط با سرعت بالا به دلیل ملاحظات FPS، از حالت Low Light Boost AE پشتیبانی نمی کند. اگر حالت Low Light Boost AE روشن نیست، ممکن است لازم باشد پیکربندی دوربین را تغییر دهید و دوباره امتحان کنید.

کاتلین

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
)

جاوا

CaptureRequest.Builder captureRequestBuilder =
  mCamera.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

mSession.setRepeatingRequest(
  captureRequestBuilder.build(),
  new CaptureCallback() {
    @Override
    public void onCaptureCompleted(CameraCaptureSession session,
        CaptureRequest request, TotalCaptureResult result) {
      // 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;
    }
  },
  mCameraHandler
);

حالت AE تقویت نور کم را مانیتور کنید

حالت Low Light Boost AE جریان پیش‌نمایش را در شرایط کم نور روشن می‌کند و اگر محیط از قبل به اندازه کافی برای عکاسی عادی روشن باشد، تأثیری ندارد. با بررسی فیلد CaptureResult.CONTROL_LOW_LIGHT_BOOST_STATE ، می‌توانید تأیید کنید که حالت Low Light Boost AE در حال حاضر فعال است یا خیر. اگر حالت Low Light Boost AE را روشن کرده‌اید و در حال حاضر فعال است، این فیلد روی CameraMetadata.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE تنظیم شده است.CONTROL_LOW_LIGHT_BOOST_STATE_ACTIVE. سپس ممکن است یک نماد ماه یا نشانه دیگری از روشن شدن پیش نمایش را نشان دهید.

کاتلین

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
)

جاوا

mSession.setRepeatingRequest(
  captureRequestBuilder.build(),
  new CaptureCallback() {
    @Override
    public void onCaptureCompleted(CameraCaptureSession session,
        CaptureRequest request, TotalCaptureResult result) {
      // 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
      }
    }
  },
  mCameraHandler
);