از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
بوکه دوربین
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
بوکه دوربین یک افکت عمق میدان کم است که با محو کردن قسمتهایی از صحنه بهگونهای که در فوکوس نباشند، ایجاد میشود. در دوربین های دستگاه های تلفن همراه، بوکه با استفاده از اطلاعات عمقی به دست آمده از دید استریو از دو دوربین یا از دیودهای نوری دوگانه (PDs) یک دوربین به دست می آید.
با شروع اندروید 11، پلتفرم اندروید از پیاده سازی بوکه پشتیبانی می کند و API هایی را برای در دسترس قرار دادن این ویژگی برای برنامه های شخص ثالث ارائه می دهد.
پیاده سازی
برای در دسترس قرار دادن ویژگی دوربین بوکه در دستگاه خود، موارد زیر را انجام دهید:
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
را تبلیغ کنید:
این تگ در قالب یک آرایه تاپلی سه عدد صحیح است که هر تاپل در قالب {mode, maxWidth, maxHeight}
. علاوه بر {ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}
, دوربین HAL باید یکی یا هر دو حالت ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE
و ANDROID_CONTROL_EXTOLNE_CONTROL_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE و ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS
0, 0} را نیز فهرست کند. حداکثر اندازه پخش متناظر
ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES
را تبلیغ کنید:
این برچسب در قالب یک آرایه {minZoomRatio, maxZoomRatio}
است که شامل تمام محدودههای نسبت بزرگنمایی برای یک حالت صحنه گسترده فعال است، به همان ترتیبی که در ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES
. محدوده بزرگنمایی [1.0, 1.0]
به این معنی است که بزرگنمایی پشتیبانی نمی شود.
ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
را در ANDROID_CONTROL_AVAILABLE_MODES
پر کنید.
برای اینکه یک برنامه قابلیت بوکه را فعال کند، برنامه باید ANDROID_CONTROL_MODE
را روی ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE
و ANDROID_CONTROL_EXTENDED_SCENE_MODE
را روی یکی از حالت های صحنه توسعه یافته پشتیبانی شده تنظیم کند. توجه داشته باشید که اجرای بوکه ممکن است به دلیل محاسبات استریو منجر به مصرف حافظه اضافی شود.
اگر حالت صحنه توسعهیافته پشتیبانیشده را نمیتوان در هر فریم اعمال کرد و منجر به تاخیرهای غیرمنتظره در هنگام فعال/غیرفعال شد، ANDROID_CONTROL_EXTENDED_SCENE_MODE
در ANDROID_REQUEST_AVAILABLE_SESSION_KEYS
اضافه کنید. در همان زمان، متد ICameraDeviceSession::isReconfigurationRequired()
را برای جلوگیری از پیکربندی مجدد برای حالتهای صحنه توسعه یافته که نیازی به پیکربندی مجدد ندارند، پیادهسازی کنید.
اعتبار سنجی
برای تأیید اعتبار ویژگی بوکه در دستگاه خود، آزمایشهای CTS، VTS و CTS Verifier زیر را اجرا کنید:
-
CtsCameraTestCases
-
VtsHalCameraProviderV2_4TargetTest
-
CameraBokehTest
در CTS Verifier
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Camera bokeh is a shallow depth-of-field effect created by blurring out parts of\na scene so that they're not in focus. On cameras on mobile devices, bokeh is\nachieved using depth information acquired from the stereo vision from two\ncameras or from dual photodiodes (PDs) of a single camera.\n\nStarting from Android 11, the Android platform\nsupports bokeh implementations and provides APIs to make the feature available\nto third-party apps.\n\nImplementation\n--------------\n\nTo make the camera bokeh feature available on your device, do the following:\n\n- Advertise `ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES`:\n\n This tag is in the format of a three-integer tuple array, with each tuple\n in the format of `{mode, maxWidth, maxHeight}`. In addition to\n `{ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED, 0, 0}`, the camera HAL must\n also list one or both of the\n `ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE` and\n `ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS` modes with their\n corresponding maximum streaming sizes.\n- Advertise\n `ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES`:\n\n This tag is in the format of a `{minZoomRatio, maxZoomRatio}` array,\n which contains all the zoom ratio ranges for an enabled extended scene\n mode, in the same order as in\n `ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES`. A zoom range of\n `[1.0, 1.0]` means that zoom isn't supported.\n- Populate `ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE` in\n `ANDROID_CONTROL_AVAILABLE_MODES`.\n\nFor an app to trigger the bokeh feature, the app must set `ANDROID_CONTROL_MODE`\nto `ANDROID_CONTROL_USE_EXTENDED_SCENE_MODE` and\n`ANDROID_CONTROL_EXTENDED_SCENE_MODE` to one of supported extended scene modes.\nNote that implementing bokeh might lead to extra memory consumption because of\nstereo computation.\n\nIf a supported extended scene mode can't be applied per frame and results in\nunexpected delays when enabled/disabled, include\n`ANDROID_CONTROL_EXTENDED_SCENE_MODE` in\n`ANDROID_REQUEST_AVAILABLE_SESSION_KEYS`. At the same time, implement the\n`ICameraDeviceSession::isReconfigurationRequired()` method to avoid\nreconfiguration for extended scene modes that don't require reconfiguration.\n\nValidation\n----------\n\nTo validate the bokeh feature on your device, run the following CTS, VTS, and\nCTS Verifier tests:\n\n- `CtsCameraTestCases`\n- `VtsHalCameraProviderV2_4TargetTest`\n- `CameraBokehTest` in CTS Verifier"]]