CameraX
يسرد هذا الجدول جميع العناصر في المجموعة androidx.camera.
| العناصر | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| camera-camera2 | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-core | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-compose | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-effects | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-extensions | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-feature-combination-query | - | - | - | 1.5.0-alpha06 |
| camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha06 |
| camera-lifecycle | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-mlkit-vision | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-view | 1.5.1 | - | - | 1.6.0-alpha01 |
| camera-viewfinder | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
| camera-video | 1.5.1 | - | - | 1.6.0-alpha01 |
اختبار الجهاز
يتم اختبار CameraX على العديد من الأجهزة في مختبرنا. للاطّلاع على قائمة بالأجهزة المتوفّرة حاليًا في المختبر، يُرجى الاطّلاع على الأجهزة التي تم اختبارها في مختبر CameraX.
تحديد الاعتماديات
لإضافة اعتمادية على CameraX، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
Groovy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.6.0-alpha01" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" // If you want to additionally use the CameraX VideoCapture library implementation "androidx.camera:camera-video:${camerax_version}" // If you want to additionally use the CameraX View class implementation "androidx.camera:camera-view:${camerax_version}" // If you want to additionally add CameraX ML Kit Vision Integration implementation "androidx.camera:camera-mlkit-vision:${camerax_version}" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:${camerax_version}" }
Kotlin
dependencies { // CameraX core library using the camera2 implementation val camerax_version = "1.6.0-alpha01" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
الإصدار 1.0 من Camera Viewfinder Compose
الإصدار 1.0.0-alpha02
12 يونيو 2024
تم طرح androidx.camera:camera-viewfinder-compose:1.0.0-alpha02. يتضمّن الإصدار 1.0.0-alpha02 هذه التعديلات.
الإصدار 1.0.0-alpha01
14 مايو 2024
تم طرح androidx.camera:camera-viewfinder-compose:1.0.0-alpha01. يتضمّن الإصدار 1.0.0-alpha01 هذه التعديلات.
الميزات الجديدة
- مكتبة جديدة تقدّم هذه المكتبة عنصر Viewfinder القابل للإنشاء في Compose، والذي يمكن استخدامه مع CameraX وCamera2. يتوافق تطبيق "منظار العرض" القابل للإنشاء مع نسب عرض إلى ارتفاع مختلفة، ويتيح التعامل مع أحداث اللمس.
الإصدار 1.4 من "عدسة الكاميرا"
الإصدار 1.4.0-alpha07
12 يونيو 2024
تم طرح androidx.camera:camera-viewfinder:1.4.0-alpha07 وandroidx.camera:camera-viewfinder-core:1.4.0-alpha07. يتضمّن الإصدار 1.4.0-alpha07 هذه التعديلات.
الإصدار 1.4.0-alpha06
14 مايو 2024
تم طرح androidx.camera:camera-viewfinder:1.4.0-alpha06 وandroidx.camera:camera-viewfinder-core:1.4.0-alpha06. يتضمّن الإصدار 1.4.0-alpha06 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إعادة تسمية
ViewfinderImplementationModeEnums لتعكس بشكل أفضل عمليات التنفيذ الأساسية، وإضافة ثوابت ثابتة لـTransformationInfo.sourceRotation(Ic6149) - تمت إضافة
ZoomGestureDetector.ZoomEventلتغليف حالات إيماءة التكبير أو التصغير. (I84cdf)
الإصدار 1.6 من تطبيق "الكاميرا"
الإصدار 1.6.0-alpha01
22 أكتوبر 2025
تم طرح androidx.camera:camera-*:1.6.0-alpha01. يتضمّن الإصدار 1.6.0-alpha01 هذه التعديلات.
الميزات الجديدة
- تم نقل CameraX إلى حزمة كاميرا موحّدة وعالية الأداء، ويستخدمها أيضًا تطبيق "كاميرا Pixel". تُعرف هذه الحزمة الجديدة باسم
CameraPipe، وهي نتيجة تعاون بين فريقي CameraX و"كاميرا Pixel". ويضمن ذلك مشاركة جميع التحسينات، ما يعود بالفائدة على مستخدمي CameraX وتطبيق "كاميرا Pixel".
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهات برمجة تطبيقات جديدة لرصد إضافة الكاميرا أو إزالتها بشكل ديناميكي. اطّلِع على واجهة برمجة التطبيقات
CameraPresenceListenerلمزيد من التفاصيل. (I41ead، b/427182232، b/419441394)
إصلاح الأخطاء
- توفّر واجهة برمجة التطبيقات الخاصة بمجموعات الميزات الآن نتائج متسقة عند استخدام
PREVIEW_STABILIZATIONمعVideoCapture. يؤدي ذلك إلى إصلاح الخلل الذي تسبّب في ظهور نتائج غير متسقة عندما لم تكن حالة استخدامPreviewنشطة أيضًا. (Ifed82، b/449913903) - تم إصلاح المشكلة المتمثّلة في إتاحة ميزات مفضّلة غير متوافقة بشكل غير صحيح. يتم الآن فلترة الميزات بشكل صحيح عندما لا يتم استيفاء حالات الاستخدام المطلوبة. (I38db8، b/449532342)
- تم إصلاح مشكلة ظهور نتائج الفيديو بشكل متقطّع على هاتف Samsung Galaxy S6. (I612d9، b/235127608)
- تم إصلاح مشكلة كانت تؤدي إلى أن تعرض الدالة
CameraInfo#isFeatureGroupSupportedالقيمة "صحيح" بشكل غير صحيح للسمةPREVIEW_STABILIZATIONإذا كانت السمةSessionConfigفي طلب البحث قد تم إعدادها مسبقًا باستخدام ميزات أخرى. (I2c355c، b/437816469)
الإصدار 1.5 من تطبيق "الكاميرا"
الإصدار 1.5.1
8 أكتوبر 2025
تم طرح androidx.camera:camera-*:1.5.1. يتضمّن الإصدار 1.5.1 هذه التعديلات.
إصلاح الأخطاء
- إتاحة
CameraEffectفي وضع تركيب الكاميرا المتزامن سيتم تطبيق التأثير على ناتج التركيب. يُرجى العِلم أنّه سيتم تجاهلmirrorModeفيVideoCaptureعند ضبط التأثير في وضع تركيب الكاميرا المتزامن. (If3d00، b/425565129) - تم إصلاح المشكلة المتمثّلة في عدم تطبيق
mirrorModeبشكلٍ صحيح على الكاميرا الثانوية في وضع تركيب الكاميرا المتزامن. (I686cd، b/446430827) - إتاحة ربط
PreviewوImageCaptureوVideoCaptureمعًا في وضع الكاميرا غير المتزامن وغير المركّب (Ib410a، b/443009871) - تم إصلاح مشكلة كانت تؤدي إلى فقدان معلومات تدوير الشاشة المستهدَفة في UseCases، مثل
ImageCaptureوVideoCapture، في حال إعادة إنشائها. قد يؤدي ذلك إلى ظهور الصور أو الفيديوهات باتجاه غير صحيح إذا تم تغيير إعداد مثلimageCaptureModeبعد تدوير الجهاز. (I477c8، b/444734537) - تم إصلاح مشكلة كانت تمنع تطبيق "المعاينة" من اختيار دقة 16:9 ومن التسجيل بدقة QUALITY_1080P.
VideoCaptureحدثت هذه المشكلة عند استخدام إعدادات تلقائية لدقة المعاينة أثناء تفعيل الميزة الداخليةStreamSharing(على سبيل المثال، عند ربط أربعة UseCase في الوقت نفسه). (I493cb، b/440364875) - تم إصلاح العُطل الذي يحدث عند تفعيل التأثير بعد إيقاف
SurfaceProcessor(I2c450، b/414150174) - تم إصلاح خطأ في
CameraControllerتسبّب في حدوثIllegalStateExceptionعندما اختار UseCase الأولي الحد الأقصى للدقة، ما أدّى لاحقًا إلى منع ربط UseCase الأخرى. (Ifb758، b/440374234) - يستبعد أحجام الإخراج YUV_420_888 التي تتسبّب في حدوث مشاكل في هاتف Nokia 7 Plus بدون عرض أي رسائل خطأ. (I3af47، b/436524501)
- تم إصلاح المشكلة التي كان يمكن أن تعرض فيها الدالة
CameraInfo#isFeatureGroupSupportedالقيمة "صحيح" بشكل غير صحيح للميزةPREVIEW_STABILIZATION. قد يحدث ذلك أحيانًا عند البحث باستخدامSessionConfigتم إعداده مسبقًا باستخدام ميزات أخرى. (I2c355، b/437816469) - تحسين ثبات
CameraXViewfinderعلى مستويات واجهة برمجة التطبيقات القديمة والأجهزة التي تواجه مشاكل فيSurfaceViewمن خلال استخدامTextureViewتلقائيًا في مثل هذه السيناريوهات آلية الاحتياط هذه هي الإعداد التلقائي الجديد، ولكن يمكن إلغاؤها آليًا. (Ieb476، b/437496463) - تم إصلاح تسريب الذاكرة في
PreviewViewحيث كان من الممكن أن يمنع جمع البيانات غير الضرورية من نشاطه. يحدث ذلك إذا وصلSurfaceRequestجديد قبل معالجةSurfaceRequestالسابق. (I4aa0b،b/443112512) - تم إصلاح مشكلة تعذُّر التسجيل عالي السرعة/التصوير البطيء على هواتف Huawei P smart وInfinix Hot 40i وRealme C53. (40a668e، b/442984200)
الإصدار 1.5.0
10 سبتمبر 2025
تم طرح androidx.camera:camera-*:1.5.0. يتضمّن الإصدار 1.5.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.4.0:
- التسجيل عالي السرعة والتصوير البطيء: يمكنك بسهولة دمج تسجيل الفيديو عالي السرعة (120/240 لقطة في الثانية) والتصوير البطيء بأقل قدر من الرموز البرمجية. يُرجى الرجوع إلى
Recorder#getHighSpeedVideoCapabilities(CameraInfo)وHighSpeedVideoSessionConfigللحصول على التفاصيل. - واجهة برمجة التطبيقات
SessionConfigوFeatureGroup: تتيح لك واجهة برمجة التطبيقات الجديدةSessionConfigضبط إعدادات جلسة الكاميرا وتفعيل ميزات متعددة معًا بأمان، بما في ذلك HLG (النطاق العالي الديناميكية)، وUltraHDR، و60 لقطة في الثانية، وتثبيت المعاينة. يمكنك أيضًا ضبط مجموعة ميزات مفضّلة مع تحديد الأولوية، ما يتيح لمكتبة CameraX تحديد أفضل مجموعة متوافقة. يمكنك الاطّلاع علىSessionConfig.Builder#setPreferredFeatureGroupوSessionConfig.Builder#setRequiredFeatureGroupوCameraInfo#isFeatureGroupSupported(SessionConfig)لمزيد من المعلومات. - واجهة برمجة التطبيقات Deterministic Frame Rate: يمكنك معالجة القيود السابقة باستخدام
setTargetFrameRateمن خلال استخدامCameraInfo.getSupportedFrameRateRanges(sessionConfig)لطلب البحث وSessionConfig.setExpectedFrameRateRangeلضبط معدّلات عرض اللقطات الدقيقة والمتوافقة. - إضافات الكاميرا: يتوافق تنسيق UltraHDR الآن مع الإضافات. تحقَّق من
ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats()وفعِّله فيImageCapture.Builder.setOutputFormat. تظهر الآن إمكانات نسبة التكبير/التصغير وتثبيت المعاينة عند تفعيل الإضافات. - قوة المصباح: اضبط قوة المصباح باستخدام
CameraControl.setTorchStrengthLevel. - وضع "تحسين الإضاءة المنخفضة": يمكنك تفعيل وضع "تحسين الإضاءة المنخفضة" (
CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY) باستخدام واجهات برمجة التطبيقات التالية: يُرجى الرجوع إلىCameraInfo#isLowLightBoostSupportedوCameraInfo#getLowLightBoostStateوCameraControl#enableLowLightBoostAsync. - التقاط الفيديو: يتم الآن تفعيل
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEفي حال عدم توفّر مساحة تخزين كافية أثناء التسجيل. يسمحPendingRecording.withAudioEnabled(boolean initialMuted)بالتحكّم في حالة كتم الصوت الأولية لتسجيل الصوت. - التقاط الصور: إتاحة تنسيقات DNG (RAW) وJPEG + DNG (RAW) في
ImageCaptureتحقَّق منImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats()لمعرفة ما إذا كان يتوافق مع تنسيق RAW. استخدِم واجهات برمجة التطبيقاتtakePictureالمحمّلة بشكل زائد معOutputFileOptionsمتعددة لالتقاط صور بتنسيق RAW+DNG. - تحليل الصور: إتاحة تنسيق NV21 في
ImageAnalysisيمكنك تفعيلها من خلالImageAnalysis.Builder.setOutputImageFormat(OUTPUT_IMAGE_FORMAT_NV21).
الإصدار 1.5.0-rc01
13 أغسطس 2025
تم طرح androidx.camera:camera-*:1.5.0-rc01. يتضمّن الإصدار 1.5.0-rc01 هذه التعديلات.
إصلاح الأخطاء
- تغيير الحد الأدنى التلقائي لإصدار SDK من المستوى 21 لواجهة برمجة التطبيقات إلى المستوى 23 (Ibdfca، b/380448311، b/435705964، b/435705223)
- تمت إزالة قيود الإخراج بمعدل 10 بت لوضع التعرّض التلقائي للضوء في ظروف الإضاءة المنخفضة. يمكن للتطبيقات الآن تفعيل كلتا الميزتَين في الوقت نفسه على الأجهزة المتوافقة. (I5a638)
- تم حلّ مشكلة كانت تؤدي إلى توقّف الأجهزة التي تتضمّن شرائح
UniSocعند التقاط صورة. حدثت المشكلة عند استخدامVideoCaptureوPreviewوImageCaptureفي الوقت نفسه مع ضبط جميع أحداث البث على دقة 1280x720. (Ia00c4، b/380802479) - تم إصلاح مشكلة ظهور شاشة سوداء في المعاينة عند عدم ضبط معدّل لقطات عالي السرعة لتسجيل فيديوهات عالية السرعة أو فيديوهات بالحركة البطيئة. (cdf0ff2e9)
- تحسين معالجة الأخطاء وتسجيلها في
getViewportAspectRatioInt(82fca18)
الإصدار 1.5.0-beta02
16 يوليو 2025
تم طرح androidx.camera:camera-*:1.5.0-beta02. يتضمّن الإصدار 1.5.0-beta02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهات برمجة تطبيقات جديدة لضبط مجموعات من الميزات العالية الجودة أو طلب البحث عنها بشكل أكثر سهولة ودقة، لأنّه قد لا يتم توفير هذه الميزات كمجموعة على جميع الأجهزة. يحتوي
SessionConfigالآن على واجهات برمجة تطبيقات جديدة للإشارة إلى مجموعة من الميزات على أنّها مطلوبة أو مفضّلة. تتيح واجهة برمجة التطبيقاتCameraInfo.isFeatureGroupSupportedمعرفة ما إذا كانت مجموعة ميزات متوافقة قبل ربطSessionConfig. تتيحSessionConfigأيضًا ضبط أداة معالجة لمعرفة الميزات التي تم اختيارها نهائيًا عند ربط إعدادات الجلسة. (Ie4d60) - تمت إضافة واجهتَي برمجة التطبيقات الجديدتَين
SessoinConfig.Builder.setFrameRateRange(Range<Integer>)وCameraInfo.getSupportedFrameRateRanges(SessionConfig)، ما يتيح للمطوّرين طلب معدّلات عرض إطارات متوافقة ومضمونة ومحدودة بقيمةSessionConfigمعيّنة، ثم تطبيق معدّل عرض الإطارات علىSessionConfig. (Ieacf7) - تم طرح واجهة برمجة التطبيقات الجديدة
SessionConfig، والتي تتضمّن تجريدًا أفضل لإعداد حالات الاستخدام ومعلَمات الجلسة وCameraEffectوViewPortوما إلى ذلك. يؤدي ربطSessionConfigبـ LifecycleOwner إلى فتح جلسة الكاميرا وإعدادها باستخدام حالات الاستخدام ومعلَمات الجلسة المحدّدة وتطبيقCameraEffectوViewPortالمحدّدين. عند تعديلSessionConfigجديد إلىLifecycleOwnerنفسه، يمكنك ربطSessionconfigجديد بدون الحاجة إلى استدعاء unbind أوunbindAllأولاً. (Iedfc3) - تمت إضافة واجهات برمجة تطبيقات جديدة لتسجيل فيديوهات عالية السرعة/بالتصوير البطيء. لمزيد من التفاصيل، يُرجى الاطّلاع على واجهة برمجة التطبيقات
HighSpeedVideoSessionConfig. (Ia16f3)
إصلاح الأخطاء
- تم إصلاح مشكلة في واجهة برمجة التطبيقات
ImageCaptureCapabilities#getSupportedOutputFormats()التي تعرض تنسيقات RAW على أنّها متوافقة مع بعض الأجهزة التي لا تتضمّن في الواقع إمكانية استخدام تنسيق RAW. (Ibcadb) - تم إصلاح مشكلة تسرُّب الذاكرة التي تحدث عند استخدام
PreviewViewأو تفعيلCameraEffectأو ربط 4 حالات استخدام(ميزة "مشاركة الشاشة مع الآخرين") (I87468) - تم إصلاح عُطل في تسجيل الفيديو بسبب
AssertionError: حالة الصوت الداخلي غير صالحة: IDLING. (I38d4b، b/414259796) - تم إصلاح المشكلة التي تحدث عندما يتم تشغيل التطبيق على شاشة عرض خارجية ويكون الجهاز في الوضع الأفقي، حيث يتم تمديد المعاينة في
PreviewViewأو عرضها بشكل جانبي (Ia917a) - تم إصلاح المشكلة المتمثّلة في عدم تطبيق إعدادات "تثبيت المعاينة" بشكلٍ صحيح عند مشاركة بث الكاميرا بين "المعاينة" وVideoCapture.(I5430e)
- تعمل السمة
CameraXViewfinderالآن على معالجة استبدال السطح بشكل صحيح فيViewfinderالأساسي. ويشمل ذلك سيناريوهات مثل عندما يخرج إطار عرضEXTERNALعلى المستوى 28 أو مستوى أقل من واجهة برمجة التطبيقات من الشاشة أو إذا كانCameraXViewfinder(مع أيImplementationMode) جزءًا منmoveableContentOf(). في الحالات التي لا يمكن فيها إبقاءViewfinderSurfaceSessionالأساسي نشطًا، سيؤديCameraXViewfinderإلى إبطالSurfaceRequestالحالي في CameraX، ما يسمح لـ CameraX باستخدامSurfaceالجديد. (I79432) - تم إصلاح مشكلة في نظام التشغيل Android 10 أو 11 حيث يمكن أن يظهر
EXTERNALCameraXViewfinderممدودًا أو غير صحيح بسبب تطبيق عمليات التحويل (مثل تغيير الحجم أو الترجمة) في وقت مبكر جدًا. ينتظر النظام الآن إلى أن يتم إنشاء Surface قبل تطبيق عمليات التحويل هذه في مرحلة التنسيق، ما يضمن الحصول على الناتج الصحيح. (Icc77c) - تعمل
CameraXViewfinderالقابلة للإنشاء الآن بشكلٍ صحيح معPagerفي Compose. يضمن هذا التغيير إمكانية إعادة ضبط العنصر القابل للإنشاء بنجاح من خلال تنفيذ معاودة الاتصالonResetالخاصة بـAndroidView، ما يتيح استخدام كل من عمليات التنفيذEMBEDDEDوEXTERNAL. (I0d9be) - تم إصلاح تسريب لمالك دورة الحياة يحدث عند إلغاء ربط حالات الاستخدام بمالك دورة الحياة بدون إيقاف موفّر الكاميرا.
الإصدار 1.5.0-beta01
7 مايو 2025
تم طرح androidx.camera:camera-*:1.5.0-beta01. يتضمّن الإصدار 1.5.0-beta01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP (Idb6b5)
- يمكن الآن استخدام
ContentScaleو"المحاذاة" في عدسة الكاميرا لتغيير حجم السطح المعروض ووضعه داخل الحاوية، على غرار طريقة عملandroidx.compose.foundation.Image. (Ibcea3) - يحتوي
TransformationInfoالآن على قيم تلقائية لجميع الوسيطات. سيسمح ذلك بإنشاء أدوات Viewfinder بدون أيTransformationInfo، وسيتم ضبطها تلقائيًا على تدوير المصدر بمقدار 0، وبدون عكس المصدر، وبدون مستطيل اقتصاص. (I2b1b2) - تمت إضافة
LifecycleCameraProvider، وهو موفِّر كاميرا يمكن إنشاء مثيل له بإعدادات مختلفة للميزات، مثل الوصول إلى كاميرا جهاز افتراضي من خلال الإعداد باستخدام سياق مخصّص. (Ia2992)
إصلاح الأخطاء
- تم إصلاح مشكلة توقّف المعاينة مؤقتًا عند استخدام
ImageAnalysisمع بث آخر يستخدمTEMPLATE_RECORDعلى جهاز Samsung SM-E556B. (Ic0e62، b/409478042) - تم إصلاح مشكلة توقّف المعاينة مؤقتًا عند استخدام
ImageAnalysisمع بث آخر يستخدمTEMPLATE_RECORDعلى جهاز Samsung SM-M556B. (Ic1a6a، b/395822788) - تم إصلاح مشكلة وضع NIGHT في "الإضافات الثابتة"
AssertErrorعلى أجهزة Pixel التي تعمل بنظام التشغيل Android 15 عند إجراء عمليات متعلقة بالتكبير أو التصغير. (I27a5d، b/401460276) - تم إصلاح مشكلة إحداثيات المربّع المحيط غير الصحيحة في أداة تحليل ML Kit عند استخدام
CameraController. (Iae91b، b/409808510)
الإصدار 1.5.0-alpha06
26 فبراير 2025
تم طرح androidx.camera:camera-*:1.5.0-alpha06. يتضمّن الإصدار 1.5.0-alpha06 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة
CameraInfo.getTorchStrengthLevelوCameraInfo.getMaxTorchStrengthLevelوCameraControl.setTorchStrengthLevelللسماح بتخصيص درجة سطوع المصباح اليدوي (I00878) - تمت إضافة واجهة برمجة تطبيقات جديدة
CameraController#setTapToFocusAutoCancelDurationليتمكّن المستخدمون من التحكّم في سلوك الإلغاء التلقائي لأحداثPreviewViewالنقر للتركيز. تُلغي CameraX أحداث التركيز تلقائيًا بعد 5 ثوانٍ (أي تتم إعادة ضبط تركيز الكاميرا)، وتتيح واجهة برمجة التطبيقات هذه تعديل هذه المدة أو إيقاف الإلغاء التلقائي تمامًا. (Icf59a) - تمت إعادة تسمية
FLASH_STATE_READYإلىNOT_FIRED، وتم تبسيط أسماء الثوابت الأخرىFlashStateلتسهيل قراءتها. (I8771d) - تم إتاحة واجهة برمجة التطبيقات Low Light Boost API. يمكن للأجهزة التي تعمل بالإصدار 15 من نظام التشغيل Android أو إصدار أحدث توفير دعم لميزة "تحسين الإضاءة المنخفضة". يمكن لهذه الميزة ضبط سطوع معاينة الفيديو أو الصور أو بث تحليل الفيديو تلقائيًا في ظروف الإضاءة المنخفضة. يمكن للتطبيقات استخدام واجهة برمجة التطبيقات الجديدة لإجراء ما يلي: 1. استخدِم
CameraInfo#isLowLightBoostSupportedللتحقّق من توفّر الميزة. 2- استخدِمCameraControl#enableLowLightBoostAsyncلتفعيل الوضع عندما تكون الأجهزة متوافقة معه. 3- استخدِمCameraInfo#getLowLightBoostStateلمراقبة حالة تعزيز الإضاءة المنخفضة. (I937ed) - أضِف فئات متوافقة للسماح بإجراء استعلامات أسرع غير camera2 في camera-feature-combination-query. (Ie97ee)
- بالنسبة إلى أحداث
CameraControllerالنقر للتركيز، تعرض واجهة برمجة تطبيقات جديدةgetTapToFocusInfoState()الآن موضع النقر المقابل أيضًا من خلال عرضLiveDataمن فئةTapToFocusInfo، بينما تم إيقاف واجهة برمجة التطبيقات السابقةLiveData<Integer>التي تعرضgetTapToFocusState()نهائيًا لصالح واجهة برمجة التطبيقات الجديدة. (I238d2)
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثّلة في عدم تطبيق ميزة تثبيت المعاينة عند تفعيلها باستخدام "الإضافات". (I24ad7)
- تم إصلاح مشكلة عدم إعادة ضبط حدث حالة التركيز
CameraControllerإلىTAP_TO_FOCUS_NOT_STARTEDعندما تلغي CameraX تلقائيًا حدث التركيز الذي يحدث بعد 5 ثوانٍ تلقائيًا. (I31954) - تم إصلاح مشكلة توقّف المعاينة مؤقتًا عند استخدام ميزة "سرعة الغالق الفائق" (ZSL) بعد التقاط صور متعددة بسبب موارد الصور التي لم يتم إصدارها. (Ic3c2a)
- تم إصلاح المشاكل التي تؤدي إلى ظهور فيديوهات بدقة فائقة الوضوح بلون أحمر على بعض الأجهزة عندما تتضمّن عملية المعالجة
OpenGL. (Idcedc)
الإصدار 1.5.0-alpha05
15 يناير 2025
تم طرح androidx.camera:camera-*:1.5.0-alpha05. يتضمّن الإصدار 1.5.0-alpha05 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- أضِف
VideoCapture.getSelectedQuality()لمعرفة الجودة المحدّدة استنادًا إلىQualitySelector. (I70508، b/204288986) - عندما يتم استدعاء عملية التقاط صورة باستخدام واجهة برمجة التطبيقات
ImageCapture.OnImageCapturedCallback، يمكن الآن استخدام ImageInfo فيImageProxyالذي تم عرضه لمعرفة ما إذا تم تشغيل الفلاش من خلال واجهة برمجة التطبيقات الجديدةImageInfo.getFlashState(). (Id2c61، b/380527406) - تمت إضافة إمكانية استخدام تنسيق الإخراج
OUTPUT_IMAGE_FORMAT_NV21معImageAnalysis. (I484ab) - إزالة التعليق التوضيحي التجريبي للعنصر
featurecombinationquery(I4427f) - اضبط نطاق نسبة التكبير/التصغير المسموح به في
CameraControlحسب الخصائص الخاصة بالإضافات عند تفعيل وضع الإضافات. (I85af1)
إصلاح الأخطاء
- تمت ترقية
compileSdkإلى 35 لاستخدام واجهة برمجة التطبيقات ذات الصلة بنظام التشغيل Android 15. يجب أيضًا أن تُرقّي التطبيقات التي تستخدم مكتبات CameraX إعداداتcompileSdk. (Ic80cd) - تستخدم هذه المكتبة الآن تعليقات توضيحية بشأن القيم الخالية من JSpecify، وهي تعليقات توضيحية خاصة باستخدام النوع. على مطوّري Kotlin استخدام وسيطة المترجم البرمجي التالية لفرض الاستخدام الصحيح:
-Xjspecify-annotations=strict(هذه هي القيمة التلقائية بدءًا من الإصدار 2.1.0 من مترجم Kotlin البرمجي). (Idc6c6، b/326456246)
الإصدار 1.5.0-alpha04
11 ديسمبر 2024
تم طرح androidx.camera:camera-*:1.5.0-alpha04. يتضمّن الإصدار 1.5.0-alpha04 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- عرض
ImageCapture.Builder#setOutputFormatوImageCaptureCapabilities#getSupportedOutputFormatsكواجهات برمجة تطبيقات ثابتة (Ieb04a) - أضِف
VideoCapture.getResolutionInfo()للحصول على معلومات الدقة عند ربطVideoCaptureبدورة حياة. (Icb478) - تم عرض
PreviewView.getScreenFlashوPreviewView.setScreenFlashOverlayColorكواجهات برمجة تطبيقات ثابتة. (I74fee)
إصلاح الأخطاء
- تم إصلاح مشكلة تعذُّر التقاط الصور على جهاز Vivo 1610 عند استخدام الفلاش في الظلام. (I366f4)
- تم إصلاح مشكلة إيقاف المصباح اليدوي بشكل غير متوقّع بعد التقاط صورة في هاتف Redmi Note 6 Pro. (I2e0e8، b/377144569)
- تم إصلاح مشكلة في أجهزة Pixel التي تعمل بنظام التشغيل Android 15، حيث لم يتمكّن "الوضع الليلي" في "الإضافات" من التقاط صور ثابتة إلى أن تركّز الكاميرا على جسم قريب. (I228d4)
- تم إصلاح مشكلة تعذُّر التقاط الصور الثابتة عند تفعيل الإضافات وربط
VideoCaptureمعًا. (I5c745) - تم تفعيل إمكانية التقاط صور ثابتة في الإضافات إذا كان الجهاز متوافقًا معها.
UltraHDR(I48300) - تم إصلاح مشكلة توقيت الفلاش عند التقاط الصور باستخدام الفلاش مع استهداف
CameraEffectلعمليات التقاط الصور على أجهزة TCL. (I7698c)
الإصدار 1.5.0-alpha03
30 أكتوبر 2024
تم طرح androidx.camera:camera-*:1.5.0-alpha03. يتضمّن الإصدار 1.5.0-alpha03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إضافة واجهات برمجة تطبيقات لتنسيق الإخراج RAW وRAW + JPEG
ImageCapture، ويتم عرض عملية التحقّق من إمكانات الجهاز فيImageCaptureCapabilities#getSupportedOutputFormatsيُستخدم الرمزOUTPUT_FORMAT_RAWلالتقاط صورة بتنسيق RAW، وهو تنسيق Adobe DNG، بينما يُستخدم الرمزOUTPUT_FORMAT_RAW_JPEGلالتقاط صورة بتنسيقَي RAW وJPEG في الوقت نفسه. يتم استخدام واجهة برمجة التطبيقات الجديدةImageCapture#takePictureلالتقاط الصور في الوقت نفسه، ويجب أن توفّرOutputFileOptions، الأولى لصورة بتنسيق RAW والثانية لصورة بتنسيق JPEG. (Ib0f3d)
إصلاح الأخطاء
- تم إصلاح مشكلة نقص التعرض للضوء في المعاينة والفيديو على أجهزة TCL عند تفعيل
VideoCapture. (Id7a64) - تم إصلاح المشكلة التي لا يتم فيها الحصول على إحداثيات المستشعر الصحيحة عند استدعاء
startFocusMeteringباستخدامPreviewView.getMeteringPointFactoryعندما يكون التأثير مفعّلاً أو عندما تكون 4 حالات استخدام مرتبطة (مشاركة البث). (I916c5، b/345993685) - تم إصلاح مشكلة عدم تشغيل حدث
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEعند تسجيل فيديو وعدم توفّر مساحة تخزين كافية. (I35779، b/356399842)
الإصدار 1.5.0-alpha02
2 أكتوبر 2024
تم طرح androidx.camera:camera-*:1.5.0-alpha02. يتضمّن الإصدار 1.5.0-alpha02 هذه التعديلات.
الميزات الجديدة
- واجهات برمجة تطبيقات جديدة للاستعلام عن ميزات الكاميرا المتوافقة مع الجهاز على سبيل المثال، التحقّق مما إذا كان يمكن تفعيل HDR و60FPS في الوقت نفسه. يتضمّن عنصرَين: camera-feature-combination-query وcamera-feature-combination-query-play-services.
هذا إصدار متوافق من واجهة برمجة التطبيقات
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupportedالخاصة بـ camera2 مع بيانات إضافية تقدّمها "خدمة Google Play".
إصلاح الأخطاء
- تم إصلاح مشكلة
Preview/VideoCaptureعدد اللقطات المستهدَف في الثانية على الأجهزة ذات مستوى الأداء LEGACY. كان يتم دائمًا استبدال معدّل اللقطات المستهدَف الذي تم ضبطه من خلال واجهة برمجة التطبيقاتsetTargetFrameRateأوCamera2Interopبالقيمة التي توفّرهاAeFpsRangeLegacyQuirk. باستخدام هذا الإصلاح، ستلتزم مكتبة CameraX بالقيمة التي تم ضبطها من خلال واجهة برمجة التطبيقاتsetTargetFrameRateأوCamera2Interop. (Ie2d32) - تمت إضافة وظائف الفلاش/المصباح/3A لالتقاط الصور باستخدام
CameraEffect. من المفترض الآن أن تخضع الصور الملتقطة باستخدامCameraEffectلعمليات المعالجة نفسها قبل وبعد الالتقاط (مثل تشغيل الفلاش، وتوافق 3A وما إلى ذلك عند الاقتضاء) كما هو الحال عند التقاط الصور بدون أيCameraEffect. (I5ff30) - تم استبعاد أحجام الإخراج التي تتضمّن مشاكل في
ImageAnalysisعلى جهاز Samsung SM-A057G. عندما تستخدمImageAnalysisدقة أكبر من أو تساوي 1920x1440، سيؤدي ذلك إلى حدوث مشكلة في المعاينة السوداء. تم تطبيقExcludedSupportedSizesQuirkعلى الجهاز SM-A057G لتجنُّب المشكلة. (I63dfe، b/365877975) - تم حلّ مشكلة
Preview/VideoCaptureعدد اللقطات المستهدَف في الثانية عند تفعيل آلية مشاركة البث داخليًا لمشاركة بث معPreviewوVideoCapture. (I4fdac) - تم تفعيل الحلّ البديل لإصلاح مشكلة البيانات الوصفية غير الصحيحة لصور JPEG على أجهزة Samsung S10e وS10+. باستخدام الإصلاح، يمكن لـ CameraX حفظ صورة JPEG بنجاح، أو يمكن عرض كائنات Bitmap الصحيحة عند استدعاء الدالة
ImageProxy.toBitmap()على هذه الأجهزة في حال حدوث مشكلة البيانات الوصفية غير الصحيحة لصورة JPEG. (Iae493، b/356428987) - تم إيقاف الإضافات لكاميرا Samsung A52s الخلفية التي تحمل المعرّف 0، لأنّه قد تحدث أعطال أصلية عند التقاط صور بنطاق عالي الديناميكية وقد يتعذّر إعداد جلسات الالتقاط في الوضعَين BOKEH أو FACE_RETOUCH. (I03ec9، b/364152642)
- تم إصلاح مشكلة عدم تشغيل حدث
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEعند تسجيل فيديو وعدم توفّر مساحة تخزين كافية. (Ia5b4f، b/356399842) - تم إصلاح المشكلة التي تتسبّب في تعذُّر محاولة تسجيل الفيديو الثانية على هاتف Oppo A5 (CPH1931). (I181d6)
الإصدار 1.5.0-alpha01
4 سبتمبر 2024
تم طرح androidx.camera:camera-*:1.5.0-alpha01. يتضمّن الإصدار 1.5.0-alpha01 هذه التعديلات.
الميزات الجديدة
- تم إصدار عنصر جديد،
camera-compose، لـ CameraX Viewfinder Compose Adapter الذي يعرض بث "معاينة" من CameraXSurfaceRequestمنcamera-core. (I8666e) - تمت إضافة عنصر جديد قابل للإنشاء،
CameraXViewfinder، يعمل كعنصر قابل للإنشاء اصطلاحي يكيّف عناصرSurfaceRequestفي CameraX مع العنصر القابل للإنشاءViewfinder. (I4770f)
تغييرات واجهة برمجة التطبيقات
- توفير واجهة برمجة تطبيقات لضبط إعدادات التركيب لتسجيل الفيديو باستخدام كاميرتَين متزامنتَين تتضمّن الإعدادات قيمة ألفا للمزج والإزاحة في الإحداثيات x وy ومقياس عرض وارتفاع نافذة عرض إطار الكاميرا. يتم تحديد الإزاحة والعرض والارتفاع في إحداثيات الجهاز العادية. (Ia2b8a)
- تم عرض
CameraProvider.getCameraInfoليكون واجهة برمجة تطبيقات رسمية. (I901cd) - تمت إضافة واجهة برمجة التطبيقات
PendingRecording.withAudioEnabled(boolean initialMuted)للتحكّم في حالة كتم الصوت الأولية. (I635c3، b/354829267)
إصلاح الأخطاء
- تم إصلاح الخطأ الذي كان يؤدي إلى تعطُّل التطبيق عند استدعاء
bindToLifecycleباستخدامLifecycleOwnerتم إتلافه. (I6e6d8) - تم إصلاح مشكلة ظهور شاشة سوداء في وضع "المعاينة الثابتة" عند استخدام الكاميرا الأمامية أثناء الربط باستخدام
VideoCaptureعلى هاتف Motorola Edge 20 Fusion. (I1fe88) - تم تحسين الإعدادات لاكتشاف إيماءات التكبير/التصغير في
PreviewViewلتحسين سلاسة الاستخدام. (I04ffc)
الإصدار 1.4 من تطبيق "الكاميرا"
الإصدار 1.4.2
26 مارس 2025
تم طرح androidx.camera:camera-*:1.4.2. يتضمّن الإصدار 1.4.2 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة توقّف المعاينة مؤقتًا عند استخدام
ImageAnalysisمع بث آخر يستخدمTEMPLATE_RECORDعلى هاتف Samsung Galaxy M55. (Ic1a6a، b/395822788)
الإصدار 1.4.1
11 ديسمبر 2024
تم طرح androidx.camera:camera-*:1.4.1. يتضمّن الإصدار 1.4.1 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة في أجهزة Pixel التي تعمل بنظام التشغيل Android 15، حيث لم يتمكّن "الوضع الليلي" في "الإضافات" من التقاط صور ثابتة إلى أن تركّز الكاميرا على جسم قريب. (I228d4)
- تم إصلاح مشكلة تعذُّر عمل
ImageCapture#takePictureعند تفعيل الإضافات وربطVideoCaptureمعًا. (I5c745)
الإصدار 1.4.0
30 أكتوبر 2024
تم طرح androidx.camera:camera-*:1.4.0. يتضمّن الإصدار 1.4.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.3.0
يتضمّن الإصدار 1.4.0 من CameraX تحديثات رائعة. إليك موجز بأهم التفاصيل:
الميزة الرئيسية: فيديو 10 بت بنطاق HDR:
- التقِط صورًا وفيديوهات مذهلة بنطاق عالي الديناميكية (HDR) بسهولة.
- يتوافق مع ترميز HLG وHEVC 10 بت.
- الاستفادة من معاينة فيديو 10 بت بنطاق HDR والاستعلام عن إمكانات الجهاز
- تعمل هذه الميزة مع صور
UltraHDRوفيديوهات HDR على مجموعة متزايدة من الأجهزة.
ميزات رائعة أخرى:
- إضافات Kotlin: تمت إضافة دالّتَي التعليق
takePictureوawaitInstance. - التأثيرات في الوقت الفعلي: يمكنك تطبيق تأثيرات، مثل العلامات المائية وتمييز العناصر.
- CameraController API: عناصر تحكّم جديدة لضبط إعدادات تسجيل الفيديو
- تثبيت المعاينة: الاستعلام عن إمكانات الجهاز وتفعيل التثبيت
- تحسينات على VideoCapture: تحكّم أدق في الجودة وإمكانية الوصول إلى درجات دقة أعلى
- دمج إضافات CameraX: دمج سلس مع
VideoCaptureوميزاتImageCaptureالجديدة - واجهة برمجة التطبيقات Shutter Sound API: يمكنك التحقّق بسهولة من متطلبات صوت غالق الكاميرا في المنطقة.
- فلاش الشاشة: تحسين الصور الملتقطة بالكاميرات الأمامية في الإضاءة المنخفضة
- واجهات برمجة التطبيقات الخاصة ببيانات وصفية لإضافات الكاميرا: واجهات برمجة تطبيقات مساعدة لتعديل قوة الإضافات وتلقّي إشعار بشأن وضع الإضافات الحالي في
ExtensionMode#AUTOيمكنك العثور على المزيد من إصلاحات الأخطاء في إشعارات الإصدار التجريبي وإصدار المرشّح.
الإصدار 1.4.0-rc04
16 أكتوبر 2024
تم طرح androidx.camera:camera-*:1.4.0-rc04. يتضمّن الإصدار 1.4.0-rc04 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح المشكلة التي لا يتم فيها الحصول على إحداثيات المستشعر الصحيحة عند استدعاء
startFocusMeteringباستخدامPreviewView.getMeteringPointFactoryعندما يكون التأثير مفعّلاً أو عندما تكون 4 حالات استخدام مرتبطة (مشاركة البث). (I916c5، b/345993685)
الإصدار 1.4.0-rc03
2 أكتوبر 2024
تم طرح androidx.camera:camera-*:1.4.0-rc03. يتضمّن الإصدار 1.4.0-rc03 هذه التعديلات.
إصلاح الأخطاء
- تمت إضافة وظائف الفلاش/المصباح/3A لالتقاط الصور باستخدام
CameraEffect. من المفترض الآن أن تخضع الصور الملتقطة باستخدامCameraEffectلعمليات المعالجة نفسها قبل وبعد الالتقاط (مثل تشغيل الفلاش، وتوافق 3A وما إلى ذلك عند الاقتضاء) كما هو الحال عند التقاط الصور بدون أيCameraEffect. (I5ff30) - تم تحسين سلاسة التكبير والتصغير بإصبعين في
PreviewView(I04ffc) - إلغاء ربط ميزة Ultra HDR بإمكانية إخراج 10 بت، لأنّ استخدام ميزة Ultra HDR لم يعُد يتطلّب أن تتوفّر في الأجهزة إمكانية إخراج 10 بت (I96ff2، I0c3b3)
الإصدار 1.4.0-rc02
18 سبتمبر 2024
تم طرح androidx.camera:camera-*:1.4.0-rc02. يتضمّن الإصدار 1.4.0-rc02 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح الخطأ الذي كان يؤدي إلى تعطُّل التطبيق عند استدعاء
bindToLifecycleباستخدامLifecycleOwnerتم إتلافه. (I6e6d8) - تمت إضافة رسم متحرك للظهور في
ScreenFlashViewمن أجلScreenFlash#apply، ما يؤدي أيضًا إلى إصلاح الأخطاء الناتجة عن اكتمال تغيير السطوع بشكل غير متزامن بعد مرور بعض الوقت. (I37cdb) - تحسين سلاسة التكبير والتصغير من خلال تجاهل إعدادات التكبير والتصغير في إطار العمل على الأجهزة المتوافقة
الإصدار 1.4.0-rc01
7 أغسطس 2024
تم طرح androidx.camera:camera-*:1.4.0-rc01. يتضمّن الإصدار 1.4.0-rc01 هذه التعديلات.
الميزات الجديدة
- تمت إضافة
CameraInfo.getCameraInfoالتجريبية لتوفير معلومات محدّدة عن الكاميرا بدون الحاجة إلى ربط حالات الاستخدام بالكاميرا. (I550d1)
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهتَي برمجة التطبيقات
PreviewView.getScreenFlashوPreviewView.setScreenFlashOverlayColorللحالات التي لا تتم فيها إضافةScreenFlashViewبشكل صريح. (I43945)
إصلاح الأخطاء
- تم إصلاح مشاكل التعرّض للضوء وتدرّج الألوان عند التقاط صورة مع تفعيل الفلاش في ظروف الإضاءة المنخفضة مع ربط حالة استخدام VideoCapture. (Ic9814)
- تم إصلاح المشكلة التي تؤدي إلى تعذُّر الحصول على نتيجة عند مقاطعة طلب
takePictureمع تفعيل الإضافات، كما تم إصلاح المشكلة التي تؤدي إلى توقّف طلبtakePictureالتالي عن العمل. (Iae78f) - تم إصلاح مشكلة تسريب الذاكرة التي تحدث عند تفعيل الإضافات. (Iab276)
- تم إصلاح عطل في إضافات CameraX على أجهزة، مثل Pixel 7 وPixel 8 وسلسلة هواتف Samsung Galaxy S24. ظهرت المشكلة، التي تنشأ عن مشكلة في تحويل
Camera2OutputConfigImplفي وضع الإصدار، بعد ترقية "مكوّن Android الإضافي في Gradle" إلى الإصدار 8.5.1 وتفعيل التصغير. (I99598، b/354824993)
الإصدار 1.4.0-beta02
12 يونيو 2024
تم طرح androidx.camera:camera-*:1.4.0-beta02. يتضمّن الإصدار 1.4.0-beta02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- على غرار
VideoCapture، أضِفsetMirrorModeلحالة استخدام "المعاينة". سيتيح تفعيل وضع المرآة وإيقافه لتدفق المعاينة من خلالOutputConfiguration.setMirrorModeبدءًا من المستوى 33 لواجهة برمجة التطبيقات والإصدارات الأحدث، ولن يكون له أي تأثير في واجهات برمجة التطبيقات القديمة. (I821f4)
إصلاح الأخطاء
- تم إصلاح المشكلة التي تمنع التطبيقات من التقاط الصور بنجاح على جهاز Samsung Tab A8 عندما يختار
ImageCaptureالدقة 1920x1080 ضمن مجموعةPreview+VideoCapture+ImageCaptureUseCase. (I5a463، b/336925549) - تم إصلاح مشكلة عدم إمكانية مواصلة التسجيل المستمر بعد تبديل الكاميرا. (Icb0a1)
الإصدار 1.4.0-beta01
14 مايو 2024
تم طرح androidx.camera:camera-*:1.4.0-beta01. يتضمّن الإصدار 1.4.0-beta01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة
ZoomGestureDetector.ZoomEventلتغليف حالات إيماءة التكبير أو التصغير. (I84cdf)
إصلاح الأخطاء
- تم إصلاح خطأ كان يتسبب في عدم استخدام ميزة "التقاط الصور" و"النقر للتركيز" لقيم وضع التثبيت/عدد اللقطات في الثانية في الطلب المتكرر، ما قد يؤدي إلى إعادة إنشاء جلسة الالتقاط وحدوث مشاكل في زمن الاستجابة أو تجمُّد "المعاينة" في بعض الأجهزة. (I7dc0b)
- تم إصلاح الخطأ الذي لا يمكن فيه اختيار "دقة عالية" عند تفعيل
CameraEffectعلى بعض الأجهزة. (مثلاً، 4000x3000 على هاتف Samsung A32 5G). (Ie3ed3، b/337336152) - تم إصلاح عُطل كان يحدث عند التقاط صورة باستخدام "المعاينة"، حيث تم ربط
ImageCaptureوVideoCapture(UHD)على هاتف Pixel 4XL API29. (I5b288) - إتاحة الأجهزة الافتراضية: سيحتفظ السياق الذي يتم تمريره إلى
ProcessCameraProviderبرقم تعريف الجهاز لضمان عمل الوظيفة في بيئة جهاز افتراضي. (I5ba48)
الإصدار 1.4.0-alpha05
17 أبريل 2024
تم طرح androidx.camera:camera-*:1.4.0-alpha05. يتضمّن الإصدار 1.4.0-alpha05 هذه التعديلات.
الميزات الجديدة
- تم تحويل
ProcessCameraProviderإلى تنفيذ بلغة Kotlin. (I46d4f) - تمت إضافة
ImageCapture.takePictureدوال تعليق للسماح باستدعائها بطريقة متوافقة مع Kotlin. (I920be)
تغييرات واجهة برمجة التطبيقات
- أضِف واجهات برمجة تطبيقات لتنسيق الإخراج إلى
ImageCapture، وأضِف طريقةgetSupportedOutputFormatsإلىImageCaptureCapabilitiesللاستعلام عن إمكانات الجهاز. قيمة تنسيق الإخراج التلقائي هيOUTPUT_FORMAT_JPEG، والتي تلتقط صور النطاق العادي الديناميكية (SDR) بتنسيق JPEG. عندما يتيح الجهاز دقة Ultra HDR ويتم ضبط تنسيق الإخراج علىOUTPUT_FORMAT_JPEG_ULTRA_HDR، ستلتقط CameraX صورًا مضغوطة بدقة Ultra HDR باستخدام تنسيق الصور JPEG/R. يتوافق التنسيق مع تنسيق JPEG العادي، ويتيح عرض المحتوى بتقنية HDR. وهذا يعني أنّه في التطبيقات أو الأجهزة القديمة، تظهر الصور بسلاسة بتنسيق JPEG العادي، بينما تظهر الصور بتنسيق HDR في التطبيقات والأجهزة التي تم تعديلها لتتوافق مع التنسيق بالكامل. (I5de50) - إضافة
PhysicalCameraInfoفيCameraInfoللاستعلام عن معلومات الكاميرا المادية وإضافة دالة ضبط/جلب معرّف الكاميرا المادية فيCameraSelector(Ic5b90) - استبدِل
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCEDبـImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. تبقى قيمة الثابت كما هي. يتم ذلك لدمج جميع الثوابت في مكان واحد. (I890bb) - تتيح واجهة برمجة التطبيقات الجديدة
RetryPolicyللمطوّرين تخصيص سلوك إعادة المحاولة عند إعداد CameraX. (I36dd2) - تفعيل إنشاء عنصر
ImageCaptureLatencyEstimateللمساعدة في إمكانية الاختبار (Iaba99) - أضِف
ImageAnalysis#COORDINATE_SYSTEM_SENSOR. عند استخدام هذا الخيار، تعرض السمةMlKitAnalyzerإحداثيات في نظام إحداثيات مستشعر الكاميرا. (I3ec61) - تم إتاحة واجهة برمجة تطبيقات البيانات الوصفية للإضافات. تتيح واجهتا
CameraExtensionsInfoوCameraExtensionsControlالجديدتان للتطبيقات مراقبة إعدادات قوة الإضافة وتعديلها. يمكن للتطبيقات الحصول على مثيلCameraExtensionsInfoأوCameraExtensionsControlمن خلال الطريقتَينExtensionsManager#getCameraExtensionsInfo()أوExtensionsManager#getCameraExtensionsControl()اللتَين تمت إضافتهما حديثًا. (I28e1a) - تمت إضافة
ProcessCameraProvider.awaitInstanceوهو إصدار تعليق منProcessCameraProvider.getInstance(Ib22b9) - أضِف واجهة برمجة تطبيقات
PreviewView#getSensorToViewTransform(). تمثّل المصفوفة عملية التحويل من إحداثيات مستشعر الكاميرا إلى إحداثياتPreviewView. ويمكن استخدامها لتحويل الإحداثيات منUseCaseإلى آخر. على سبيل المثال، تحويل إحداثيات الأجسام التي تم رصدها فيImageAnalysisإلى تراكبPreviewView(I947ab) - اجعل واجهة برمجة التطبيقات
camera-viewfinder-coreأكثر عمومية حتى يمكن استخدامها من قِبلcamera-viewfinderوcamera-viewfinder-compose. (I1e295) - إضافة الدالة
getSurfaceإلىViewfinderSurfaceRequest(I781a0) - استخدِم
camera-viewfinder-coreفيcamera-viewfinderوأوقِفViewfinderSurfaceRequestوCameraViewfinderنهائيًا. (I6198c) - تمت إضافة
ZoomGestureDetectorيفسّر إيماءات تغيير الحجم التي تم ضبطها خصيصًا لنشاط التكبير والتصغير. (Ifafbf)
إصلاح الأخطاء
- تم إصلاح مشكلة اختيار الدقة
ImageAnalysisالمتعلقة بإعداد الدقة التلقائية المستهدَفة لأداة التحليل: تم الاحتفاظ بالدقة المستهدَفة بشكلٍ غير صحيح على 640x480 حتى إذا كانت التطبيقات قد ضبطت إعدادًا مختلفًا للدقة التلقائية لأداة التحليل. إذا واجهت التطبيقات هذه المشكلة (1.3.0 ~ 1.3.2) وتعذّر عليها الترقية لاستخدام الإصدارات الأحدث التي تتضمّن الحلّ، يمكن حلّ هذه المشكلة من خلال ضبطResolutionSelectorمباشرةً بالدقة المفضّلة وAspectRatioStrategyمطابق لـImageAnalysisUseCase. (I81f72، b/330091012) - تم إصلاح مشكلة قد تؤدي إلى تعذُّر تنفيذ طلب
takePictureفي قائمة الانتظار إذا تعذّر تنفيذ الطلب الحالي. (Ie0801) - تطبيق عملية التحقّق من صحة بيانات JPEG غير الصالحة على أجهزة Vivo X60 وX60 Pro يمكن أن يؤدي ذلك إلى حلّ مشكلة الصور الكبيرة بشكل غير طبيعي على هذه الأجهزة. (I82247، b/288828159)
- تم إصلاح مشكلة البيانات الوصفية غير الصحيحة لصور JPEG على أجهزة Samsung A24. بعد تطبيق هذا الحلّ، يمكن لمكتبة CameraX حفظ صورة JPEG بنجاح، أو يمكن عرض عناصر Bitmap الصحيحة عند استدعاء الدالة
ImageProxy.toBitmap()على أجهزة Samsung A24. (I8d6eb، b/309005680) - تفعيل عملية التحقّق من صحة بيانات JPEG غير الصالحة على جميع أجهزة Samsung إذا كانت الصورة الملتقطة أكبر من 10 ميغابايت يمكن أن يؤدي ذلك إلى حلّ مشكلة الصور الكبيرة بشكل غير طبيعي على أجهزة Samsung. (Ic2a65، b/288828159)
- تمت إزالة دعم
ImageAnalysisفي CameraX Extensions لأنّ العديد من عمليات تنفيذ Extensions من الشركات المصنّعة للمعدات الأصلية لا تعمل بشكل جيد معImageAnalysisوقد تتسبّب في حدوث مشاكل غير متسقة. (I2d926)
الإصدار 1.4.0-alpha04
24 يناير 2024
تم طرح androidx.camera:camera-*:1.4.0-alpha04. يتضمّن الإصدار 1.4.0-alpha04 هذه التعديلات.
الميزات الجديدة
- عنصر جديد: camera-effects: مكتبة لتطبيق تأثيرات في الوقت الفعلي على مخرجات CameraX، بما في ذلك
Previewو/أوVideoCaptureو/أوImageCapture. يحتوي هذا العنصر على عمليات تنفيذ OpenGL لواجهة برمجة التطبيقاتCameraEffectالتي تعالج ناتج الكاميرا بكفاءة. -
OverlayEffect: لرسم التراكبات باستخدام واجهة برمجة التطبيقات Canvas API في Android يسمح هذا الإذن للتطبيق بتطبيق علامة مائية أو تمييز العناصر التي تم رصدها في مخرجات الكاميرا. DynamicRangeواجهات برمجة التطبيقات الخاصة بحالة الاستخدام "المعاينة": يمكن الآن ضبط النطاق الديناميكي في حالة الاستخدام "المعاينة" بشكل مستقل عن حالة الاستخدام "الفيديو". يتيح ذلك نطاقات HDR الديناميكية، مثل HLG10، للمعاينة فقط. تتوفّر أيضًا واجهات برمجة تطبيقات جديدة فيCameraInfoللاستعلام عن النطاقات الديناميكية التي تتوافق معها كل كاميرا.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية
ScreenFlashUiCompleterإلىScreenFlashListenerونقلScreenFlashUiCompleter#getExpirationTimeMillisإلى المَعلمةexpirationTimeMillisفيScreenFlash#apply. (I13944) - تمت إضافة واجهات برمجة تطبيقات جديدة للسماح بضبط النطاق الديناميكي في حالة استخدام "المعاينة"، وللاستعلام عن النطاقات الديناميكية التي تتيحها كل كاميرا. يتيح ذلك استخدام النطاقات الديناميكية العالية الدقة (HDR)، مثل HLG10، مع حالة استخدام "المعاينة" وحدها، بدون الحاجة إلى ربط
VideoCaptureفي الوقت نفسه. (If25e3) - تمت إعادة تسمية
getMirroring()إلىisMirroring()(I47063) - تمت إضافة إمكانية تقدير وقت الاستجابة لالتقاط الصور الثابتة في الوقت الفعلي في CameraX. تتيح إضافات الكاميرا للتطبيقات استخدام واجهة برمجة تطبيقات تقدّم تقديرًا لمدة استغراق عملية الالتقاط. يأخذ التقدير في الاعتبار ظروف البيئة الحالية وحالة الكاميرا، ويتضمّن الوقت المستغرَق في معالجة طلبات التقاط اللقطات المتعددة بالإضافة إلى أي وقت إضافي لترميز المخازن المؤقتة المعالَجة إذا لزم الأمر. (I05c3a)
- تمت إعادة تسمية
ScreenFlashUiControlإلىScreenFlash، وScreenFlashUiControl#applyScreenFlashUiإلىScreenFlash#apply، وScreenFlashUiControl#clearScreenFlashUiإلىScreenFlash#clear، وتمت إضافة طريقةgetScreenFlashUiApplyTimeoutSecondsبدلاً من عرضSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDSمباشرةً. (Iccdd0)
إصلاح الأخطاء
- تم إصلاح مشكلة تسريب الذاكرة التي تؤدي إلى عدم إيقاف الأنشطة أو الأجزاء عند تفعيل الإضافات (I14215)
- تم إصلاح المشكلة التي كانت تؤدي إلى عرض
getZoomRatioلقيمة منخفضة بشكل غير صحيح عند تطبيق نسبة تكبير متزايدة. (I4aa0d، b/317543616) - يتم استدعاء حدث
ImageCapture#ScreenFlash#clearعلى الفور عند إلغاء ربطImageCaptureأو إغلاق الكاميرا، كما يتم إصلاح بعض الأخطاء التي لا يتم استدعاؤها مطلقًا بسبب عدم اكتمال عمليات الالتقاط بشكل صحيح في هذه السيناريوهات. (If99f9) - تم إصلاح الخطأ الذي يحدث عند إيقاف دورة الحياة قبل اكتمال طلب
takePicture(Idf017، b/306202751) - تم إصلاح المشكلة التي يصبح فيها معاينة الكاميرا باللون الأسود عند تفعيل الإضافات على بعض الأجهزة (I1ffd0)
- تم إصلاح مشكلة المدة غير الصحيحة لتسجيل الفيديو على الأجهزة التي تستخدم نظام Snapdragon 778G على الشريحة. (If6aa7، b/316057919)
الإصدار 1.4.0-alpha03
13 كانون الأول (ديسمبر) 2023
تم طرح androidx.camera:camera-*:1.4.0-alpha03. يتضمّن الإصدار 1.4.0-alpha03 هذه التعديلات.
الميزات الجديدة
- تمت إضافة
CameraInfo.mustPlayShutterSoundلتوفير معلومات حول ما إذا كان يجب تشغيل صوت الغالق وفقًا للقيود الإقليمية. (Ifda84) - تمت إضافة
OnImageCapturedCallback.onCaptureStartedوOnImageSavedCallback.onCaptureStartedلإرسال إشعار عند بدء الكاميرا في عرض إطار. ننصح بتشغيل صوت زرّ الالتقاط أو تحريك زرّ الالتقاط في هذه المرحلة. (Ic49b3) - تمت إضافة ميزة "وميض الشاشة" في CameraX لالتقاط الصور بالكاميرا الأمامية. ستتولّى CameraX معالجة واجهة برمجة التطبيقات من جهة إطار العمل ومزامنة التوقيت مع تغييرات واجهة المستخدم للتطبيق حسب الحاجة (مثل تشغيل عملية الالتقاط المسبق للتعرّض التلقائي بعد تغيير لون/سطوع شاشة التطبيق). ما على التطبيقات سوى إضافة عمليات التنفيذ الخاصة بواجهة المستخدم في واجهة
ScreenFlashUiControlالتي يتم توفيرها إلى CameraX. (I8ae84) - تمت إضافة إمكانية تنفيذ ميزة "وميض الشاشة" من جهة واجهة المستخدم في CameraX. ستتمكّن التطبيقات من الحصول على تنفيذ أساسي لـ
ImageCapture.ScreenFlashUiControlمنPreviewViewأوScreenFlashViewالذي تمت إضافته حديثًا، ما سيؤدي إلى إضافة عرض تراكُب أحادي اللون وزيادة سطوع الشاشة إلى أقصى حد أثناء التقاط الصور باستخدام وميض الشاشة. (I1810e)
تغييرات واجهة برمجة التطبيقات
- إتاحة ميزات جديدة في "الإضافات" (عملية المعاينة بعد الالتقاط وتتبُّع تقدُّم عملية الالتقاط): تمت إضافة واجهات برمجة تطبيقات
ImageCapture#getImageCaptureCapabilities()لتتمكّن التطبيقات من طلب البحث عن إمكانات المعاينة بعد الالتقاط وتتبُّع تقدُّم عملية الالتقاط. يمكن للتطبيقات تفعيل ميزة "العرض بعد اكتمال التحميل" باستخدامImageCapture.Builder#setPostviewEnabled(). يمكن اختيار حجم العرض بعد النقر باستخدامImageCapture.Builder#setPostviewResolutionSelector(). عند استدعاءtakePicture()، يمكن تنفيذonPostviewBitmapAvailableوonCaptureProcessProgressedفيOnImageSavedCallbackأوOnImageCapturedCallbackللحصول على إشعار ما بعد العرض ومعالجة التقدم إذا كان ذلك متاحًا. (I5cd88) - واجهات برمجة التطبيقات لحساب تحويل الإحداثيات من جهاز الاستشعار إلى المخزن المؤقت الحالي، مع علامة تشير إلى ما إذا كان Surface يحتوي على معلومات اتجاه الكاميرا (I59096)
- عرض واجهة برمجة التطبيقات للاستعلام عن
PreviewCapabitlityفي الإصدار التجريبيUseCase(Ie5b6c) - تمت إضافة واجهات برمجة تطبيقات لتوفير المزيد من السمات الخاصة بـ
VideoCapture. يمكن استخدامRecorder.Builder#setVideoCapabilitiesSource(int)معVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIESلإنشاء مثيلRecorderيتوافق مع المزيد من السمات مقارنةً بـVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE. من حالات الاستخدام الشائعة أن يسعى التطبيق إلى تسجيل فيديو بدقة فائقة كلما أمكن ذلك، ولكنCamcorderProfileللجهاز لا يتضمّن إعدادات الدقة الفائقة، على الرغم من أنّ برنامج الترميز قادر على تسجيل فيديو بدقة فائقة. (Iedbe2، b/263961771) - أضِف دالة جلب/ضبط تنسيق الإخراج
ImageAnalysisإلىCameraController. (I9a96c، b/308240643)
إصلاح الأخطاء
- من الكاميرا
1.3.1: تم تحسين أداءProcessCameraProvider#bindToLifecycle(). التغيير الرئيسي هو تحسين عملية تحديد مجموعات الأحجام الأنسب لـUseCases. تختلف النتائج المثالية استنادًا إلى مجموعاتUseCaseالمحدّدة وعدد أحجام الإخراج المتوافقة مع الأجهزة المستهدَفة. (I454f2) - السماح باستخدام
VideoCaptureعندما تكون "الإضافات" مفعَّلة (I91f32) - تم إصلاح مشكلة ظهور صور JPEG كبيرة تم التقاطها على أجهزة Samsung من السلسلتين A71 وM51. تحتوي صور JPEG التي تم التقاطها على بيانات حشو مكرّرة من الأصفار في جزء بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن يكون حجم ملف الصور الملتقطة كبيرًا جدًا. ستتم إزالة بيانات الحشو المتكررة التي تتضمّن أصفارًا لجعل أحجام ملفات الصور الملتقطة عادية. (I01afc، b/288828159)
- أوقِف إمكانية استخدام
ImageAnalysisعلى هواتف Pixel لتجنُّب الخطأ الذي يظهر على هواتف Pixel والذي يعرض عن طريق الخطأ الأحجام المتوافقة معImageAnalysisغير الفارغة. (I7ec31) - تم إصلاح مشكلة الأداء التي تؤدي إلى زيادة الحمل على وحدة المعالجة المركزية واستهلاك الطاقة عند تفعيل الإضافات. (Ibdccb)
- تمت إضافة Snapdragon 480 إلى
CameraUseInconsistentTimebaseQuirk. يحلّ هذا التحديث مشكلة في الإصدار 12 من نظام التشغيل Android على الأجهزة التي تستخدم مجموعة الشرائح هذه، حيث يتم إزاحة الصوت في التسجيلات بمقدار الوقت الذي يكون فيه الجهاز في حالة تعليق. (I58010)
الإصدار 1.4.0-alpha02
18 أكتوبر 2023
تم طرح androidx.camera:camera-*:1.4.0-alpha02. يتضمّن الإصدار 1.4.0-alpha02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- أعِد تسمية واجهة برمجة التطبيقات إلى
setCameraOpenRetryMaxTimeoutInMillisWhileResumingوأعِد تسمية الوسيطة. (I72370) - إضافة واجهات برمجة تطبيقات للاستعلام عن إمكانات الجهاز وتفعيل تثبيت الفيديو/المعاينة (I87544)
- توفير واجهة برمجة تطبيقات لتخصيص الحد الأقصى لوقت المهلة لإعادة محاولة فتح الكاميرا (I0c642)
- تم إصدار
ProcessCameraProvider.shutdownAsyncكواجهة برمجة تطبيقات اختبارية متاحة للجميع للسماح باستخدام موفّر الكاميرا في الاختبار في مجموعات الاختبار التي قد تحتاج إلى تهيئة CameraX بطرق مختلفة بين الاختبارات. (I9eca7) - إضافة واجهات برمجة تطبيقات لإعداد النطاق الديناميكي ومعدّل اللقطات في الثانية ووضع المرآة لالتقاط الفيديو (Ifb8f7)
- إيقاف
OutputSizeنهائيًا واستبداله بـResolutionSelectorResolutionSelectorهي طريقة أكثر شمولاً لاختيار درجات الدقة، وهي تتوافق مع واجهة برمجة التطبيقات camera-core. (I93abd، b/286801438)
إصلاح الأخطاء
- تم إصلاح مشكلة المعاينة السوداء على هاتف Samsung Galaxy S23 Ultra 5G عند تفعيل ميزة "تأثير البوكيه" أو "تنقيح الوجه" في "الإضافات" مع تفعيل
ImageAnalysisعلى الكاميرا الخلفية. (I2e8b1) - تم إصلاح المشاكل المتعلّقة بالمعاينة الثابتة و
VideoCaptureعلى هاتف Moto E5 Play. (73dce2)
الإصدار 1.4.0-alpha01
20 سبتمبر 2023
تم طرح androidx.camera:camera-*:1.4.0-alpha01. يتضمّن الإصدار 1.4.0-alpha01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إضافة واجهة برمجة تطبيقات جديدة للوصول إلى معلومات سعة الصوت أثناء التسجيل (Id4925)
إصلاح الأخطاء
- تحسين ثبات الإضافات من خلال التأكّد من تفعيل أحداث التهيئة وإلغاء التهيئة بالترتيب الصحيح (Ib3b8e)
- تم إصلاح مشكلة تعذُّر ضبط إعدادات جلسة الالتقاط بسبب تجاوز مجموعة الأسطح المتوافقة نتيجة إضافة سطح متكرّر إضافي داخليًا. (Id718c)
- تم إصلاح مشكلة صورة JPEG كبيرة تم التقاطها على جهاز Vivo S16. تحتوي صور JPEG التي تم التقاطها على بيانات حشو مكرّرة من الأصفار في جزء بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن يكون حجم ملف الصور الملتقطة كبيرًا. ستتم إزالة بيانات الحشو المتكررة التي تتضمّن أصفارًا لجعل أحجام ملفات الصور الملتقطة عادية. (I79505، b/299069235)
- تم حلّ المشكلة التي لا يمكن فيها ربط
ImageAnalysisمعImageCaptureوالمعاينة عند تفعيل بعض أوضاع الإضافة على بعض الأجهزة. سيؤدي الإصلاح إلى عرض القيمة الصحيحة عندما تستعلم التطبيقات عن مدى توفّرImageAnalysisمن خلالExtensionsManager#isImageAnalysisSupported(). (I7d538) - تعديل JavaDoc ليتوافق مع السلوك بدلاً من إكمالها على الفور، تنتظر الرموز
#setZoomRatioو#setLinearZoomو#enableTorchإلى أن تصبح الكاميرا جاهزة. أضفنا أيضًا معلومات حول كيفية الحصول على أقصى مجال رؤية باستخدام واجهة برمجة التطبيقات#takePicture. (I23588)
الإصدار 1.3
الإصدار 1.3.4
12 يونيو 2024
تم طرح androidx.camera:camera-*:1.3.4. يتضمّن الإصدار 1.3.4 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح المشكلة التي كانت تؤدي إلى عرض
getZoomRatioلقيمة منخفضة بشكل غير صحيح عند تطبيق نسبة تكبير متزايدة. (I4aa0d، b/317543616) - تم إصلاح مشكلة عدم استخدام قيم عدد اللقطات في الثانية/وضع التثبيت في الطلب المتكرّر لالتقاط صور ثابتة/النقر للتركيز، ما قد يؤدي إلى إعادة إنشاء جلسة الالتقاط وحدوث مشاكل في وقت الاستجابة أو تجميد المعاينة في بعض الأجهزة. (I7dc0b)
- تم إصلاح المشكلة المتمثّلة في ضبط عدد اللقطات في الثانية على قيمة أقل عند استدعاء
setTargetFrameRateباستخدامFRAME_RATE_RANGE_UNSPECIFIED. (I78c61)
الإصدار 1.3.3
17 أبريل 2024
تم طرح androidx.camera:camera-*:1.3.3. يتضمّن الإصدار 1.3.3 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة اختيار الدقة
ImageAnalysisالمتعلقة بإعداد الدقة التلقائية المستهدَفة لأداة التحليل: تم الاحتفاظ بالدقة المستهدَفة بشكلٍ غير صحيح على 640x480 حتى إذا كانت التطبيقات قد ضبطت إعدادًا مختلفًا للدقة التلقائية لأداة التحليل. إذا واجهت التطبيقات هذه المشكلة (1.3.0 إلى 1.3.2) ولم تتمكّن من الترقية لاستخدام الإصدارات الأحدث التي تتضمّن الحلّ، يمكن حلّ هذه المشكلة مباشرةً من خلال ضبطResolutionSelectorبالدقة المفضّلة وAspectRatioStrategyمطابق لـImageAnalysisUseCase. (I81f72، b/330091012)
الإصدار 1.3.2
6 مارس 2024
تم طرح androidx.camera:camera-*:1.3.2. يتضمّن الإصدار 1.3.2 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة في البيانات الوصفية لملفات JPEG على أجهزة Samsung A24. يحفظ CameraX الآن الصور بدقة، وتعرض الدالة
ImageProxy.toBitmap()كائنات Bitmap صحيحة. (I8d6eb، b/309005680) - تمت إزالة خيار الدقة 9280x6944 على أجهزة Redmi Note 9 Pro بسبب حدوث مشاكل. (Ia23da)
الإصدار 1.3.1
13 كانون الأول (ديسمبر) 2023
تم طرح androidx.camera:camera-*:1.3.1. يتضمّن الإصدار 1.3.1 هذه التعديلات.
إصلاح الأخطاء
تم تحسين ProcessCameraProvider#bindToLifecycle() الأداء. التغيير الرئيسي هو تحسين عملية تحديد مجموعات الأحجام الأنسب لـ UseCases. تختلف النتائج المثالية استنادًا إلى مجموعات UseCase المحدّدة وعدد أحجام الإخراج المتوافقة مع الأجهزة المستهدَفة. (I454f2)
في ما يلي بعض النتائج المرجعية لسيناريوهات مختلفة:
أربعة
UseCases:Preview+ImageCapture+ImageAnalysis+VideoCapture- Google Pixel 7: من 430 ملي ثانية إلى 60 ملي ثانية تقريبًا
- Samsung Galaxy S23 Ultra: من 540 ملي ثانية إلى 45 ملي ثانية تقريبًا
- Samsung A53 5G: من 115 ملي ثانية إلى 70 ملي ثانية تقريبًا
ثلاثة
UseCases:Preview+ImageCapture+ImageAnalysis- Google Pixel 7: من 9 ملي ثانية إلى 7 ملي ثانية تقريبًا
- Samsung Galaxy S23 Ultra: من 6 إلى 5 ملي ثانية تقريبًا
- Samsung A53 5G: من 32 ملي ثانية إلى 12 ملي ثانية تقريبًا
تمت إضافة Snapdragon 480 إلى
CameraUseInconsistentTimebaseQuirk. يحلّ هذا التحديث مشكلة في الإصدار 12 من نظام التشغيل Android على الأجهزة التي تستخدم مجموعة الشرائح هذه، حيث يتم إزاحة الصوت في التسجيلات بمقدار الوقت الذي يكون فيه الجهاز في حالة تعليق. (I58010)
الإصدار 1.3.0
18 أكتوبر 2023
تم طرح androidx.camera:camera-*:1.3.0. يتضمّن الإصدار 1.3.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.2.0
- ميزات الفيديو، بما في ذلك فيديو 10 بت بنطاق HDR والاقتصاص والمرآة/عدم المرآة وكتم الصوت/إلغاء كتم الصوت وضبط عدد اللقطات في الثانية وغير ذلك
- الكاميرا المزدوجة المتزامنة
- مكتبة المؤثرات
- أداة اختيار درجة الدقة
- اختيار الكاميرا ذات الزاوية الفائقة الاتساع وكاميرا التقريب البعيد
- التبديل بين الكاميرات أثناء تسجيل الفيديو (ميزة تجريبية)
الإصدار 1.3.0-rc02
20 سبتمبر 2023
تم طرح androidx.camera:camera-*:1.3.0-rc02. يتضمّن الإصدار 1.3.0-rc02 هذه التعديلات.
إصلاح الأخطاء
- تحسين ثبات الإضافات من خلال التأكّد من تفعيل أحداث التهيئة وإلغاء التهيئة بالترتيب الصحيح أصلح هذا التحديث بعض المشاكل المتعلّقة بالمعاينة السوداء عند التبديل بين أوضاع "الإضافات" أو بين الكاميرات. (Iddaac)
- تم حلّ المشكلة التي لا يمكن فيها ربط
ImageAnalysisمعImageCaptureوالمعاينة عند تفعيل بعض أوضاع الإضافة على بعض الأجهزة. سيؤدي الإصلاح إلى عرض القيمة الصحيحة عندما تستعلم التطبيقات عن مدى توفّرImageAnalysisمن خلالExtensionsManager#isImageAnalysisSupported(). (I7d538) - تم إصلاح المشكلة التي كانت تؤدي إلى عدم تزامن الصوت والفيديو المسجّلين عند تفعيل وضع "عرض الشاشة على جهاز آخر" على هاتف Xiaomi Poco X3 NFC. (I20b4c)
الإصدار 1.3.0-rc01
23 أغسطس 2023
تم طرح androidx.camera:camera-*:1.3.0-rc01. يتضمّن الإصدار 1.3.0-rc01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة
PendingRecording.asPersistentRecordingللسماح بتسجيل مستمر أثناء إعادة ربطVideoCaptureالذي تم ربط "المسجّلة الذكية" به. (I517c6)
إصلاح الأخطاء
- تم إصلاح عُطل يحدث عند مشاركة بث مع كل من
VideoCaptureو"المعاينة". تم أيضًا إصلاح مشكلة الشاشة السوداء على الأجهزة القديمة عند تفعيل ميزة مشاركة البث. - تم إصلاح مشكلة صور JPEG الكبيرة التي تم التقاطها على أجهزة سلسلة Samsung S7 (SM-G930T وSM-G930V). تحتوي صور JPEG التي تم التقاطها على بيانات حشو مكرّرة من الأصفار في جزء بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن يكون حجم ملف الصور الملتقطة كبيرًا. ستتم إزالة بيانات الحشو المتكررة التي تتضمّن أصفارًا لجعل أحجام ملفات الصور الملتقطة عادية. (I407b0، b/288828159)
- تم إصلاح مشكلة صورة JPEG كبيرة تم التقاطها على أجهزة Samsung S22 (SM-S901B وSM-S901B/DS) وS22+ (SM-S906B). تحتوي صور JPEG التي تم التقاطها على بيانات حشو مكرّرة من الأصفار في جزء بيانات JFIF المضغوطة. يؤدي ذلك إلى أن يكون حجم ملف الصور الملتقطة كبيرًا ويبلغ حوالي 13 ميغابايت على جهاز S22 SM-S901B/DS. ستتم إزالة بيانات الحشو المتكررة التي تتضمّن أصفارًا لجعل أحجام ملفات الصور الملتقطة عادية. (I73be9، b/288828159)
- تم إصلاح مشكلة صور JPEG الكبيرة التي يتم التقاطها على أجهزة Samsung من السلسلة A5 وA52 وA70 وA72. تحتوي صور JPEG التي تم التقاطها على بيانات حشو مكرّرة من الأصفار في جزء بيانات JFIF المضغوطة. يؤدي ذلك إلى أن يكون حجم ملفات الصور الملتقطة كبيرًا جدًا (على سبيل المثال، حوالي 32 ميغابايت أو حتى 96 ميغابايت). ستتم إزالة بيانات الحشو المتكررة التي تتضمّن أصفارًا لجعل أحجام ملفات الصور التي تم التقاطها عادية. (I97c4d، b/288828159)
- تم إصلاح الخطأ الأصلي الذي يحدث عند التقاط الصور مع تفعيل الإضافات (I698f5)
الإصدار 1.3.0-beta02
26 يوليو 2023
تم طرح androidx.camera:camera-*:1.3.0-beta02. يتضمّن الإصدار 1.3.0-beta02 هذه التعديلات.
إصلاح الأخطاء
- استخدام المصباح اليدوي كفلاش في هواتف Pixel 4 و5 لتحسين جودة الالتقاط في الإضاءة المنخفضة (I56ff5، b/280221967)
- تم إصلاح مشكلة صور JPEG الكبيرة التي يتم التقاطها على أجهزة سلسلة Samsung A5 (2017). تحتوي صور JPEG التي تم التقاطها على بيانات حشو مكرّرة من الأصفار في جزء بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن يبلغ حجم ملف الصور الملتقطة حوالي 32 ميغابايت. ستتم إزالة بيانات الحشو المتكررة التي تتضمّن أصفارًا لجعل أحجام ملفات الصور التي تم التقاطها عادية. (I29837، b/288828159)
- تم إصلاح مشكلة عدم تشغيل إعادة المحاولة بشكل صحيح في حال تعذُّر تسجيل الشاشة على الأجهزة التي تم ذكرها في
CaptureFailedRetryQuirk. (I7b589)
الإصدار 1.3.0-beta01
21 حزيران (يونيو) 2023
تم طرح androidx.camera:camera-*:1.3.0-beta01. يتضمّن الإصدار 1.3.0-beta01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية اسم الدالة
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)إلىsetAllowedResolutionMode، وإعادة تسمية الثوابتResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONإلىPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE. (If84e8) - تمت إزالة واجهات برمجة التطبيقات المتوقفة نهائيًا
ImageAnalysis.setTargetRotationDegrees(int)وImageCapture.setTargetRotationDegrees(int)وVideoCapture.setTargetRotationDegrees(int). (Id8e77) - تمثّل الفئة
DynamicRangeالنطاق الديناميكي للصور. يمكن استخدام هذا الخيار لاختيار تنسيقات النطاق العالي الديناميكية كناتج منVideoCaptureإلىVideoCapture.Builder#setDynamicRange(). (Ib0377) - تمت إضافة واجهة برمجة التطبيقات
isImageAnalysisSupportedإلىExtensionsManagerالتي يمكن للتطبيقات من خلالها تحديد ما إذا كان يمكن ربط حالة استخدامImageAnalysisمع "المعاينة" وImageCaptureعند تفعيل "الإضافات". (I1bc63) - يمكن استخدام فئة
VideoCapabilitiesالجديدة التي تم الحصول عليها منRecorderللاستعلام عن النطاقات الديناميكية والجودات المتوافقة لتسجيل الفيديو على الجهاز. سيتم إيقاف استخدام الطريقتَينgetSupportedQualities()وisQualitySupported()فيQualitySelectorنهائيًا. يُرجى استخدام طريقتَيgetSupportedQualities()وisQualitySupported()فيVideoCapabilitiesبدلاً من ذلك. (I04014) - تمت إعادة تسمية
CameraController#setVideoCaptureTargetQuality()إلىsetVideoCaptureQualitySelector، وأصبح يتضمّن الوسيطةQualitySelectorالتي توفّر مرونة أكبر في إعداد جودة الفيديو. يتم تغييرCameraController#getVideoCaptureTargetQuality()إلىgetVideoCaptureQualitySelectorوفقًا لذلك. (I520ed) - تمت إزالة التعليق التوضيحي التجريبي لميزات الفيديو. أصبحت ميزات الفيديو ثابتة الآن. (I1a113)
إصلاح الأخطاء
- استخدام الكشاف كفلاش في هواتف Samsung SM-A320 لتحسين السرعة وجودة الصورة الملتقطة في الإضاءة المنخفضة (I6a022، b/286190938)
- إضافة إمكانية استخدام تنسيق
ImageFormat.JPEGفيImageProxy.toBitmap()إذا تعذّر فك ترميز مصفوفة بايت JPEG، سيتم عرضUnsupportedOperationException. (I81958، b/282057603)
الإصدار 1.3.0-alpha07
24 مايو 2023
تم طرح androidx.camera:camera-*:1.3.0-alpha07. يتضمّن الإصدار 1.3.0-alpha07 هذه التعديلات.
الميزات الجديدة
- تسمح واجهة برمجة التطبيقات الجديدة
VideoCapture.Builder# setTargetFrameRate(Range)بتسجيل الفيديوهات بمعدلات لقطات أخرى غير معدل اللقطات التلقائي للجهاز. يمكن طلب معدّلات عرض اللقطات المتاحة للتسجيلات من خلال واجهة برمجة التطبيقات الجديدةCameraInfo#getSupportedFrameRates().
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية الثوابت
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONإلىALLOWED_RESOLUTIONS_NORMAL/SLOW، كما تمت إعادة تسمية اسم الدالة الإنشائيةsetHighResolutionEnabledFlagإلىsetAllowedResolutionMode. (Iae817) - تعرض الدالة
CameraInfo#getSupportedFrameRateRanges()الآنSetبدلاً منListللإشارة بشكل أفضل إلى أنّ النطاقات غير مرتّبة. (I02f43) - إضافة أداة معالجة الأخطاء إلى
CameraEffectللتعامل مع الأخطاء غير القابلة للاسترداد (Ice471) - إضافة أداة إنشاء عامة في
ResolutionInfoلتحسين إمكانية الاختبار (If6d1c) - تم توفير واجهة برمجة تطبيقات
UseCase.snapToSurfaceRotation(int)لاستبدال استخدامsetTargetRotationDegreesوإيقاف واجهات برمجة التطبيقاتImageAnalysis.setTargetRotationDegrees(int)وImageCapture.setTargetRotationDegrees(int)وVideoCapture.setTargetRotationDegrees(int)نهائيًا. (Ia9010) - تمت إضافة واجهتَي برمجة التطبيقات الجديدتَين
Preview#getTargetFrameRateوPreview.Builder#setTargetFrameRateلإتاحة إمكانية ضبط عدد اللقطات المستهدَف في الثانية واسترداده لحالة استخدام "المعاينة" (If4f22) - سيكتمل
VideoRecordEvent.Finalizeالآن برمز الخطأERROR_RECORDING_GARBAGE_COLLECTEDعند إيقاف العنصرRecordingبسبب جمع البيانات غير الضرورية. (Iba974)
إصلاح الأخطاء
- تم إصلاح الخطأ
NullPointerExceptionعندما تكون أحجام الإخراج المخزّنة مؤقتًا فيStreamConfigurationMapCompatفارغة. (Idf124، b/282025204) - تم إصلاح المشكلة التي تمنع
Preview.setSurfaceProvider(null)من إيقاف المعاينة مؤقتًا في الإضافات (Ia903e) - تم إصلاح المشكلة التي كانت تؤدي إلى ظهور الخطأ
ConcurrentModificationExceptionأثناء فتح الكاميرا عند ربطVideoCapture. (Ic8ac4)
الإصدار 1.3.0-alpha06
19 أبريل 2023
تم طرح androidx.camera:camera-*:1.3.0-alpha06. يتضمّن الإصدار 1.3.0-alpha06 هذه التعديلات.
الميزات الجديدة
- "الكاميرا المتزامنة" هي ميزة جديدة تم طرحها في نظام التشغيل Android 11، وتتيح البث المتزامن من أجهزة الكاميرا، على سبيل المثال، تسمح بتشغيل الكاميرتَين الأمامية والخلفية في الجهاز في الوقت نفسه. لا تتوافق CameraX حاليًا إلا مع الكاميرات المزدوجة المتزامنة، ما يتيح تشغيل كاميرتَين في الوقت نفسه، مع ربط ما يصل إلى اثنتين من فئات {@link UseCase} بكل كاميرا. تبلغ درجة الدقة القصوى 720p أو 1440p، ويمكنك الاطّلاع على مزيد من التفاصيل في الرابط التالي: CameraManager#getConcurrentCameraIds()
- نقدّم لك واجهة برمجة التطبيقات الجديدة
ResolutionSelectorالتي تشمل الميزات التالية:- يمكن للتطبيقات تحديد استراتيجيات نسبة العرض إلى الارتفاع والدقة لاختيار أفضل دقة تناسب احتياجاتها.
- يتم التعبير عن جميع مَعلمات الحجم ونسبة العرض إلى الارتفاع بإحداثيات مستشعر جهاز الكاميرا.
- يمكن للتطبيقات تنفيذ فلتر دقة مخصّص لترتيب الأحجام المتوافقة بالترتيب المطلوب.
- يمكن للتطبيقات أيضًا تفعيل ميزة التقاط الصور بدقة عالية للحصول على صور أعلى دقة. ومع ذلك، يُرجى العِلم أنّ استخدام درجة دقة عالية قد يؤدي إلى إبطاء أوقات الالتقاط.
- تمت إضافة واجهات برمجة التطبيقات الخاصة بميزة "
VideoCapture". لا يتم عكس الفيديوهات المسجّلة باستخدامVideoCaptureتلقائيًا. ومع ذلك، يتم تلقائيًا عكس معاينة الكاميرا على الكاميرا الأمامية. تتيح واجهات برمجة التطبيقات الخاصة بميزة "VideoCapture" إمكانية محاذاة معاينة الكاميرا عند استخدام الكاميرا الأمامية. هناك أربعة أنواع من الأذونات:MirrorModeوOFFوONوON_FRONT_ONLY. للمحاذاة مع معاينة الكاميرا، يُنصح باستخدامON_FRONT_ONLY، ما يعني أنّ ميزة "انعكاس الصورة" غير مفعَّلة للكاميرا الخلفية ولكنّها مفعَّلة للكاميرا الأمامية.
تغييرات واجهة برمجة التطبيقات
- تم عرض واجهة برمجة التطبيقات الجديدة
ResolutionSelector. يمكن للتطبيقات تحديد استراتيجيات نسبة العرض إلى الارتفاع والدقة باستخدام قواعد احتياطية أو فلتر دقة مخصّص للحصول على النتائج المطلوبة. يمكن للتطبيقات تحديد علامة لتفعيل إمكانية تسجيل الشاشة بدقة عالية. سيسمح ذلك لـ CameraX باختيار درجات دقة أعلى عند التقاط الصور أو تسجيل الفيديوهات. ومع ذلك، يُرجى العِلم أنّ استخدام درجة دقة عالية قد يؤدي إلى إبطاء أوقات الالتقاط. (Ibed95) - يمكن الآن طلب نطاقات اللقطات في الثانية المتوافقة مع خوارزمية AE من خلال
CameraInfo#getSupportedFrameRateRanges(). (Iaa67f) - دمج أسماء جميع طرق معدّل عرض اللقطات في طريقة واحدة باستخدام FrameRate. تصحيح خطأ javadoc في
VideoCapture#getTargetFrameRate()(I83304) - تم إيقاف واجهتَي برمجة التطبيقات القديمتَين
setTargetAspectRatioوsetTargetResolutionنهائيًا. يُرجى استخدام واجهة برمجة التطبيقات الجديدةResolutionSelectorبدلاً من ذلك. (I542c3) - تمت إضافة واجهات برمجة التطبيقات العامة للكاميرا المزدوجة المتزامنة، بما في ذلك
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)-
boolean isConcurrentCameraModeOn()وConcurrentCameraConfigوSingleCameraConfigوConcurrentCamera(Iab1c1)
- Make
ImageProcessor.Response#getOutputImageNonNull (Ib9c60) - تمت إضافة واجهات برمجة تطبيقات لعكس الشاشة، بما في ذلك
VideoCapture.Builder.setMirrorMode(int)وVideoCapture.getMirrorMode().VideoCaptureتكون واجهات برمجة التطبيقات مفيدة للتطبيقات التي تتطلّب أن يكون تسجيل الفيديو متوافقًا مع السلوك الشائع لمعاينة الكاميرا، أي أنّ معاينة الكاميرا الخلفية لا تكون معكوسة، بينما تكون معاينة الكاميرا الأمامية معكوسة. (I713b6، b/194634656) - إضافة واجهة برمجة التطبيقات
setTargetFrameRate()فيVideoCapture.Builderوواجهة برمجة التطبيقاتgetTargetFramerate()فيVideoCapture(I109d4) - اجعل
SurfaceOutputيوسّع Closable وأخفِ الدالة الإنشائية العامة لـ SurfaceOutput.Event. (I60ea8) - تمت إضافة
Recording.muteلكتم صوت التسجيل الجاري معالجته أو إلغاء كتمه بشكل ديناميكي. سيحتويRecordingStatsعلىAudioStats.AUDIO_STATE_MUTEDعندما يتم كتم صوت التسجيل الجاري معالجته بشكل صريح. (Ie17fc) - تم جعل المَعلمة
#setEffects()غير فارغة. إضافة واجهة برمجة تطبيقات#clearEffects()لمحو التأثيرات يجب أن يستدعي التطبيق#clearEffects()لإزالة التأثيرات. (I4b4d9) - إضافة أداة إنشاء ثانية للفئة
ViewfinderSurfaceRequest.Builderلتلقّي أداة إنشاء لأداة إنشاء النسخ (I621a7)
إصلاح الأخطاء
- تم إصلاح المشكلة التي كانت تؤدي إلى تعطُّل التطبيقات التي تستخدم Extensions API عند إغلاق الكاميرا (Ib27e5)
- تم إصلاح مشكلة عدم عمل
VideoCaptureمع الكاميرا الأمامية على بعض الأجهزة. على سبيل المثال، على هواتف Samsung Galaxy S23 وXiaomi 2107113SG (Ibec7e، b/270656244) - تم إصلاح المشكلة التي كانت تؤدي إلى تعذُّر التقاط الصور باستخدام "ملف" في المجلد العام لوحدة التخزين الخارجية دائمًا في نظام التشغيل Android 10 أو الإصدارات الأحدث. يُرجى العِلم أنّه في نظام التشغيل Android 10، يتطلّب التقاط الصور باستخدام "ملف" في المجلد العام لوحدة التخزين الخارجية أيضًا ضبط
requestLegacyExternalStorageعلى "صحيح" في علامة التطبيق. (I11b2c) - تم إصلاح عُطل في
RejectedExecutionExceptionفيDefaultSurfaceProcessor. قد يحدث العُطل عند ربطVideoCaptureوإيقاف النشاط مؤقتًا. (Idb46a، b/273713906)
الإصدار 1.3.0-alpha05
22 مارس 2023
تم طرح androidx.camera:camera-*:1.3.0-alpha05. يتضمّن الإصدار 1.3.0-alpha05 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهات برمجة تطبيقات لعرض الإعلانات بالتناوب، بما في ذلك
VideoCapture.Builder.setTargetRotation(int)وVideoCapture.setTargetRotation(int)وVideoCapture.setTargetRotationDegrees(int)وVideoCapture.getTargetRotation().VideoCaptureتكون واجهات برمجة التطبيقات مفيدة للتطبيقات التي تقفل اتجاه الجهاز. تتم أيضًا إضافةImageCapture.setTargetRotationDegrees(int)وImageAnalysis.setTargetRotationDegrees(int). (Id3ffe، b/205242781) - السماح باستخدام
VIDEO_CAPTUREوPREVIEW|VIDEO_CAPTUREكهدف للتأثيرات سيتم تطبيق التأثيرات التي تستهدفVIDEO_CAPTUREعلى UseCaseVideoCapture، وسيتم تطبيق التأثيرات التي تستهدفPREVIEW|VIDEO_CAPTUREعلى بث مشترك قبل نسخه إلى بث "المعاينة" وبثVideoCapture. (Iee6f3)
إصلاح الأخطاء
- من الكاميرا
1.2.2: تم إصلاح المشكلة التي كانت تؤدي إلى عدم عمل "إضافات CameraX" بشكل صحيح عند تفعيل أداة Proguard على بعض الأجهزة، مثل Pixel (I90aa2) - تم إصلاح الخطأ
PreviewViewالذي قد يؤدي إلى تشويه المعاينة عند تدوير الشاشة إذا كان التطبيق يتعامل مع اتجاه الشاشة بنفسه. لا يحدث ذلك إلا على أجهزة معيّنة. يمكن إعادة إنتاجه على هواتف Pixel 4a وPixel 5 وPixel 6a. (I14340، b/223488673)
الإصدار 1.3.0-alpha04
22 فبراير 2023
تم طرح androidx.camera:camera-*:1.3.0-alpha04. يتضمّن الإصدار 1.3.0-alpha04 هذه التعديلات.
الميزات الجديدة
ميزة جديدة تتيح مشاركة بث واحد مع عدة UseCases لدعم مجموعات Surface التي لم تكن متوافقة سابقًا
- في السابق، عند ربط "المعاينة وVideoCapture وImageAnalysis" على مستوى FULL أو أقل من أجهزة الكاميرا، أو ربط "المعاينة وVideoCapture وImageCapture" على مستوى LEGACY، تعرض CameraX الخطأ
IllegalArgumentException. - والسلوك الجديد هو أنّ عمليات الربط ستعمل بدون عرض استثناءات. بدلاً من ذلك، تستخدم CameraX واجهة OpenGL لنسخ بث مشترك إلى كل من Preview وVideoCapture.
- ونتيجةً لذلك، قد يلاحظ التطبيق زيادة في وقت الاستجابة واستهلاك الطاقة.
تغييرات واجهة برمجة التطبيقات
- أضِف واجهة برمجة تطبيقات لتحويل
ImageProxyإلىBitmap. تنسيقImageProxyالمتوافق هوImageFormat.YUV_420_888وPixelFormat.RGBA_8888. إذا كان التنسيق غير صالح، سيتم عرض الخطأIllegalArgumentException. (Ic7110) - أضِف
CoroutineCameraViewfinderلإتاحة إعداد شاشة العرض باستخدام دوال تعليق في Kotlin. (I657bc) - إضافة أداة إنشاء عامة جديدة للفئة
ViewfinderSurfaceRequestيوفّر هذا الحقل المرونة عندما لا يتمكّن المستخدم من تقديمCameraCharacteristics. (Ie6549)
إصلاح الأخطاء
- تم إصلاح مشكلة تعطُّل الإضافات التي تحدث على بعض أجهزة Samsung عند إيقاف التطبيق مؤقتًا/استئنافه بسرعة كبيرة (Iaca26)
الإصدار 1.3.0-alpha03
25 كانون الثاني (يناير) 2023
تم طرح androidx.camera:camera-*:1.3.0-alpha03. يتضمّن الإصدار 1.3.0-alpha03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة
CameraInfo.getIntrinsicZoomRatioلتقديم معلومات عن زاوية العرض بالنسبة إلى الكاميرا التلقائية. (Ib300c) - تمت إضافة
CameraInfo.getLensFacingلتقديم معلومات حول اتجاه العدسة. تمت إضافةCameraSelector#LENS_FACING_EXTERNALكميزة تجريبية لاختيار الكاميرات الخارجية. (Icaf3e) - أضِف
#setEffect()إلىCameraControllerالذي يتيح إضافة تأثيرات إلى ناتج الكاميرا. (I1d21f) - أضِف طريقة
invalidate()إلىSurfaceRequest. يمكن لمزوّد Surface إرسال إشعار بأنّ Surface المقدَّم سابقًا لم يعُد صالحًا. (Idc649) - أضِف واجهة برمجة تطبيقات
ImageProcessor. تُستخدَم هذه الواجهة لإضافة تأثيرات ما بعد المعالجة إلى مسارImageCapture. (I575c6) - تمت إضافة واجهة برمجة التطبيقات
Recorder.Builder.setAspectRatio()التي يمكن دمجها معQualitySelectorلتوفير المزيد من درجات دقة الفيديو. (I8a082) - تمت إضافة
Recorder.Builder#setTargetVideoEncodingBitRateلضبط "ترميز الفيديو المستهدَف"BitRateوRecorder#getTargetVideoEncodingBitRateللحصول على "معدّل نقل بيانات ترميز الفيديو المستهدَف". (I5984d)
إصلاح الأخطاء
- تم إصلاح الخطأ
ImageCaptureالذي يحدث عند عدم توفّر وحدة فلاش وتفعيل وضع الفلاش. (I9e8b4، b/263391112) - تم إصلاح مشكلة تلف صور JPEG عند كتابة بيانات الموقع الجغرافي Exif على بعض أجهزة Samsung التي تعمل بالإصدار 12 من نظام التشغيل Android. (Ib7086، b/263747161، b/263289024)
- عند ضبط التكبير/التصغير أو تشغيل المصباح قبل اكتمال عملية تهيئة الكاميرا، مثلاً عند طلب
CameraController#enableTorch، يتم تخزين الإجراء المعلّق مؤقتًا وإرساله بعد اكتمال عملية التهيئة. (I11e92، b/264157663)
الإصدار 1.3.0-alpha02
7 كانون الأول (ديسمبر) 2022
تم طرح androidx.camera:camera-*:1.3.0-alpha02. يتضمّن الإصدار 1.3.0-alpha02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إضافة واجهة برمجة تطبيقات جديدة لتطبيق تأثير ما بعد المعالجة على ناتج "المعاينة" (Ic17d5)
- تمت إعادة تسمية "
OutputOptions.getDurationLimit" إلى "OutputOptions.getDurationLimitMillis" و"OutputOptions.setDurationLimit" إلى "OutputOptions.setDurationLimitMillis". (I91f0c) - أضِف فئة
AudioConfigللتعامل مع الإعدادات ذات الصلة بالصوت أثناء تسجيل الفيديو. تم نقل التعليق التوضيحي@RequiresPermissionمن الدوالstartRecordingإلىAudioConfigلتجنُّب طلبات الأذونات غير الضرورية في الحالات التي لا تكون فيها هناك حاجة إلى الصوت. (I28755) - أزِل الفئات Metadata و
OnVideoSavedCallbackوOutputFileOptionsوOutputFileResultsالتي لم يعُد يتم استخدامها بعد تطبيق واجهة برمجة التطبيقات الجديدة لالتقاط الفيديو. (I38cd8) - تطبيق واجهة برمجة التطبيقات الجديدة لتصوير الفيديو تم استبدال الطريقتَين
getVideoCaptureTargetSizeوsetVideoCaptureTargetSizeبالطريقتَينgetVideoCaptureTargetQualityوsetVideoCaptureTargetQualityعلى التوالي، لأنّsetTargetResolutionلم يعُد متاحًا. (I2a1d5)
إصلاح الأخطاء
- إزالة واجهة برمجة التطبيقات
core.VideoCaptureالمتوقّفة نهائيًا (I531e0) - تم إصلاح المشكلة التي لم يتم فيها استدعاء
onErrorعند التقاط صور بدون إذن الوصول إلى مساحة التخزين.(I936db، b/244807669) - تحسين جودة وموثوقية إضافات الكاميرا تم إيقاف إضافات الكاميرا على أجهزة Motorola التي تستخدم الإصدار 1.1.0 من "إضافات الكاميرا" والإصدارات الأقدم بسبب مشاكل في توافق تأثيرات البوكيه والتقاط الصور وعدم استئناف المعاينة. (Id3ce3)
- تم إصلاح عُطل في التطبيق عند تفعيل ميزة اقتصاص الفيديو من خلال
ViewPortعلى الأجهزة القديمة. (I16b8a، b/251357665)
الإصدار 1.3.0-alpha01
9 نوفمبر 2022
تم طرح androidx.camera:camera-*:1.3.0-alpha01. يتضمّن الإصدار 1.3.0-alpha01 هذه التعديلات.
الميزات الجديدة
- تم نشر
Camera-viewfinderرسميًا. توفّرCamera-viewfinderأداة أساسية للبحث المرئي يمكنها عرض خلاصة الكاميرا في Camera2. يُرجى الاطّلاع على نموذج الرمز للاطّلاع على مثال.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة
OutputOptions.setDurationLimitللسماح بضبط الحد الأقصى لمدة الفيديو. سيتم إنهاء التسجيل تلقائيًا عند تجاوز مدة الحدّ المحدّد. (I902a0) - إضافة حالة خطأ في الصوت عند تسجيل فيديو
AudioStats.AUDIO_STATE_SOURCE_ERRORيتم إرسال هذا الحدث عند تعذُّر إعداد مصدر الصوت أو حدوث خطأ ما. (I37410)
إصلاح الأخطاء
- أضِف سلوكًا غريبًا للسماح لبعض الأجهزة التي تواجه مشاكل بإعادة محاولة التسجيل مرة واحدة عند حدوث أخطاء في التسجيل. (Id4795)
- حلّ مشكلة ظهور شاشة سوداء عند تنفيذ
PreviewViewSurfaceViewعلىViewPager2في إطار الإصلاح، ستعيدPreviewViewاستخدامSurfaceViewإذا لم يتم تغيير درجة الدقة المطلوبة. (Ib3f27) - إتاحة اقتصاص الفيديو (ميزة WYSIWYG) عند استخدام واجهة برمجة التطبيقات
ViewPortأوCameraController(Ifbba8، b/201085351) - تم إصلاح مشكلة عدم تسجيل الفيديو الملتقط بالكاميرا الأمامية على هاتف Huawei P40 lite. (I87c57، b/250807400)
الإصدار 1.2
الإصدار 1.2.3
24 مايو 2023
تم طرح androidx.camera:camera-*:1.2.3. يتضمّن الإصدار 1.2.3 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة عدم عمل
VideoCaptureمع الكاميرا الأمامية على بعض الأجهزة. على سبيل المثال، على هواتف Samsung Galaxy S23 وXiaomi 2107113SG (Ibec7e، b/270656244)
الإصدار 1.2.2
22 مارس 2023
تم طرح androidx.camera:camera-*:1.2.2. يتضمّن الإصدار 1.2.2 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح المشكلة التي لا تعمل فيها "إضافات CameraX" بشكل صحيح عند تفعيل Proguard على بعض الأجهزة، مثل Pixel (I90aa2)
الإصدار 1.2.1
25 كانون الثاني (يناير) 2023
تم طرح androidx.camera:camera-*:1.2.1. يتضمّن الإصدار 1.2.1 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تلف صور JPEG عند كتابة بيانات الموقع الجغرافي بتنسيق Exif على بعض أجهزة Samsung التي تعمل بنظام التشغيل Android 12. (b/263289024)
الإصدار 1.2.0
7 كانون الأول (ديسمبر) 2022
تم طرح androidx.camera:camera-*:1.2.0. يتضمّن الإصدار 1.2.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.1.0
- مكتبة جديدة باسم camera-mlkit-vision يمكنك دمج CameraX بسهولة مع العديد من ميزات MLKit، بما في ذلك مسح الرموز الشريطية والتعرّف على الوجوه ورصد النصوص وما إلى ذلك. تمت إضافة
MLKitAnalyzerكواجهات برمجة تطبيقات جديدة. - واجهة برمجة تطبيقات تجريبية جديدة لتأخير الغالق الصفري تحسين مسار التقاط الصور للحصول على زمن انتقال أفضل مع الحفاظ على جودة الصورة الجيدة عند ضبط وضع الالتقاط على
CAPTURE_MODE_ZERO_SHUTTER_LAG، من المتوقّع أن يتم تقليل وقت الاستجابة بين النقر على زر الغالق والتقاط الصورة، مقارنةً بأوضاع الالتقاط الأخرى. على الأجهزة التي لا تتوافق معZERO_SHUTTER_LAG، سيتم استخدامCAPTURE_MODE_MINIMIZE_LATENCYبدلاً منها. - إيقاف
android.camera.core.VideoCapture - تمت إضافة
setStreamUseCase()كواجهة برمجة تطبيقاتCamera2Interopعامة. - تمت إضافة متطلبات مستوى واجهة برمجة التطبيقات للإصدار
setOutputImageRotationEnabled. - تمت إعادة تسمية
ImageAnalysis.Analyzer#getTargetResolutionOverride()إلىImageAnalysis.Analyzer#getDefaultTargetResolution(). - تمت إضافة واجهة برمجة تطبيقات لضبط البيانات الوصفية الخاصة بالموقع الجغرافي للفيديو المحفوظ.
- تم إصلاح مشكلة انخفاض عدد اللقطات في الثانية عند استخدام
VideoCaptureوحالات استخدام "المعاينة" بنسبة عرض إلى ارتفاع 16:9 - تم إصلاح مشكلة المعاينة السوداء التي تحدث عند تفعيل إضافة BOKEH على بعض أجهزة Samsung وعندما يبدّل المستخدم الكاميرات.
- تم إصلاح مشكلة
Preview/VideoCaptureالتمدّد في هاتفَي Samsung J7 Prime (SM-G610M) وJ7 (SM-J710MN) على الأجهزة التي تعمل بالإصدار 27 من واجهة برمجة التطبيقات. - تم إيقاف الحلّ البديل لقلب منطقة التركيز التلقائي أفقيًا في الكاميرات الأمامية على أجهزة Samsung Android T بعد إصلاح المشكلة
الإصدار 1.2.0-rc01
24 أكتوبر 2022
تم طرح androidx.camera:camera-*:1.2.0-rc01. يتضمّن الإصدار 1.2.0-rc01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- أضِف واجهة برمجة التطبيقات
setStreamUseCaseلحسابOutputConfiguration. يمكن للمستخدم تحديد حالة استخدام البث لجلسة البث، وتجاوز منطق CameraX الداخلي لاختيار حالة استخدام البث من أجل التحسين وفقًا لاحتياجاته. (Ib1a95)
إصلاح الأخطاء
- تم إصلاح مشكلة
Preview/VideoCaptureالتمدّد في هاتفَي Samsung J7 Prime (SM-G610M) وJ7 (SM-J710MN) على الأجهزة التي تعمل بالإصدار 27 من واجهة برمجة التطبيقات. تؤدي درجة الدقة 1920x1080 إلى تمديد صورPreview/VideoCapture. تمت إضافة حلّ بديل لعدم اختيار درجة الدقة 1920x1080 لـ "المعاينة" أوVideoCaptureلتجنُّب مشكلة تمديد الصورة. (I0e04e) - تم إصلاح مشكلة انخفاض عدد اللقطات في الثانية عند استخدام
VideoCaptureوحالات استخدام المعاينة بنسبة عرض إلى ارتفاع 16:9 على بعض أجهزة Huawei. (If8c88، b/223643510) - تم إصلاح مشكلة تعذُّر فتح الكاميرا عندما لا يكون
SurfaceProviderفي "المعاينة" مضبوطًا. في إطار الإصلاح، لن يتم الآن ضبط "المعاينة" بدونSurfaceProviderفي جلسة التقاط الصور بالكاميرا. (I99681)
الإصدار 1.2.0-beta02
21 سبتمبر 2022
تم طرح androidx.camera:camera-*:1.2.0-beta02. يتضمّن الإصدار 1.2.0-beta02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إضافة متطلبات مستوى واجهة برمجة التطبيقات للإصدار
setOutputImageRotationEnabled(I26e3e، b/240993561)
إصلاح الأخطاء
- تم إيقاف الحلّ البديل لقلب منطقة التركيز التلقائي أفقيًا في الكاميرات الأمامية على أجهزة Samsung التي تعمل بنظام التشغيل Android T، وذلك بعد حلّ المشكلة. (I05f69)
- تم إصلاح مشكلة المعاينة السوداء التي تحدث عند تفعيل إضافة
BOKEHعلى بعض أجهزة Samsung وعندما يبدّل المستخدم الكاميرات. (If6168)
الإصدار 1.2.0-beta01
24 أغسطس 2022
تم طرح androidx.camera:camera-*:1.2.0-beta01. يتضمّن الإصدار 1.2.0-beta01 هذه التعديلات.
الميزات الجديدة
- مكتبة جديدة
camera-mlkit-visionيمكنك دمج CameraX بسهولة مع العديد من ميزات MLKit، بما في ذلك مسح الرموز الشريطية ضوئيًا والتعرّف على الوجوه واكتشاف النصوص وما إلى ذلك. يمكنك الاطّلاع على نموذج التعليمات البرمجية هنا. - Zero-Shutter Lag API تجريبية جديدة تحسين مسار التقاط الصور للحصول على زمن انتقال أفضل مع الحفاظ على جودة الصورة الجيدة عند ضبط وضع الالتقاط على CAPTURE_MODE_ZERO_SHUTTER_LAG، من المتوقّع أن يتم تقليل وقت الاستجابة بين النقر على زر الغالق والتقاط الصورة إلى الحدّ الأدنى، مقارنةً بأوضاع الالتقاط الأخرى. على الأجهزة التي لا تتوافق مع ZERO_SHUTTER_LAG، سيتم استخدام CAPTURE_MODE_MINIMIZE_LATENCY بدلاً منها.
- تمّت إضافة
ImageAnalysis.AnalyzerوMLKitAnalyzerكواجهتَي برمجة تطبيقات رسميتَين. - واجهة برمجة تطبيقات مكشوفة لضبط البيانات الوصفية الخاصة بالموقع الجغرافي للفيديو المحفوظ
- تمّت إعادة تسمية
ImageAnalysis.Analyzer#getTargetResolutionOverride()إلىImageAnalysis.Analyzer#getDefaultTargetResolution().
إصلاح الأخطاء
- تم إصلاح مشكلة التقاط الصور في Alps k61v1_basic_ref. تحتوي صور JPEG الملتقَطة من طبقة تجريد الأجهزة (HAL) على بيانات Exif الوصفية غير الصحيحة. لا تحتوي بيانات Exif الوصفية على العلامة 0xffd9 أو 0xffda لكي يتمكّن
ExifInterfaceمن تحليل السمات بشكلٍ صحيح. التقاط الصور بتنسيق YUV ثم ضغطها إلى صور بتنسيق JPEG كحلّ بديل لهذه المشكلة (I45abb)
الإصدار 1.2.0-alpha04
27 يوليو 2022
تم طرح androidx.camera:camera-*:1.2.0-alpha04. يتضمّن الإصدار 1.2.0-alpha04 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمّت إعادة تسمية
ImageAnalysis.Analyzer#getTargetResolutionOverride()إلىImageAnalysis.Analyzer#getDefaultTargetResolution(). تم أيضًا تغيير السلوك بحيث يمكن تجاوز القيمة التي يعرضها هذا الإجراء بقيمةImageAnalysis#setTargetResolution(). (If1d36) - واجهة برمجة تطبيقات مكشوفة لضبط البيانات الوصفية الخاصة بالموقع الجغرافي للفيديو المحفوظ يمكن ضبط عنصر
android.location.Locationمن خلال واجهة برمجة التطبيقات الجديدةandroidx.camera.video.OutputOptions.Builder.setLocation(Location). (I313a0، b/204197544)
إصلاح الأخطاء
- إصلاح المشكلة المتعلقة بالتقاط صورة باستخدام معاينة غير مرتبطة (Ie70b6، b/235119898)
- تم إصلاح عُطل في
Recorderعند محاولة التسجيل أثناء عدم توفّر مصدر الصوت. (I9f652)
الإصدار 1.2.0-alpha03
29 يونيو 2022
تم طرح androidx.camera:camera-*:1.2.0-alpha03. يتضمّن الإصدار 1.2.0-alpha03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة التعليق التوضيحي التجريبي الخاص بـ "
ImageAnalysis.Analyzer" و"MLKitAnalyzer". (I0ff22)
إصلاح الأخطاء
- تمت إضافة مهلة تلقائية للتركيز التلقائي تبلغ 5000 ملي ثانية، وسيتم إكمال جزء التركيز التلقائي مع عرض القيمة
isFocusSuccessfulfalse إذا لم يتم إلغاءFocusMeteringActionولم يتم دمج جزء التركيز التلقائي خلال المدة المحددة. (Ibc2e3) - حلّ المشكلة المتعلقة بالتقاط صورة باستخدام معاينة غير مرتبطة (I1d3a2، b/235119898)
- تفعيل التنفيذ المتقدّم للملحقات وتعديل إصدار واجهة ملحقات دعم CameraX إلى 1.2 (I92256)
الإصدار 1.2.0-alpha02
1 يونيو 2022
تم طرح androidx.camera:camera-*:1.2.0-alpha02. يتضمّن الإصدار 1.2.0-alpha02 هذه التعديلات.
الميزات الجديدة
- إتاحة واجهة برمجة التطبيقات Zero-Shutter Lag API في CameraX كواجهة تجريبية
تغييرات واجهة برمجة التطبيقات
- أضِف وضع الالتقاط الجديد
CAPTURE_MODE_ZERO_SHUTTER_LAGفيImageCaptureوأضِفisZslSupportedفيCameraInfoللاستعلام عن إمكانات الجهاز. يهدف الوضعCAPTURE_MODE_ZERO_SHUTTER_LAGإلى توفير الحدّ الأدنى من وقت الاستجابة لإجراء عملية الالتقاط الفوري. يتم تنفيذها استنادًا إلى مخزن مؤقت حلقي يخزّن نتائج الالتقاط المؤقتة لإعادة معالجتها لاحقًا عندما يضغط المستخدم على الأزرار لالتقاط الصور. سيتم إيقاف هذا الوضع تلقائيًا في حال ربط {@link VideoCapture} أو إذا لم يكن وضع الفلاش OFF أو إذا كانت إضافة OEM مفعّلة. (I9ae74) - إضافة طريقة
ImageAnalysis.getBackgroundExecutor()(Icc945)
إصلاح الأخطاء
- تم إصلاح الخطأ الذي كان يؤدي إلى إيقاف المصباح في الأجهزة التي تم الإبلاغ عنها عند استخدام طريقة
ImageCapturetakePicture. (Ib5eb5، b/228272227) - تم إصلاح الخطأ الذي كان يؤدي إلى عدم التعامل مع
AssertionErrorعند الحصول على السمةCONTROL_ZOOM_RATIO_RANGE.(/Ia248a، b/231701345)
الإصدار 1.2.0-alpha01
18 مايو 2022
تم طرح androidx.camera:camera-*:1.2.0-alpha01. يتضمّن الإصدار 1.2.0-alpha01 هذه التعديلات.
الميزات الجديدة
- تم إطلاق مكتبة camera-mlkit-vision الجديدة
إصلاح الأخطاء
- تم إصلاح مشكلة عدم تسجيل فيديو بدقة UHD عند تفعيل استراتيجية احتياطية.
QualitySelectorتحدث المشكلة عندما يكونVideoCaptureمرتبطًا بـImageCaptureو"المعاينة" على جهاز كاميرا بمستوى أجهزة FULL أو أعلى. تتسبّب استراتيجية احتياطية بقيمةQualitySelectorفي حصولVideoCaptureبشكلٍ غير صحيح على دقة FHD. درجة الدقة الفائقة الوضوح متاحة في الواقع لمجموعة حالات الاستخدام هذه ويجب اعتمادها. (I0e788، b/230651237) - تم حلّ المشكلة
NullPointerExceptionفي ImageCapture.takePicture(). (I92366، b/230454568، b/229766155) - إصلاح سلوك الإيقاف المؤقت غير المتزامن في
androidx.camera.video.Recorder(Ia8ce8)
الإصدار 1.1.0 من Camera-Camera2 وCamera-Core وCamera-Lifecycle وCamera-Video
الإصدار 1.1.0
29 يونيو 2022
تم طرح androidx.camera:camera-*:1.1.0. يتضمّن الإصدار 1.1.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.0.0
- مكتبات Landed View وExtension وVideo Capture كأول إصدار تجريبي لها بدءًا من الإصدار 1.1.0-beta01، ستتضمّن جميع مكتبات CameraX رقم الإصدار نفسه. سيساعد ذلك المطوّرين في تتبُّع الإصدارات بسهولة أكبر وتقليل تعقيد مصفوفات توافق الإصدارات الكبيرة.
- قدّمنا واجهات برمجة تطبيقات وميزات عامة جديدة، بما في ذلك:
- أضِف مكتبة الكاميرا والفيديو الرسمية لدعم حالات استخدام تسجيل الفيديو.
- إمكانية تحويل YUV إلى RGB وتدوير الصورة (
ImageAnalysis.Builder.setOutputImageRotationEnabledوsetOutputImageFormat) - إتاحة وضع النوافذ المتعددة من خلال السماح لتطبيقات CameraX باستئناف استخدام الكاميرا عندما يقطع تطبيق آخر استخدامها والعودة إلى التركيز
- تضمن هذه الإصدارات عمل CameraX بشكل جيد على الأجهزة القابلة للطي من خلال إصلاح بعض مشاكل المعاينة.
- تمت إضافة واجهة برمجة تطبيقات
CameraStateسيتم عرضها من خلال CameraInfo. - تمت إضافة واجهة برمجة تطبيقات
ProcessCameraProvider.getAvailableCameraInfos()لاسترداد معلومات حول الكاميرات المتاحة مباشرةً - تنسيق JPEG الناتج لـ
ImageCapture#OnImageCapturedCallbackعندما تكون الإضافات مفعَّلة - تمت إضافة واجهة برمجة تطبيقات
isFocusMeteringSupportedفيCameraInfoتتيح للتطبيقات التحقّق مما إذا كانFocusMeteringActionالمحدّد متوافقًا مع الكاميرا الحالية أم لا. - تم عرض واجهة برمجة التطبيقات
getResolutionInfoلتوفير معلومات الدقة لكل منImageCaptureوImageAnalysis. - تمت إضافة واجهة برمجة تطبيقات جديدة
ImageCapture.Builder#setJpegQualityللسماح بتغيير جودة ضغط صور JPEG الناتجة عند التقاط الصور. - تمت إضافة
CameraSelector#filterإلى واجهة برمجة التطبيقات العامة لفلترة قائمةCameraInfosاستنادًا إلىCameraSelector. - تمت إضافة
Camera2CameraControl.clearCaptureRequestOptionsلمحو خيارات طلب الالتقاط الحالية. - تمت إضافة واجهة برمجة تطبيقات تجريبية لاستخدام
CameraControllerمع مكتبات معالجة الصور الخارجية، مثل MLKit. - تمت إضافة واجهة برمجة تطبيقات تجريبية
CameraInfo#getCameraSelector()تعرضCameraSelectorفريدًا للكاميرا - تمت ترقية العديد من واجهات برمجة التطبيقات التجريبية إلى واجهات برمجة تطبيقات عامة رسمية
- تم استبدال التعليق التوضيحي
@Experimentalبالتعليق التوضيحي@RequiresOptInلواجهات برمجة التطبيقات التجريبية. لاستدعاء واجهات برمجة التطبيقات التجريبية، استخدِم androidx.annotation.OptIn بدلاً من androidx.annotation.experimental.UseExperimental المتوقّفة نهائيًا. - تمت ترقية واجهات برمجة التطبيقات التجريبية التالية إلى واجهات برمجة تطبيقات رسمية:
CameraXConfig.Builder#setAvailableCamerasLimiter()وCameraXConfig.Builder#setMinimumLoggingLevel()وCameraXconfig.Builder#setSchedulerHandler()وCameraXConfig#getAvailableCamerasLimiter()وCameraXConfig#getMinimumLoggingLevel()وCameraXConfig#getCameraExecutor()وCameraXConfig#getSchedulerHandler() @ExperimentalCameraFilterواجهات برمجة التطبيقات- واجهات برمجة التطبيقات التجريبية لتعويض درجة الإضاءة
- تمت ترقية واجهة برمجة التطبيقات التجريبية
UseCaseGroupالخاصة بـ camera-core وcamera-lifecycle وcamera-video. تمت إضافةViewPort#getLayoutDirectionوViewPort.Builder#setLayoutDirectionوViewPort.Builder#setScaleTypeلتخصيص إطار العرض. - تمت ترقية
ExperimentalUseCaseGroupLifecycleإلى واجهات برمجة تطبيقات رسمية متاحة للجميع. - التغييرات على واجهات برمجة التطبيقات الحالية
Renamed MediaStoreOutputOptions.getCollectionإلىMediaStoreOutputOptions.getCollectionUri.- تمت إعادة تسمية "
ActiveRecording" إلى "تسجيل" لتقليل الإسهاب. - تغيير واجهة برمجة التطبيقات
QualitySelectorالخاصة بصنّاع المحتوى إلى واجهة برمجة تطبيقات مستندة إلى القوائم
إصلاح الأخطاء
- تم إصلاح مشكلة
YuvToJpegProcessorEOFExceptionعند تفعيل وضع الإضافة وضبط وضعImageCapture#CAPTURE_MODE_MAX_QUALITY. - تعذّر إصلاح إعدادات برنامج الترميز بسبب إغلاق تسجيل الفيديو
- تم إصلاح نسبة العرض إلى الارتفاع غير الصحيحة للمعاينات/الفيديوهات عند التسجيل بدقة FHD
- تم إصلاح مشكلة عدم مزامنة الصوت والفيديو بعد الإيقاف المؤقت والاستئناف على بعض الأجهزة
- تم إصلاح المشكلة التي يتم فيها تشغيل الفلاش أثناء النقر للتركيز (
startFocusAndMetering) عندما يكون وضع الفلاش تلقائيًا أو always_on في بيئة منخفضة الإضاءة.
الإصدار 1.1.0-rc02
1 يونيو 2022
تم طرح androidx.camera:camera-*:1.1.0-rc02. يتضمّن الإصدار 1.1.0-rc02 هذه التعديلات.
إصلاح الأخطاء
- تم حلّ المشكلة
NullPointerExceptionفي ImageCapture.takePicture(). (I92366، b/230454568، b/229766155) - تم إصلاح الخطأ الذي كان يؤدي إلى عدم التعامل مع
AssertionErrorعند الحصول على السمةCONTROL_ZOOM_RATIO_RANGE. (Ia248a، b/231701345)
الإصدار 1.1.0-rc01
11 مايو 2022
تم طرح androidx.camera:camera-*:1.1.0-rc01. يتضمّن الإصدار 1.1.0-rc01 هذه التعديلات.
الميزات الجديدة
- إصدار أول إصدار مرشّح للإصدار (RC) خاص بالكاميرا والفيديو وعرض الكاميرا وملحقات الكاميرا
إصلاح الأخطاء
- تم إصلاح مشكلة عدم إصدار ترميز الفيديو عند إلغاء ربط
VideoCapture<Recorder>، ما يؤدي إلى تعذُّر استخدامVideoCapture<Recorder>لاحقًا في التسجيل باستخدامMediaCodec.CodecException، خاصةً على الأجهزة التي تعمل بالإصدارات 21 و22 من واجهة برمجة التطبيقات. (Ie7f68) - إصلاح مشكلة عدم حذف الصور الملتقطة من
CameraExtensionsActivityفيImageCaptureTest
الإصدار 1.1.0-beta03
6 أبريل 2022
تم طرح androidx.camera:camera-*:1.1.0-beta03. يتضمّن الإصدار 1.1.0-beta03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم حظر أداة الإنشاء
CaptureRequestOptions. (I261b6) - تمت إضافة واجهة برمجة تطبيقات تجريبية لاستخدام
CameraControllerمع مكتبات معالجة الصور الخارجية، مثل MLKit (I4ea71)
إصلاح الأخطاء
- تم إصلاح المشكلة التي تتسبّب في ظهور المعاينة بشكل جانبي في
PreviewViewعندما لا تتم إعادة تشغيل النشاط بعد تدوير الأجهزة في وضع النوافذ المتعددة. (I1ea36، b/223488673) - تم إصلاح مشكلة في النوافذ المتعددة تؤدي إلى تعذُّر استئناف الكاميرا عند إعادة التركيز على التطبيق في الحالات التالية: (1) يفتح تطبيق آخر ذو أولوية عالية كاميرا مختلفة، (2) الجهاز هو أحد أجهزة Samsung التي تعمل بنظام التشغيل Android 12. (I7e9f2)
- تم تضمين حلّ بديل للأجهزة التي تتعطّل عند التحقّق من توفّر الفلاش. لن يتوفّر مصباح يدوي على هذه الأجهزة. (If26a3، b/216667482)
- تم إصلاح المشكلة
AbstractMethodErrorالتي تحدث عندما تستخدم التطبيقات الإضافات وتفعّل Proguard. (I7cbaf، b/222726805) - فرض إيقاف وضع "تأثير البوكيه" على جهاز Motorola razr 5G، ما سيؤدي إلى ظهور شاشة معاينة سوداء. (I35d49)
- تم إصلاح مشكلة عدم مزامنة الصوت والفيديو بعد الإيقاف المؤقت والاستئناف على بعض أجهزة Samsung التي تعمل بإصدارات أقدم من واجهة برمجة التطبيقات 29. (I64622، b/202798609، b/202798572)
- تم إصلاح مشكلة عدم مزامنة الصوت والفيديو بعد الإيقاف المؤقت والاستئناف على هاتف Sony G3125. (I2a1a5، b/202799148)
- تم إصلاح عُطل يحدث عندما يواجه تطبيق "المسجّلة"
InvalidConfigException. ومع ذلك، يمنع هذا الحلّ التطبيق من تعطّله فقط، ولكنّه لا يعالج سبب الخطأInvalidConfigException. إذا تعذّر ضبطRecorder، ستتلقّى التطبيقات ردّ اتصال يتضمّن خطأ عند بدء التسجيل. (I89c29، b/213617227)
المساهمة الخارجية
- تم تعديل واجهة برمجة التطبيقات updated :compose:ui:ui-test (updateApi) بسبب نقل test-coroutines-lib (I3366d)
الإصدار 1.1.0-beta02
23 فبراير 2022
تم طرح androidx.camera:camera-*:1.1.0-beta02. يتضمّن الإصدار 1.1.0-beta02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إضافة إمكانية تحديد رقم تعريف الكاميرا المادية من خلال Camera2Interop (I5aed8)
إصلاح الأخطاء
- تم إصلاح مشكلة المعاينة الممدّدة على هاتف Oppo Find N (I7d004)
- تم إصلاح مشكلة في هاتف Galaxy J7 Prime تؤدي إلى تشوّه المعاينة. (I4c500)
- استخدام معدّل بت متوافق للعثور على برنامج ترميز الفيديو (d969052)
الإصدار 1.1.0-beta01
26 يناير 2022
تم طرح androidx.camera:camera-*:1.1.0-beta01. يتضمّن الإصدار 1.1.0-beta01 هذه التعديلات.
الميزات الجديدة
- بدءًا من الإصدار 1.1.0-beta01، ستتضمّن جميع مكتبات CameraX رقم الإصدار نفسه. سيساعد ذلك المطوّرين في تتبُّع الإصدارات بسهولة أكبر وتقليل تعقيد مصفوفة توافق الإصدارات الكبيرة.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة
Camera2CameraControl.clearCaptureRequestOptionsلمحو خيارات طلب الالتقاط الحالية. (Ifa07d)
إصلاح الأخطاء
- تم إصلاح العُطل الذي كان يحدث عند تسجيل الفيديو على بعض الأجهزة التي تعمل بإصدارات أقدم من Android O(الإصدار 26 من واجهة برمجة التطبيقات). (I88fdf، b/212328261)
- تم إصلاح مشكلة منطقة التركيز التلقائي غير الصحيحة عند استخدام
cameraControl#startFocusAndMetering()على الكاميرا الأمامية في أجهزة Samsung (Ifbf59، b/210548792) - استخدام المصباح اليدوي كفلاش في هواتف Pixel 3a وPixel 3a XL لتحسين السرعة وجودة الصورة الملتقطة في الظلام (Ib12b6، b/211474332)
- تم تفعيل التطبيقات لاستئناف استخدام الكاميرا عندما يتم مقاطعة الكاميرا بواسطة تطبيق آخر ذي أولوية أعلى في وضع النوافذ المتعددة، وعندما يعود التركيز إلى التطبيق. يُرجى العِلم أنّه قد يحدث بعض التأخير(من ثانية واحدة إلى 10 ثوانٍ أو أكثر) بين تغييرات التركيز وإعادة فتح الكاميرا بسبب بعض المشاكل في إطار العمل. (I4d092)
الإصدار 1.1.0-alpha12
15 كانون الأول (ديسمبر) 2021
تم طرح androidx.camera:camera-*:1.1.0-alpha12. يتضمّن الإصدار 1.1.0-alpha12 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة تعليقات
@RequiresApi(21)التوضيحية غير الضرورية من الفئات/الواجهات الداخلية. (I8e286، b/204917951) - تم تغيير ثوابت الجودة وثوابت استراتيجية الاحتياط في
QualitySelectorليتم تمثيلها بواسطة عناصر الفئة. على سبيل المثال، يتم تغييرQualitySelector.QUALITY_HDإلىQuality.HD، ويتم تغييرQualitySelector.FALLBACK_STRATEGY_LOWERإلى القيمة التي تعرضهاFallbackStrategy.lowerQualityOrHigherThan(Quality). تم تغيير واجهة برمجة التطبيقات المستخدَمة لإنشاءQualitySelectorإلى واجهة برمجة تطبيقات مستندة إلى القوائم. ستشير واجهة برمجة التطبيقات الجديدةQualitySelector.fromOrderedList(List<Quality>)إلى ترتيب قائمة جودة الإدخال بدلاً من الترتيب الذي تم إنشاؤه بواسطةQualitySelector.Procedure. تمت إزالة الصفQualitySelector.Procedure. (I43343) - تمت إزالة
PendingRecording.withEventListener()ويجب الآن تمرير أداة معالجة الحدث إلىPendingRecording.start(). يهدف شرط أداة معالجة الأحداث هذا إلى تشجيع التعامل مع الأخطاء غير المتزامنة التي يتم الإبلاغ عنها في الحدثVideoRecordEvent.Finalize. (I1e71d) - تمت إعادة تسمية
ActiveRecordingإلىRecordingلتقليل الإسهاب. (I77ceb)
إصلاح الأخطاء
- تم إصلاح المشكلة التي تؤدي إلى نقص سطوع الصور الملتقطة في وضع
FLASH_AUTOفي ظروف الإضاءة المنخفضة على هاتفَي Pixel 3a وPixel 3a XL (I13f19، b/205373142) - استخدِم دائمًا أحدث حجم شاشة عرض لتحديد المعاينة
Resolution. (I4a694) - تم استبعاد الكاميرات التي لا تتضمّن
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE. تتضمّن الكاميرات التي تستخدمREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEالحدّ الأدنى من الإمكانات التي يتيحها كل جهاز كاميرا. قد تكون الكاميرا التي لا تحتوي علىREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEكاميرا تتيح وظائف خاصة ولا تتيح إخراج الألوان العادي. لا يمكن أن يتيحCameraXحالات استخدامPreviewأوImageCaptureأوImageAnalysisأوVideoCaptureلهذه الكاميرات. لذلك، يجب فلترة هذه الكاميرات لمنع الاستخدام غير الصحيح. (Ib8cda) - لم يعُد
CameraSelector#filterيعرض الخطأIllegalArgumentExceptionعندما تكون مجموعة النتائج فارغة. (I27804) - يتم الآن استخدام إرشادات أكثر ذكاءً لاختيار إعدادات برنامج الترميز استنادًا إلى الملفات الشخصية التي يحدّدها مصنّع المعدات الأصلية. (Iaeef0)
- ستظهر خطوط ألوان متداخلة في "المعاينة الثابتة" بعد بدء تسجيل فيديو بدقة فائقة على هاتف Pixel1. (I833c6، b/205340278)
الإصدار 1.1.0-alpha11
17 نوفمبر 2021
تم طرح androidx.camera:camera-*:1.1.0-alpha11. يتضمّن الإصدار 1.1.0-alpha11 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة CameraSelector#filter إلى واجهة برمجة التطبيقات العامة لفلترة قائمة CameraInfo استنادًا إلى CameraSelector. (I105d0)
إضافة واجهة برمجة التطبيقات setOutputImageRotationEnabled لإعداد ImageAnalysis يمكن للمستخدم تفعيل التدوير لمخزن مؤقت لصور YUV/RGB. درجة التدوير هي تدوير نسبي يتم احتسابه استنادًا إلى تدوير المستشعر والتدوير المستهدَف لإبقاء الصورة في المقدّمة.
إضافة واجهة برمجة التطبيقات setOutputImageRotationEnabled لإعداد ImageAnalysis يمكن للمستخدم تفعيل التدوير لمخزن مؤقت لصور YUV/RGB. درجة التدوير هي تدوير نسبي يتم احتسابه استنادًا إلى تدوير المستشعر والتدوير المستهدَف لإبقاء الصورة في المقدّمة.
إضافة واجهة برمجة التطبيقات
getSensorToBufferTransformMatrixفي ImageInfo المصفوفة المعروضة هي عملية ربط من إحداثيات المستشعر إلى إحداثيات المخزن المؤقت، أي من قيمةCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZEإلى(0, 0, image.getWidth, image.getHeight). يمكن استخدام المصفوفة لربط الإحداثيات من أحد {UseCase} بآخر. على سبيل المثال، ربط إحداثيات الوجه الذي تم رصده باستخدام ImageAnalysis بالمعاينة (I9ff1e)تمت إضافة واجهة برمجة التطبيقات الجديدة ImageCapture.Builder#setJpegQuality للسماح بتغيير جودة ضغط صورة JPEG الناتجة عند التقاط صورة. (I8dcf4)
تمت إعادة تسمية MediaStoreOutputOptions.getCollection إلى MediaStoreOutputOptions.getCollectionUri. (I16639)
إصلاح الأخطاء
- تم إصلاح المشكلة التي كانت تؤدي إلى تشغيل الفلاش أثناء النقر للتركيز (startFocusAndMetering) عندما يكون وضع الفلاش تلقائيًا أو always_on في بيئة منخفضة الإضاءة. (Id4c11)
- تم إيقاف تقنية HDR+ على هاتفَي Pixel 2 XL وPixel 3 XL في وضع MINIMIZE_LATENCY لتقليل وقت الاستجابة. (Ib6270، b/203505523)
المساهمة الخارجية
الإصدار 1.1.0-alpha10
13 أكتوبر 2021
تم طرح androidx.camera:camera-*:1.1.0-alpha10. يتضمّن الإصدار 1.1.0-alpha10 هذه التعديلات.
الميزات الجديدة
- تم إصدار
androidx.camera:camera-video:1.1.0-alpha10كأول إصدار أولي من "الفيديو" رسميًا. هناك العديد من المشاكل المعروفة التي سيتم إصلاحها في الإصدارات اللاحقة.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة التعليق التوضيحي
@RequiresApi(21)إلى جميع فئات CameraX، وتمت إزالة minSdkVersion من ملف AndroidManifest.xml. سيسمح ذلك بدمج camera-core بسهولة في التطبيقات التي تتضمّن الإصدار 21 من حزمة minSdkVersion أو الإصدارات الأقل، ولكنها تريد استخدام مسارات الرموز التي تعتمد على الإصدار 21 من واجهة برمجة التطبيقات والإصدارات الأحدث بشكل مشروط. لا يتطلّب هذا التغيير اتّخاذ أي إجراء في أي تطبيق يتضمّن الإصدار 21 من حزمة minSdkVersion أو الإصدارات الأعلى. (Ie7f2e، b/200599470)
إصلاح الأخطاء
- طرح InitializationException لتمكين التطبيق من التعامل مع AssertionError الذي حدث عند إنشاء CameraCharacteristics بشكل سليم (Ibec79)
الإصدار 1.1.0-alpha09
29 سبتمبر 2021
تم إصدار androidx.camera:camera-camera2:1.1.0-alpha09 وandroidx.camera:camera-core:1.1.0-alpha09 وandroidx.camera:camera-lifecycle:1.1.0-alpha09. يتضمّن الإصدار 1.1.0-alpha09 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة التعليق التوضيحي ExperimentalUseCaseGroup بعد أن لم تعُد واجهات برمجة التطبيقات تجريبية. (I01ef5)
إصلاح الأخطاء
- تم إصلاح المشكلة التي تؤدي إلى تشويش الصور الملتقطة في وضع
MAXIMIZE_QUALITY. (I173a9، b/193823892) - تم إصلاح مشكلة في هاتف Samsung Galaxy J5 تؤدي إلى تعذُّر استخدام الكاميرا بعد التقاط صور باستخدام الفلاش في بيئة مظلمة (I3aab9)
- عند الحاجة إلى اقتصاص الصورة في ImageCapture، يتم ضغط الصورة المقتصة الناتجة بمستوى جودة JPEG المحدّد وفقًا لوضع الالتقاط المضبوط. إذا كان وضع الالتقاط
CAPTURE_MODE_MINIMIZE_LATENCY، ستكون جودة ضغط JPEG 95. إذا كان وضع الالتقاطCAPTURE_MODE_MAXIMIZE_QUALITY، ستكون جودة ضغط JPEG 100. (Ieb37c، b/142856426)
الإصدار 1.1.0-alpha08
18 أغسطس 2021
تم إصدار androidx.camera:camera-camera2:1.1.0-alpha08 وandroidx.camera:camera-core:1.1.0-alpha08 وandroidx.camera:camera-lifecycle:1.1.0-alpha08. يتضمّن الإصدار 1.1.0-alpha08 هذه التعديلات.
الميزات الجديدة
- إضافة واجهة برمجة التطبيقات setOutputImageFormat لإعداد تحليل الصور يمكن للمستخدم اختيار ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 أو ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. سيتم تلقائيًا اختيار ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888. (I7902d)
تغييرات واجهة برمجة التطبيقات
- تمت إزالة التعليق التوضيحي ExperimentalUseCaseGroupLifecycle بعد أن أصبحت واجهات برمجة التطبيقات غير تجريبية. (I17b85)
إصلاح الأخطاء
- تم إصلاح مشكلة سطوع شاشة "المعاينة الثابتة" بشكل مفرط على هاتف Huawei P20 Lite. لا تحدث هذه المشكلة إلا عند استخدام دقة معاينة خاصة مع قيمة تكبير كبيرة. (Idefce، b/192129158)
- تم إصلاح مشكلة عدم عمل الفلاش على بعض الأجهزة عند ضبط وضع الفلاش على FLASH_MODE_ON ثم التقاط الصور بعد فترة وجيزة. (Ieb49b)
- تم إصلاح المشكلة التي تؤدي إلى توقّف "المعاينة" لفترة من الوقت عند التقاط الصور في حال ربط VideoCapture وImageCapture و"المعاينة". (I56197، b/193864120)
- تسمح لـ ImageAnalysis باختيار درجة دقة أكبر من 1080p. يمكن لجهاز بمستوى LIMITED أو أعلى أن يتيح دقة RECORD في ImageAnalysis عند ربطه مع Preview وImageCapture. المقايضة هي أنّ درجة الدقة المحدّدة لـ ImageCapture يجب أن تكون أيضًا درجة دقة بحجم RECORD. لاختيار دقة حجم RECORD بنجاح في ImageAnalysis، يجب ضبط دقة حجم RECORD المستهدَفة في كل من ImageCapture وImageAnalysis. يشير ذلك إلى أنّ التطبيق يفهم بوضوح المفاضلة ويفضّل أن تكون دقة ImageAnalysis أكبر من دقة ImageCapture القصوى. للاطّلاع على تعريفات RECORD وMAXIMUM sizes والمزيد من التفاصيل، يُرجى الانتقال إلى https://developer.android.com.acc.wang/reference/android/hardware/camera2/CameraDevice#regular-capture. يشير حجم RECORD إلى الحد الأقصى لدقة التسجيل التي يتيحها جهاز الكاميرا، كما هو محدّد في CamcorderProfile. يشير الحجم الأقصى إلى الحد الأقصى لدقة الإخراج لجهاز الكاميرا لهذا التنسيق أو الهدف من StreamConfigurationMap.getOutputSizes(int). (I1ee97، b/192911449)
- أضِف معلومات Exif إلى الصورة التي تم التقاطها. (I01ff0، b/193342619)
- في ImageCapture، يمكنك عرض معرّف الموارد المنتظم (URI) للصورة المحفوظة إذا كان موقع الحفظ هو "ملف". (Ib5b49، b/149241379)
- تم إصلاح مشكلة ظهور الصور التي تم التقاطها باستخدام الفلاش باللون الداكن على العديد من الأجهزة. (I4e510)
الإصدار 1.1.0-alpha07
21 تموز (يوليو) 2021
تم إصدار androidx.camera:camera-camera2:1.1.0-alpha07 وandroidx.camera:camera-core:1.1.0-alpha07 وandroidx.camera:camera-lifecycle:1.1.0-alpha07. يتضمّن الإصدار 1.1.0-alpha07 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة في هاتف Samsung Galaxy Note 5 تؤدي إلى توقّف الكاميرا عن العمل بعد التقاط صور باستخدام الفلاش في الوضع "تلقائي" أو "تشغيل" في بيئة مظلمة (If6871)
- تم إصلاح مشكلة
YuvToJpegProcessorEOFException عند تفعيل وضع الإضافة وضبط الوضع علىImageCapture#CAPTURE_MODE_MAX_QUALITY. (I538bd، b/192017012)
الإصدار 1.1.0-alpha06
30 حزيران (يونيو) 2021
تم إصدار androidx.camera:camera-camera2:1.1.0-alpha06 وandroidx.camera:camera-core:1.1.0-alpha06 وandroidx.camera:camera-lifecycle:1.1.0-alpha06. يتضمّن الإصدار 1.1.0-alpha06 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- الترويج لواجهات برمجة التطبيقات التجريبية لتعويض التعرض للضوء في camera-core (I08ee8)
- تمت إضافة واجهة برمجة التطبيقات isFocusMeteringSupported إلى CameraInfo، ما يتيح للتطبيقات التحقّق مما إذا كان FocusMeteringAction المحدّد متاحًا على الكاميرا الحالية أم لا. (Ib45ae، b/188606490)
- تم إتاحة واجهة برمجة التطبيقات getResolutionInfo لتوفير معلومات الدقة لكلّ من "المعاينة" وImageCapture وImageAnalysis. (I2b613، b/188600718)
- تمت ترقية واجهات برمجة التطبيقات التجريبية التالية إلى واجهات برمجة تطبيقات رسمية: CameraXConfig.Builder#setAvailableCamerasLimiter()، CameraXConfig.Builder#setMinimumLoggingLevel()، CameraXconfig.Builder#setSchedulerHandler()، CameraXConfig#getAvailableCamerasLimiter()، CameraXConfig#getMinimumLoggingLevel()، CameraXConfig#getCameraExecutor()، CameraXConfig#getSchedulerHandler(). (I2ade2)
- تم عرض واجهة CameraProvider لتوفير إمكانية الوصول إلى مجموعة من الكاميرات. (I1a7b1)
- الترويج لواجهة برمجة التطبيقات التجريبية UseCaseGroup الخاصة بمكتبات camera-core وcamera-lifecycle وcamera-video تمت إضافة
ViewPort#getLayoutDirectionوViewPort.Builder#setLayoutDirectionوViewPort.Builder#setScaleTypeلتخصيص إطار العرض. (I7cee8)
الإصدار 1.1.0-alpha05
2 حزيران (يونيو) 2021
تم إصدار androidx.camera:camera-camera2:1.1.0-alpha05 وandroidx.camera:camera-core:1.1.0-alpha05 وandroidx.camera:camera-lifecycle:1.1.0-alpha05. يتضمّن الإصدار 1.1.0-alpha05 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة الصف
Camera2CameraFilter. ننصحك باختيار الكاميرا باستخدام CameraFilter واسترداد CameraCharacteristics أو معلومات أخرى ذات صلة بـ Camera2 من خلال Camera2CameraInfo إذا لزم الأمر. (Ib887c) - أصبحت واجهات
ExperimentalCameraFilterAPIs الآن خارج المرحلة التجريبية وأصبحت واجهات رسمية. ويمكن استخدامها بدون موافقة مع إضافة تعليق توضيحي. (I4bc94) - تمت إضافة واجهة برمجة تطبيقات لحالة الكاميرا يتم عرضها من خلال
CameraInfo#getCameraState(). (Ia86b4) - تمت إضافة واجهة برمجة تطبيقات تجريبية
CameraInfo#getCameraSelector()تعرض CameraSelector فريدًا للكاميرا (I77f9f)
إصلاح الأخطاء
- تم إصلاح المشكلة التي تسبّبت في عدم إكمال ListenableFuture الذي تم عرضه في setZoomRatio وsetLinearZoom على بعض أجهزة Android 11 (I716d7)
- تسريع عملية التبديل بين الكاميرات وتقليل معدّل حدوث الخطأ في جهاز الكاميرا (I34c99)
- تم استبدال ExperimentalUseCaseGroupLifecycle بـ ExperimentalUseCaseGroup. (I3b2ef، b/159033688)
الإصدار 1.1.0-alpha04
21 أبريل 2021
تم إصدار androidx.camera:camera-camera2:1.1.0-alpha04 وandroidx.camera:camera-core:1.1.0-alpha04 وandroidx.camera:camera-lifecycle:1.1.0-alpha04. يتضمّن الإصدار 1.1.0-alpha04 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح تسرب الذاكرة الناتج عن وصول سلاسل محادثات متعددة إلى المجموعة نفسها في الوقت نفسه. قد يؤدي تسرُّب الذاكرة إلى احتفاظ مثيل "معاينة" بـ "النشاط" أو "الجزء". (I7b4b8)
- تم استبدال التعليق التوضيحي
@Experimentalبالتعليق التوضيحي@RequiresOptInلواجهات برمجة التطبيقات التجريبية. لاستدعاء واجهات برمجة التطبيقات التجريبية، استخدِمandroidx.annotation.OptInبدلاً منandroidx.annotation.experimental.UseExperimentalالمتوقّفة نهائيًا. (Iff226) - تم إصلاح مشكلة ظهور صور باهتة عند تفعيل الفلاش أو ضبطه على "تلقائي" في ImageCapture على هاتف Samsung Galaxy S7. (I30001)
- تمت إضافة واجهة برمجة تطبيقات CameraState سيتم عرضها من خلال CameraInfo. (I75392)
الإصدار 1.1.0-alpha03
24 مارس 2021
تم إصدار androidx.camera:camera-camera2:1.1.0-alpha03 وandroidx.camera:camera-core:1.1.0-alpha03 وandroidx.camera:camera-lifecycle:1.1.0-alpha03. يتضمّن الإصدار 1.1.0-alpha03 هذه التعديلات.
إصلاح الأخطاء
- إخراج تنسيق JPEG لـ
ImageCapture#OnImageCapturedCallbackعندما تكون أوضاع الإضافات مفعَّلة (I0d7b1) - تم إصلاح مشكلة تعذُّر بدء التشغيل على أجهزة UMIDIGI BISON (I57d9e، b/180818665)
- تم إصلاح مشكلة معاينة Samsung A3 الممدّدة في PreviewView. (Iacb30، b/180121821)
الإصدار 1.1.0-alpha02
24 شباط (فبراير) 2021
تم إصدار androidx.camera:camera-camera2:1.1.0-alpha02 وandroidx.camera:camera-core:1.1.0-alpha02 وandroidx.camera:camera-lifecycle:1.1.0-alpha02. يتضمّن الإصدار 1.1.0-alpha02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهة برمجة تطبيقات
ProcessCameraProvider.getAvailableCameraInfos()لاسترداد معلومات مباشرةً عن الكاميرات المتاحة، والتي تكون إما جميع كاميرات الجهاز أو الكاميرات التي يختارهاCameraSelectorالمقدَّم فيCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector). (Ieac08)
إصلاح الأخطاء
- تحاول CameraX الآن فرض فتح الكاميرا في المحاولة الأولى، وقد يؤدي ذلك إلى أن تستولي CameraX على الكاميرا من برامج أخرى تستخدمها عندما يكون لتطبيقها أولوية أعلى. (Iab069، b/175820568)
- تم إصلاح مشكلة تعذُّر اختبار Robolectric عند استخدام setAvailableCamerasLimiter في CameraXConfig. (Ice307)
- يؤدي هذا التغيير إلى رصد الاستثناء عندما يكون الحد الأقصى لعدد الصور في قائمة انتظار ImageAnalysis. لذلك، بدلاً من التعطُّل، قد تلاحظ تجمّد حالات استخدام أخرى أو بطئها، مثل تجمّد المعاينة أو بطئها. (Ic12da، b/175851631)
- تم إصلاح ExtensionsErrorListener للإبلاغ عن الأخطاء عند ربط Preview أو ImageCapture فقط. (I5ae39)
- تم إصلاح مشكلة انخفاض أداء ImageCapture من خلال إزالة عملية التحقّق من الموقع الجغرافي المحفوظ للصورة قبل التقاطها. بعد إجراء هذا التغيير، إذا كانت وجهة الحفظ غير صالحة، سيستغرق الحصول على ردّ الخطأ وقتًا أطول لأنّه سيحاول حفظ الصورة بعد التقاطها. (I1fd4e، b/177061560)
- تم إصلاح مشكلة انخفاض أداء ImageCapture عند استخدام OutputFileOptions من النوع "File". (I5164a، b/177061560)
- تم تعديل المستندات لتنصح بعدم استخدام
ProcessCameraProvider.configureInstance(...)من رمز المكتبة. (Ib8a9f)
الإصدار 1.1.0-alpha01
27 يناير 2021
تم إصدار androidx.camera:camera-camera2:1.1.0-alpha01 وandroidx.camera:camera-core:1.1.0-alpha01 وandroidx.camera:camera-lifecycle:1.1.0-alpha01. يتضمّن الإصدار 1.1.0-alpha01 هذه التعديلات.
إصلاح الأخطاء
- تم تضمين حلّ بديل لبيانات الصور التالفة بشكل متقطّع في ملفات JPEG على الكاميرا الخلفية للجهاز SM-G930T. (I52001، b/159831206)
- تم إصلاح المشكلة
IllegalArgumentExceptionالتي كانت تحدث عندما تكون جميع الأحجام المتوافقة مع المعاينة أصغر من 640x480 ويكون حجم العرض أكبر من 640x480. (I2a63c، b/150506192) - أصبحت الموارد في المكتبات التي لا تتضمّن موارد عامة معرَّفة بوضوح (مثل public.xml) خاصة بشكل تلقائي. (Ia1dcc، b/170882230)
الإصدار 1.0.2 من Camera-Camera2 وCamera-Core وCamera-Lifecycle
الإصدار 1.0.2
29 سبتمبر 2021
تم إصدار androidx.camera:camera-camera2:1.0.2 وandroidx.camera:camera-core:1.0.2 وandroidx.camera:camera-lifecycle:1.0.2. يتضمّن الإصدار 1.0.2 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح المشكلة التي تؤدي إلى تشويش الصور الملتقطة في وضع
MAXIMIZE_QUALITY. (I173a9، b/193823892) - تم إصلاح مشكلة ظهور الصورة الملتقطة باستخدام الفلاش داكنة على العديد من الأجهزة. (I4e510)
الإصدار 1.0.1 من Camera-Camera2 وCamera-Core وCamera-Lifecycle
الإصدار 1.0.1
21 تموز (يوليو) 2021
تم إصدار androidx.camera:camera-camera2:1.0.1 وandroidx.camera:camera-core:1.0.1 وandroidx.camera:camera-lifecycle:1.0.1. يتضمّن الإصدار 1.0.1 هذه التعديلات.
إصلاح الأخطاء
تم إصلاح المشكلة التي تسبّبت في عدم إكمال
ListenableFutureفيsetZoomRatioوsetLinearZoomعلى بعض أجهزة Android 11 (I716d7)تم إصلاح المشكلة التي تتسبب في تعذُّر إغلاق الكاميرا على بعض الأجهزة وظهور معاينة سوداء. (I34c99)
الإصدار 1.0.0 من Camera-Camera2 وCamera-Core وCamera-Lifecycle
الإصدار 1.0.0
5 أيار (مايو) 2021
تم إصدار androidx.camera:camera-camera2:1.0.0 وandroidx.camera:camera-core:1.0.0 وandroidx.camera:camera-lifecycle:1.0.0. يتضمّن الإصدار 1.0.0 هذه التعديلات.
الميزات الرئيسية في الإصدار 1.0.0
- تتوافق CameraX مع المعاينة وImageCapture وAnalysis.
- تتولّى CameraX إدارة دورة حياة الكاميرا ضمن واجهة برمجة تطبيقات سهلة الاستخدام
- تهدف CameraX إلى توفير طبقة توافق تعمل على إصلاح العديد من المشاكل في منظومة Android المتكاملة للكاميرا
المشاكل المعروفة
الإصدار 1.0.0-rc05
21 أبريل 2021
تم إصدار androidx.camera:camera-camera2:1.0.0-rc05 وandroidx.camera:camera-core:1.0.0-rc05 وandroidx.camera:camera-lifecycle:1.0.0-rc05. يتضمّن الإصدار 1.0.0-rc05 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة ظهور صور باهتة عند تفعيل الفلاش أو ضبطه على "تلقائي" في ImageCapture على هاتف Samsung Galaxy S7. (I30001)
الإصدار 1.0.0-rc04
24 مارس 2021
تم إصدار androidx.camera:camera-camera2:1.0.0-rc04 وandroidx.camera:camera-core:1.0.0-rc04 وandroidx.camera:camera-lifecycle:1.0.0-rc04. يتضمّن الإصدار 1.0.0-rc04 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تعذُّر بدء التشغيل على أجهزة UMIDIGI BISON (I57d9e، b/180818665)
الإصدار 1.0.0-rc03
24 شباط (فبراير) 2021
تم إصدار androidx.camera:camera-camera2:1.0.0-rc03 وandroidx.camera:camera-core:1.0.0-rc03 وandroidx.camera:camera-lifecycle:1.0.0-rc03. يتضمّن الإصدار 1.0.0-rc03 هذه التعديلات.
إصلاح الأخطاء
- إصلاح خطأ التنسيق في مستند
ProcessCameraProvider#getInstance - تم إصلاح تعذُّر اختبار Robolectric عند استخدام setAvailableCamerasLimiter في CameraXConfig.
- تم إصلاح مشكلة انخفاض أداء ImageCapture من خلال إزالة عملية التحقّق من الموقع الجغرافي المحفوظ للصورة قبل التقاطها. بعد إجراء هذا التغيير، إذا كان وجهة الحفظ غير صالحة، سيستغرق الحصول على ردّ الخطأ وقتًا أطول لأنّه سيحاول حفظ الصورة بعد التقاطها.
- يؤدي هذا التغيير إلى رصد الاستثناء عندما يكون الحد الأقصى لعدد الصور في قائمة انتظار ImageAnalysis. لذلك، بدلاً من التعطُّل، قد تلاحظ تجمّد حالات استخدام أخرى أو بطئها، مثل تجمّد المعاينة أو بطئها.
- تم تضمين حلّ بديل لبيانات الصور التالفة بشكل متقطّع في ملفات JPEG على الكاميرا الخلفية للجهاز SM-G930T. (I52001، b/159831206)
- يؤدي هذا التغيير إلى رصد الاستثناء عندما يكون الحد الأقصى لعدد الصور في قائمة انتظار ImageAnalysis. لذلك، بدلاً من التعطُّل، قد تلاحظ تجمّد حالات استخدام أخرى أو بطئها، مثل تجمّد المعاينة أو بطئها. (Ic12da، b/175851631)
- تم إصلاح مشكلة تعذُّر اختبار Robolectric عند استخدام setAvailableCamerasLimiter في CameraXConfig. (Ice307)
- تم إصلاح مشكلة انخفاض أداء ImageCapture من خلال إزالة عملية التحقّق من الموقع الجغرافي المحفوظ للصورة قبل التقاطها. بعد إجراء هذا التغيير، إذا كانت وجهة الحفظ غير صالحة، سيستغرق الحصول على ردّ الخطأ وقتًا أطول لأنّه سيحاول حفظ الصورة بعد التقاطها. (I1fd4e، b/177061560)
- تم إصلاح مشكلة انخفاض أداء ImageCapture عند استخدام OutputFileOptions من النوع "File". (I5164a، b/177061560)
الإصدار 1.0.0-rc02
27 يناير 2021
تم إصدار androidx.camera:camera-camera2:1.0.0-rc02 وandroidx.camera:camera-core:1.0.0-rc02 وandroidx.camera:camera-lifecycle:1.0.0-rc02. يتضمّن الإصدار 1.0.0-rc02 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة IllegalArgumentException التي تحدث عندما تكون جميع أحجام المعاينة المتوافقة أصغر من 640×480 ويكون حجم الشاشة أكبر من 640×480. (b/150506192)
الحدّ من عدد محاولات إعادة فتح الكاميرا أثناء محاولة استرداد البيانات من بعض المشاكل عند فتح الكاميرا، لن تحاول CameraX إعادة فتح الكاميرا إلى أجل غير مسمى، بل ستتوقف بعد إعادة المحاولة لمدة 10 ثوانٍ.I435d2
تم إصلاح المشكلة
IllegalArgumentExceptionالتي كانت تحدث عندما تكون جميع الأحجام المتوافقة مع المعاينة أصغر من 640x480 ويكون حجم العرض أكبر من 640x480. (I2a63c، b/150506192)
الإصدار 1.0.0-rc01
16 كانون الأول (ديسمبر) 2020
تم إصدار androidx.camera:camera-camera2:1.0.0-rc01 وandroidx.camera:camera-core:1.0.0-rc01 وandroidx.camera:camera-lifecycle:1.0.0-rc01. يتضمّن الإصدار 1.0.0-rc01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم تغيير CameraFilter وCamera2Filter لتضمين CameraInfo. (I6883d)
- تمت إضافة فئة تجريبية باسم Camera2CameraControl للسماح بالتوافق مع واجهات برمجة التطبيقات Camera2 API بشكل ديناميكي. (I45cf3)
- تمت إعادة تسمية Camera2CameraInfo#fromCameraInfo إلى #from. (Ia2bd6)
- تمت إضافة واجهة برمجة التطبيقات التجريبية setAvailableCamerasLimiter إلى CameraXConfig للسماح للتطبيقات بتحسين وقت استجابة الإعداد من خلال تجنُّب إعداد الكاميرات غير المستخدَمة. (I6cf88)
- تمت إضافة طريقة تجريبية
CameraXConfig.Builder#setMinimumLoggingLevel()للسماح بضبط الحد الأدنى لمستوى التسجيل في سجلّات CameraX. في حال عدم ضبطها، تكون القيمة التلقائيةLog#DEBUG. (Ic3245)
إصلاح الأخطاء
- تم تضمين حلّ بديل لمشكلة تلف بيانات الصور بشكل متقطّع في ملفات JPEG على الكاميرا الخلفية للهاتف SM-G930V. (I5aca5، b/159831206)
- تم إصلاح المشكلة التي لا يتم فيها تلقّي نتائج عند التقاط الصور عندما يكون الفلاش دائمًا/مفعّلاً والبيئة مظلمة على أجهزة Samsung SM-A716. (If98b2، b/172036589)
- تم إصلاح المشكلة التي لا يمكن فيها إيقاف المعاينة من خلال الاتصال بالرقم
Preview.setSurfaceProvider(null). (I3ac18) - تم إصلاح مشكلة الاتجاه عند التقاط صور بنسبة عرض إلى ارتفاع 4:3 على بعض الأجهزة. (I0e3fb، b/171492111)
الإصدار 1.0.0-beta12 من Camera Camera2 وCore وLifecycle
11 نوفمبر 2020
تم إصدار androidx.camera:camera-camera2:1.0.0-beta12 وandroidx.camera:camera-core:1.0.0-beta12 وandroidx.camera:camera-lifecycle:1.0.0-beta12. يتضمّن الإصدار 1.0.0-beta12 هذه التعديلات.
إصلاح الأخطاء
- تم إيقاف ميزة "الفلاش التلقائي" على أجهزة Samsung A3 لإصلاح عطل يحدث عند التقاط صورة باستخدام وضع "التعرّض التلقائي للفلاش" على أجهزة Samsung A3. (Ia5fe3، b/157535165)
- تم إصلاح المشكلة التي كانت تؤدي إلى تمديد المعاينة على أجهزة Nexus 4 التي تعمل بالإصدار Android L (المستويان 21 و22 من واجهة برمجة التطبيقات). (I4d407، b/158749159)
- لم يعُد تنفيذ الفئة الأساسية
OnImageCapturedCallback#onCaptureSuccessيغلق الصورة. يهدف ذلك إلى منع حدوث سلوك غير متوقّع للمطوّرين. يجب ألّا يعتمد المطوّرون على super.onCaptureSuccess لإغلاق الصورة. (Ifbf9c) - تم إيقاف الإصدار androidx من التعليق التوضيحي Experimental نهائيًا ليتوافق مع لغة Kotlin. تم استبدالها بالتعليق التوضيحي RequiresOptIn، وتم تعديل أداة التدقيق اللغوي المتوافقة مع Java لتتوافق مع التعليق التوضيحي الجديد في Kotlin وإصدار androidx الجديد. (I52495، b/151331381)
الإصدار 1.0.0-beta11 من Camera-Camera2
14 أكتوبر 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta11. يتضمّن الإصدار 1.0.0-beta11 هذه التعديلات.
الميزات الجديدة
- يتوافق مع واجهة برمجة التطبيقات
CONTROL_ZOOM_RATIOلنظام التشغيل Android 11 على الأجهزة التي تعمل بالإصدار 11 من نظام التشغيل Android أو الإصدارات الأحدث والتي تحتوي علىCONTROL_ZOOM_RATIO_RANGEصالح. (I62cc6)
إصلاح الأخطاء
- تم إصلاح مشكلة NumberFormatException التي تحدث عندما يكون معرّف الكاميرا غير عدد صحيح. (Ib2228)
- تم تحسين وقت استجابة عملية تهيئة CameraX وbindToLifecycle (I61dc5).
- لا يتطلّب إنشاء UseCases إعداد CameraX
لإكمال العملية. يتم ضبط جميع الإعدادات الخاصة بالتنفيذ على
UseCase بعد ربطها بمثيل Camera، وهو
ProcessCameraProvider.bindToLifecycle()في واجهة برمجة التطبيقات العامة. (Ia5411) - ستعرض
<UseCase>.getTargetRotation()القيمةSurface.ROTATION_0إذا تم استدعاؤها قبل ربطها بمثيل Camera، ما لم يتم ضبط targetRotation في Builder أو UseCase. (I80fcd)
الإصدار 1.0.0-beta11 من Camera-Core
14 أكتوبر 2020
تم طرح androidx.camera:camera-core:1.0.0-beta11. يتضمّن الإصدار 1.0.0-beta11 هذه التعديلات.
الميزات الجديدة
- يتوافق مع واجهة برمجة التطبيقات CONTROL_ZOOM_RATIO لنظام التشغيل Android 11 لتكبير الشاشة على أجهزة Android 11 أو الإصدارات الأحدث التي تحتوي على CONTROL_ZOOM_RATIO_RANGE صالح. (I62cc6)
إصلاح الأخطاء
- تم إصلاح مشكلة NumberFormatException التي تحدث عندما يكون معرّف الكاميرا غير عدد صحيح. (Ib2228)
- لا يتطلّب إنشاء UseCases إعداد CameraX
لإكمال العملية. يتم ضبط جميع الإعدادات الخاصة بالتنفيذ على
UseCase بعد ربطها بمثيل Camera، وهو
ProcessCameraProvider.bindToLifecycle()في واجهة برمجة التطبيقات العامة. (Ia5411) - ستعرض
<UseCase>.getTargetRotation()القيمةSurface.ROTATION_0إذا تم استدعاؤها قبل ربطها بمثيل Camera، ما لم يتم ضبط targetRotation في Builder أو UseCase. (I80fcd)
الإصدار 1.0.0-beta10 من Camera-Core
23 سبتمبر 2020
تم طرح androidx.camera:camera-core:1.0.0-beta10. يتضمّن الإصدار 1.0.0-beta10 هذه التعديلات.
إصلاح الأخطاء
- إصلاح خطأ في التحقّق من صحة وجهة حفظ الملف عند التقاط الصور (I8c565، b/167697553)
الإصدار 1.0.0-beta10 من Camera-Camera2
23 سبتمبر 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta10. يتضمّن الإصدار 1.0.0-beta10 هذه التعديلات.
إصلاح الأخطاء
- إصدار متوافق مع Camera-Core 1.0.0-beta10
الإصدار 1.0.0-beta09 من Camera-Camera2
16 سبتمبر 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta09. يتضمّن الإصدار 1.0.0-beta09 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- بدلاً من توفير طرق ثابتة، تستقبل Camera2CameraInfo مثيلاً من CameraInfo عند إنشائه لاسترداد المعلومات ذات الصلة بـ Camera2. (I5b844)
إصلاح الأخطاء
- تم إصلاح مشكلة نسبة العرض إلى الارتفاع المستهدَفة على الأجهزة اللوحية. يجب اختيار الحجم 16:9 عند ضبط نسبة العرض إلى الارتفاع المستهدَفة على
AspectRatio.RATIO_16_9. (Ib7fcf، b/151969438) - إرسال
InitializationExceptionلتمكين التطبيق من التعامل مع AssertionError الذي حدث عند إنشاء CameraCharacteristics. (I89c8c، b/160524721) - تمت إضافة واجهات تجريبية لـ ExposureCompensation (If96c7)
الإصدار 1.0.0-beta09 من Camera-Core
16 سبتمبر 2020
تم طرح androidx.camera:camera-core:1.0.0-beta09. يتضمّن الإصدار 1.0.0-beta09 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم إصلاح الخطأ الذي كان يتم فيه وضع علامة على إطار العرض على أنّه غير فارغ في UseCaseGroup. يجب أن يتمكّن المطوّرون من إنشاء إطار عرض بدون ضبط إطار عرض. (Ie3d2e)
- تمت إضافة واجهات تجريبية لـ
ExposureCompensation(If96c7) - السماح بتدوير الهدف بشكل عشوائي في "المعاينة" يتم احتساب معلومات التحويل وإرجاعها إلى المستخدم في الوقت الفعلي من خلال وظيفة ردّ الاتصال الجديدة
TranformationInfoListener. (I21470)
إصلاح الأخطاء
- تم إصلاح المشكلة التي كانت تؤدي إلى عدم إيقاف الفلاش في بعض الأجهزة. يحدث ذلك عندما يتم ضبط وضع الفلاش على
FLASH_MODE_ONلالتقاط صورة، ثم يتم تغييره إلىFLASH_MODE_OFFعند تشغيل الفلاش. تكون المشكلة مشابهة لتفعيل وضع المصباح. (Ib4451، b/162568128) - فرض استخدام TextureView في PreviewView إذا كانت ميزة المؤثرات الخارجية مفعّلة وكان تنفيذ مكتبة المورّد يتطلّب إجراء عملية خاصة على مساحة العرض الناتجة (I0c3cc)
- تم إصلاح مشكلة تسريب النشاط/الجزء عند تمرير سياق نشاط/جزء إلى
ProcessCameraProvider.getInstance(Context).
المشاكل المعروفة
- عند ضبط ViewPort، قد يكون مستطيل الاقتصاص في ImageCapture غير صحيح على الأجهزة التي تدير مخزن الصور المؤقت في HAL. سيتم حلّ هذه المشكلة في الإصدار التالي.
الإصدار 1.0.0-beta08 من Camera-Camera2
19 آب (أغسطس) 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta08. يتضمّن الإصدار 1.0.0-beta08 هذه التعديلات.
إصلاح الأخطاء
- تم تحسين bindToLifecycle لتنفيذه بسرعة في سلسلة المحادثات الرئيسية. (I1d57e)
- تتلقّى DisplayOrientedMeteringPointFactory مثيلاً من CameraInfo بدلاً من CameraSelector، لذا هناك ربط مباشر بالكاميرا التي ستنشئ المصنع نقاطًا لها. تتلقّى جميع الفئات التي تستخدم DisplayOrientedMeteringPointFactory أيضًا مثيلاً من CameraInfo بدلاً من CameraSelector. (I400c1)
- تم إصلاح مشكلة تجميع أحجام نسبة العرض إلى الارتفاع للدقة التلقائية، والتي يتم فيها اختيار حجم 16:9 mod16 (864x480) عندما يكون إعداد الدقة المستهدفة 2016x1080 ويتوفّر حجم آخر 1920x1080 بنسبة 16:9. (I53167، b/159363774)
- إصلاح مشكلة CameraControl التي لا يمكن حلّها بسبب حالة سباق (I2279f وb/152333890 وb/160714166)
الإصدار 1.0.0-beta08 من Camera-Core
19 آب (أغسطس) 2020
تم طرح androidx.camera:camera-core:1.0.0-beta08. يتضمّن الإصدار 1.0.0-beta08 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تتلقّى
DisplayOrientedMeteringPointFactoryمثيلاً منCameraInfoبدلاً منCameraSelector، لذا هناك ربط مباشر بالكاميرا التي سينشئ المصنع نقاطًا لها. تتلقّى جميع الفئات التي تستخدمDisplayOrientedMeteringPointFactoryأيضًا مثيلاً منCameraInfoبدلاً منCameraSelector. (I400c1)
إصلاح الأخطاء
- لالتقاط الصور، استبدِل علامة "قلب الصورة أفقيًا" في البيانات الوصفية استنادًا إلى اتجاه الكاميرا. (I28499)
- من المفترض ألا يحدث بعد ذلك عطل عند بدء التشغيل عند استخدام Context لا يعرض عنصر Application من
Context.getApplicationContext(). (I3d3c9، b/160817073)
الإصدار 1.0.0-beta07 من Camera-Camera2
22 تموز (يوليو) 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta07. يتضمّن الإصدار 1.0.0-beta07 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح المشكلة التي تتسبّب في تمديد المعاينة على جهاز قديم يعمل بالإصدار 5.0 من نظام التشغيل Android. (I0c03a)
- تم استبعاد بعض الأحجام المتوافقة مع JPEG والتي ستتسبّب في حدوث مشكلة WYSIWYG على بعض الأجهزة. (Ib5128)
الإصدار 1.0.0-beta07 من Camera-Core
22 تموز (يوليو) 2020
تم طرح androidx.camera:camera-core:1.0.0-beta07. يتضمّن الإصدار 1.0.0-beta07 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- دمج نمط اللياقة البدنية
FIT_CENTERوFIT_STARTوFIT_ENDمعFITFITتعني أنّ مستطيل الاقتصاص الذي تم عرضه سيكون أكبر مستطيل ممكن للمستشعر. (Ia73c3) - يتم ضبط مستطيل الاقتصاص الخاص بالمعاينة حسب إطار العرض. يجب أن يظهر للمستخدمين النهائيين فقط الجزء الذي يغطّيه مستطيل الاقتصاص. (I142a4)
إصلاح الأخطاء
- تم إصلاح المشكلة التي تتسبّب في تمديد المعاينة على جهاز قديم يعمل بالإصدار 5.0 من نظام التشغيل Android. (I0c03a)
- تم إصلاح الخطأ
ConcurrentModificationExceptionعند إلغاء ربط حالات الاستخدام. (I371c0)
الإصدار 1.0.0-beta06 من Camera-Camera2
24 يونيو 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta06. يتضمّن الإصدار 1.0.0-beta06 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهات تجريبية لفلترة الكاميرات حسب معرّف الكاميرا وCameraCharacteristics. (I28f61)
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثّلة في تعذُّر تركيز الكاميرا بنجاح على Samsung Galaxy S7 عند استخدام طريقة startFocusAndMetering. (If3be7، b/159039233)
- تم إصلاح مشكلة عدم إمكانية إغلاق الكاميرا بعد الخروج من التطبيق. (I7a7b3)
- إصلاح مشكلة تعذُّر معاينة الفيديو عند استخدام تنفيذ SurfaceView لـ PreviewView بسبب التبديل المتكرّر بين الكاميرات (I920ce)
- سيتعذّر تنفيذ
CameraControl#startFocusAndMeteringإذا لم يتمكّن أي من MeteringPoint المحدّدة من إنشاء مستطيلات قياس صالحة. (Id53ce)
الإصدار 1.0.0-beta06 من Camera-Core
24 يونيو 2020
تم طرح androidx.camera:camera-core:1.0.0-beta06. يتضمّن الإصدار 1.0.0-beta06 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهات تجريبية لفلترة الكاميرات حسب معرّف الكاميرا وCameraCharacteristics. (I28f61)
إصلاح الأخطاء
- يمكن الآن ضبط CameraX باستخدام
ProcessCameraProvider#configureInstance()قبل استدعاءProcessCameraProvider#getInstance(). يتيح ذلك تخصيصCameraXConfigبدون الحاجة إلى تنفيذCameraXConfig.Providerفي فئة التطبيق. (Ia1a8d) - سيتعذّر تنفيذ
CameraControl#startFocusAndMeteringإذا لم يتمكّن أي من MeteringPoint المحدّدة من إنشاء مستطيلات قياس صالحة. (Id53ce)
الإصدار 1.0.0-beta05 من Camera-Camera2
10 يونيو 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta05. يتضمّن الإصدار 1.0.0-beta05 هذه التعديلات.
إصلاح الأخطاء
- إصلاح الخطأ الذي يؤدي إلى تعطُّل التطبيق عند بدء تشغيله أثناء تهيئة CameraX عندما يكون الهاتف في وضع "عدم الإزعاج" يحتوي
InitializationExceptionعلىCameraUnavailableExceptionسيتم ضبطه علىListenableFutureلنتيجة عملية التهيئة بدلاً من إيقاف التطبيق. (I9909a، b/149413835) - تم إصلاح عُطل يحدث عند الاتصال بـ
startFocusAndMeteringعلى الأجهزة التي تكون فيها قيمةCONTROL_AF_STATEفارغة. (Ife55e، b/157084254)
الإصدار 1.0.0-beta05 من Camera-Core
10 يونيو 2020
تم طرح androidx.camera:camera-core:1.0.0-beta05. يتضمّن الإصدار 1.0.0-beta05 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إصلاح الخطأ الذي يؤدي إلى تعطُّل التطبيق عند بدء تشغيله أثناء تهيئة CameraX عندما يكون الهاتف في وضع "عدم الإزعاج" سيتم ضبط
InitializationExceptionالذي يحتوي علىCameraUnavailableExceptionعلىListenableFutureلنتيجة التهيئة بدلاً من إيقاف التطبيق. (I9909a، b/149413835)
إصلاح الأخطاء
- تم تعديل مستندات Javadoc الخاصة بـ
setTargetResolutionوsetTargetRotation. (Iae16f)
الإصدار 1.0.0-beta04 من Camera-Camera2
27 مايو 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta04. يتضمّن الإصدار 1.0.0-beta04 هذه التعديلات.
إصلاح الأخطاء
- تم السماح للتطبيقات بضبط أي مَعلمات لطلب الالتقاط في camera2 من خلال
Camera2Interopبدون حدوث عُطل. يُرجى العِلم أنّه قد تحدث مشاكل نتيجة إلغاء المعلَمات. لا يمكن ضمان الثبات والسلوك عند إلغاء المَعلمات باستخدام Camera2Interop. (Ibe5a1، b/149103700) - تم إصلاح مشكلة التهيئة التلقائية عند استخدام تطبيق على جهاز يستخدِم لغة زائفة. (I3bef3، b/154767663)
- تم تحويل سجلّ الأخطاء المحوَّل المرتبط بحالة الاستخدام المنفصل إلى سجلّ تصحيح أخطاء في Camera2CameraImpl. (I1a565، b/154422490)
- تم إصلاح المشكلة التي تؤدي أحيانًا إلى ظهور الصورة الملتقطة داكنة جدًا حتى عند استخدام الفلاش. (I5d9fa، b/149729613)
- إصلاح الخطأ الذي كان يؤدي إلى عدم إعادة لف المخزن المؤقت في
ImageProxyمنImageCapture(I0c455، b/153249512) - تم إصلاح المشاكل التي يحدث فيها ربط ImageCapture فقط: (1) تعذّر التقاط الصور باستخدام MAX_QUALITY، (2) تم إنشاء جودة صورة رديئة لأنّ ميزة "التعرّض التلقائي للضوء" لا تعمل. (I17782، b/145326998)
- تحسين موثوقية إعادة فتح الكاميرا عند فصل CameraX بسبب عملية أخرى أو مسار رمز آخر يستولي على الكاميرا (I1fbc3، b/153714651)
الإصدار 1.0.0-beta04 من Camera-Core
27 مايو 2020
تم طرح androidx.camera:camera-core:1.0.0-beta04. يتضمّن الإصدار 1.0.0-beta04 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تضيف هذه السمة واجهة برمجة تطبيقات تجريبية،
CameraXConfig.Builder#setSchedulerHandler()، لضبط المعالج الذي تستخدمه حزمة CameraX للكاميرا داخليًا. من المفترض أن تتيح واجهة برمجة التطبيقات الجديدة هذه، إلى جانبCameraXConfig.Builder#setCameraExecutor()، التحكّم الكامل في سلاسل المحادثات التي تستخدمها حزمة CameraX. (I7bf32، b/121160431)
إصلاح الأخطاء
- تم إصلاح عُطل في
ImageAnalysisحيث يتم الوصول إلىImageProxyبعد إغلاقImageReaderProxy. يؤدي ذلك أيضًا إلى ضرورة إغلاق جميعImageProxyالتي يتلقّاهاAnalyzerقبل إغلاقImageReaderProxy. (I4b299 وb/145956416 وb/154155377 وb/156357269) - تمت إزالة المَعلمة
CameraInfoمنPreviewView#createSurfaceProvider()، وأصبحتPreviewViewتستردّها داخليًا منSurfaceRequest. (If18f0، b/154652477) - تم إصلاح مشكلة التهيئة التلقائية عند استخدام تطبيق على جهاز يستخدِم لغة زائفة. (I3bef3، b/154767663)
- تم إصلاح المشكلة التي تؤدي أحيانًا إلى ظهور الصورة الملتقطة داكنة جدًا حتى عند استخدام الفلاش. (I5d9fa، b/149729613)
- تم إصلاح المشكلة في
ImageAnalysisحيث كانت طلبات متعددة لضبط/محو أداة التحليل تؤدي إلى عدم تلقّي أداة التحليل للصور المطلوب تحليلها. (I6169f، b/151605317، b/153514544) - إصلاح الخطأ الذي كان يؤدي إلى عدم إعادة لف المخزن المؤقت في
ImageProxyمنImageCapture(I0c455، b/153249512) - تم إصلاح المشكلة المتمثّلة في عدم اختيار الكاميرا الأولى في القائمة المتوافقة من
CameraManagerدائمًا لاستخدامها. (I4c624، b/153418028) - تم إصلاح عُطل متقطّع ناتج عن عدم إيقاف الإعداد
Preview.SurfaceProviderللسطح المطلوب سابقًا.“java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”(I8e4e7، b/155936225)
الإصدار 1.0.0-beta03 من Camera-Camera2
نيسان (أبريل) 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta03. يتضمّن الإصدار 1.0.0-beta03 هذه التعديلات.
إصلاح الأخطاء
- إصلاحات لإتاحة إصدار
camera-core
الإصدار 1.0.0-beta03 من Camera-Core
نيسان (أبريل) 2020
تم طرح androidx.camera:camera-core:1.0.0-beta03. يتضمّن الإصدار 1.0.0-beta03 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة في الإصدار التجريبي 03 حيث كان استدعاء
bindToLifecycle()مع عدم توفّر أيUseCaseيؤدي إلى حدوث استثناء. وقد أدّى ذلك إلى منع استردادCameraبدون ربطUseCase.
الإصدار 1.0.0-beta02 من Camera-Camera2
1 نيسان (أبريل) 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح
ImageInfo.getRotationDegrees()منImageProxyالذي تم إنشاؤه بواسطةImageCaptureليتطابق مع قيمة الدوران في اتجاه EXIF. (Id4281، b/150802561) - لم يعُد من الضروري ترتيب تبعيات CameraX بشكل صريح ضمن
build.gradleلاستخدام عملية التنفيذ التلقائية في CameraX/Camera2. في الحالات التي يكون فيها تحديد التبعيات الصارمة مطلوبًا، يمكن الآن تضمين جميع تبعيات CameraX في ملف الإصدار. (I46e88) - تم إصلاح المشكلة
IllegalArgumentExceptionالتي تحدث على الأجهزة التي يكون فيها حجم العرض أصغر من 640x480. (Ife3f2، b/150506192) - تم إصلاح الخطأ
bindToLifecycleلكي لا يتم تعديل UseCase إلا إذا تم ربطه بنجاح. في السابق، عند الاتصال بـbindToLifecycleلإجراء حسابات الدقة، يتم تعديل UseCase. لم يعُد من الضروري تعديل UseCase لإجراء العمليات الحسابية (I78d9e)
الإصدار 1.0.0-beta02 من Camera-Core
1 نيسان (أبريل) 2020
تم طرح androidx.camera:camera-core:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح
ImageInfo.getRotationDegrees()منImageProxyالذي تم إنشاؤه بواسطةImageCaptureليتطابق مع قيمة الدوران في اتجاه EXIF. (Id4281، b/150802561) - تم إصلاح الخطأ
bindToLifecycleلكي لا يتم تعديل UseCase إلا إذا تم ربطه بنجاح. في السابق، عند الاتصال بـbindToLifecycleلإجراء حسابات الدقة، يتم تعديل UseCase. لم يعُد من الضروري تعديل UseCase لإجراء العمليات الحسابية (I78d9e) - تم إصلاح المشكلة المتمثّلة في عدم تعديل جلسة الالتقاط
Previewالخاصة بحالة الاستخدام عند تغيير مساحة العرض المسبق بعد استدعاءPreview.setSurfaceProvider()أكثر من مرة.
الإصدار 1.0.0-beta01 من Camera-Camera2
26 شباط (فبراير) 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.
إصلاح الأخطاء
- تمت إعادة تسمية
SurfaceRequest.setSurface(Surface)إلىSurfaceRequest.provideSurface(Surface)، وSurfaceRequest.setWillNotComplete()إلىSurfaceRequest.willNotProvideSurface(). (I224fe) - تم إصلاح مشكلة عدم صحة نسبة العرض إلى الارتفاع لصورة محفوظة بعد تغيير قيمة التدوير المستهدَفة باستخدام
ImageCapture.setTargetRotation(). (I474ea، b/148763432) - تم إصلاح عملية تهيئة صيغ التطبيق مع تفعيل ProGuard من خلال الاحتفاظ بالعلامة التي تضبط موفّر
CameraXConfigالتلقائي. (I2d6c1)
الإصدار 1.0.0-beta01 من Camera-Core
26 شباط (فبراير) 2020
تم طرح androidx.camera:camera-core:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم استبدال
ListenableFutureفيSurfaceRequest.provideSurface()بـExecutorوCallback. يؤدي ذلك إلى تبسيط واجهة برمجة التطبيقات من خلال عدم الحاجة إلى معالجة الاستثناءات فيprovideSurface()، كما يفرض عدم إمكانية إلغاء معاودة الاتصالprovideSurface(). ويتم ذلك لمنع حدوث أعطال على الأجهزة القديمة بسبب طرح مساحات العرض قبل الأوان. يتم الآن استخدام العنصرSurfaceRequest.Resultلتتبُّع كيفية استخدامSurfaceRequestللسمةSurfaceالمقدَّمة. (I7854b) - تمت إعادة تسمية
SurfaceRequest.setSurface(Surface)إلىSurfaceRequest.provideSurface(Surface)وSurfaceRequest.setWillNotComplete()إلىSurfaceRequest.willNotProvideSurface(). (I224fe)
إصلاح الأخطاء
- تم إصلاح مشكلة عدم صحة نسبة العرض إلى الارتفاع لصورة محفوظة بعد تغيير قيمة التدوير المستهدَفة باستخدام
ImageCapture.setTargetRotation(). (I474ea، b/148763432) - تم إصلاح عملية تهيئة صيغ التطبيق مع تفعيل ProGuard من خلال الاحتفاظ بالعلامة التي تضبط موفّر
CameraXConfigالتلقائي. (I2d6c1) - تم تعديل المستندات الخاصة بواجهات برمجة التطبيقات لوضع الفلاش لتشمل القيم المحتملة. (I4a3ec)
Camera-Camera2 الإصدار 1.0.0-alpha10
10 شباط (فبراير) 2020
تم طرح androidx.camera:camera-camera2:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.
إصلاح الأخطاء
- تحسين الثبات على أجهزة
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACYمن خلال التأكّد من الاحتفاظ بـSurfaces لمدة الاستخدام فقط من خلال Camera2 (I9dac2) - تم إصلاح مشكلة المعاينة غير الواضحة على الأجهزة القديمة من خلال تعديل
CONTROL_AE_TARGET_FPS_RANGEبشكلٍ صحيح. (1224638)
Camera-Core الإصدار 1.0.0-alpha10
10 شباط (فبراير) 2020
تم طرح androidx.camera:camera-core:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم تعديل
ImageCaptureللسماح بحفظ الصور فيUriوOutputStream. تم دمج طرقtakePictureالمحمّلة بشكل زائد في طريقة واحدة. تم تعديل تطبيق الاختبار لاستخدامUriكمثال أساسي. (Ia3bec) - تمت إعادة تسمية
Preview.PreviewSurfaceProviderإلىPreview.SurfaceProvider. لم يعُد علىSurfaceProviderإنشاءListenableFutureخاص به، وأصبح بإمكانه تقديمSurfaceمن خلال عنصرSurfaceRequestجديد. تمت إزالة طريقةPreview.getPreviewSurfaceProvider()بسبب احتمال إساءة استخدامها عند إقرانPreviewبفئات أخرى مثلPreviewView. (I20105) - تمت إضافة
getTargetRotation()وgetTargetName()إلىPreview. (Iceee7) - تمّت إضافة
getTargetRotation()وgetBackpressureStrategy()وgetImageQueueDepth()فيImageAnalysis. (I9d6d9) - تمّت إضافة
getTargetRotation()وgetCaptureMode()فيImageCapture()(I5bc17) - تم الآن استبدال الوسيطتَين اللتين تم تمريرهما سابقًا في
ImageCapture.OnImageSavedCallback.onError()وImageCapture.OnImageCapturedCallback.onError()بوسيطة واحدةImageCaptureException، والتي لا تزال تحتوي على جميع المعلومات التي تم تمريرها سابقًا. - تمت إزالة وسيطة الملف التي تم تمريرها سابقًا في
ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2) - تم الآن وضع علامة "نهائي" على الصفَّين
PreviewوImageCapture. (I2500b) - تم تعديل واجهة برمجة التطبيقات، وتم دمج طرق
getZoomRatio()وgetMaxZoomRatio()وgetMinZoomRatio()وgetLinearZoom()الخاصة بـCameraInfoفيgetZoomState()التي تعرض مثيلاً منZoomState. (Ib19fe) - تمت إزالة حقلَي واجهة برمجة التطبيقات
OPTION_TARGET_CLASSوOPTION_TARGET_NAMEمنCameraXConfigلأنّهما مخصّصان للاستخدام الداخلي في المكتبة فقط. تمت إزالة الدالة الإنشائية لـCameraXConfig.Builder. (I96912) - تمت إزالة الشرط الذي يقضي بأن يوسّع التطبيق
Applicationمن أجل تهيئة CameraX. سيتم الآن تهيئة CameraX باستخدام إعدادات Camera2 تلقائية طالما تم تضمين العنصرcamera-camera2فيbuild.gradleللتطبيق. (I58ff5) (b/146923574)
الإصدار 1.0.0-alpha09 من Camera-Camera2
22 يناير 2020
تم طرح androidx.camera:camera-camera2:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
إضافة مسار التشغيل التفاعلي camera2 لاستخراج رقم تعريف كاميرا Camera2 يمكنك استخراج معرّف الكاميرا من
CameraInfoباستخدامCamera2CameraInfo.extractCameraId(). يوضّح نموذج الرمز البرمجي التالي كيفية استخدام ذلك:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());يتطلّب الصف
Camera2CameraInfoالسمةExperimentalCamera2InteropmarkerClass.
الإصدار 1.0.0-alpha09 من Camera-Core
22 يناير 2020
تم طرح androidx.camera:camera-core:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية المَعلمة
SurfaceOrientedMeteringPointFactoryuseCaseForSurfaceإلىuseCaseForAspectRatioوتمت إضافة المزيد من التفاصيل إلى المستندات المرجعية. - يتم استبدال طرق
FocusMeteringAction.Builder.from()بطرق وضع التصميمFocusMeteringAction.Builder(). - تمت إزالة
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float). يجب أن تستخدم التطبيقات الدالة الإنشائية التي تأخذ المَعلمةDisplayوتمرّرها في العرض الحالي. - تحسينات على Javadoc لواجهات برمجة التطبيقات الخاصة بالتركيز وقياس الإضاءة في ما يتعلق بالعلامتَين
MeteringModeو3A، واستخدام المَعلمةDisplay - تم توسيع المستندات المرجعية الخاصة بالسمتَين
setZoomRatioوsetLinearZoom.
إصلاح الأخطاء
- تم إصلاح المشاكل التي تحدث عند إغلاق الكاميرات ثم فتحها، ما يؤدي إلى تعذُّر اجتياز عملية التحقّق من "الشروط المسبقة".
- تم إصلاح
ConcurrentModificationExceptionكان من المحتمل أن يحدث عند استخدام واجهات برمجة التطبيقات الخاصة بالمصباح اليدوي والتكبير/التصغير. - تم إصلاح مشكلة عدم إمكانية اختيار درجات دقة أقرب إلى درجة الدقة المطلوبة عند توفّر حجم أبعاد mod16.
- تعمل واجهتا برمجة التطبيقات
startFocusMeteringوcancelFocusMeteringالآن على النحو الموضّح في المستندات، مع توقيت صحيح، وقد تعرضان أخطاء عند حدوثها. - تم إصلاح المشكلة التي تحدث عند طلب دقة مستهدَفة معيّنة مع نسبة عرض إلى ارتفاع مقصوصة على جهاز لا يتيح هذه الأحجام. سيتم الآن اختيار حجم غير مقصوص بدقة كافية لتلبية الطلب الأصلي عند توفّره.
Camera-Camera2 الإصدار 1.0.0-alpha08
18 كانون الأول (ديسمبر) 2019
تم طرح androidx.camera:camera-camera2:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.
المشاكل المعروفة
- لا تعمل جميع خيارات طلب الالتقاط في Camera2 عند استخدام Camera2 interop. إذا كان الخيار المطلوب غير متاح، يتعذّر بدء الجلسة وقد يحدث خطأ مثل هذا:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
إصلاح الأخطاء
- تم إصلاح مشكلة ظهور شاشة معاينة سوداء بعد تدوير الكاميرا أو التبديل إليها في المستوى 21 و22 من واجهة برمجة التطبيقات.
تغييرات واجهة برمجة التطبيقات
- تجريبي: تمت إضافة مسار قابلية التشغيل التفاعلي camera2 لاستخراج معرّف الكاميرا.
الإصدار 1.0.0-alpha08 من Camera-Core
18 كانون الأول (ديسمبر) 2019
تم طرح androidx.camera:camera-core:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.
المشاكل المعروفة
- قد تعرض التطبيقات التي تستخدم
PreviewViewأوCameraViewمعاينة بنسبة عرض إلى ارتفاع غير صحيحة. يحدث ذلك بعد الإيقاف المؤقت أو الاستئناف على بعض الأجهزة التي تم إعدادها بالكامل، مثل Pixel 2.
إصلاح الأخطاء
- تم تعديل المستندات الخاصة بـ
FocusMeteringActionوCameraControl. - تم تنفيذ
TorchControlلكل منenableTorch()وgetTorchState().
تغييرات واجهة برمجة التطبيقات
- تم إخفاء IntDefs ونقل ثوابت IntDef خارج تعريف IntDef.
- تم نقل
rotationDegreesمن الصفOnImageCaptureCallbackإلىImageInfo. - تم نقل
rotationDegreesمن الصفAnalyzerإلىImageInfo.
Camera-Camera2 الإصدار 1.0.0-alpha07
4 كانون الأول (ديسمبر) 2019
تم طرح androidx.camera:camera-camera2:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 من camera-camera2 هذه التعديلات
- أصبحت
Camera2Configمتاحة الآن للاستخدام مع إعداد وتنفيذ CameraX استنادًا إلى Camera2. يمكنك الاطّلاع على مزيد من التفاصيل حول كيفية استخدام هذه الميزة في عملية الإعداد في قسم camera-core من ملاحظات الإصدار. - تم الآن تصنيف وظيفة التشغيل التفاعلي camera2 على أنّها تجريبية ونقلها إلى حزمة منفصلة،
androidx.camera.camera2.interop.
الإصدار 1.0.0-alpha07 من Camera-Core
4 كانون الأول (ديسمبر) 2019
تم طرح androidx.camera:camera-core:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 من camera-core هذه التعديلات
يُرجى العِلم أنّه تم إجراء بعض التغييرات المهمة في هذا الإصدار الأوّلي أثناء الاستعداد للإصدار التجريبي. ننصحك بمراجعة التغييرات ومشاركة أي ملاحظات لديك في مجموعة CameraX على Google. بالنسبة إلى المطوّرين الذين يستخدمون CameraX في التطبيقات المتوفّرة على "متجر Play"، ننصحهم بالانتظار إلى حين إصدار الإصدار التجريبي الرسمي قبل ترقية المكتبة داخل تطبيقاتهم.
تغييرات واجهة برمجة التطبيقات
ملاحظة مهمة: تم تغيير عملية إعداد CameraX. يجب أن تنفّذ التطبيقات
CameraXConfig.Provider، وأن تستخدم القيمة التلقائيةCamera2Configالتي يوفّرهاandroidx.camera.camera2. في ما يلي مثال على الاستخدام:import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }تمت إزالة فئة CameraX. إنّ الحقول
bindToLifecycle()وunbind()وunbindAll()وisBound()وhasCamera()التي كانت توفّرها سابقًا استدعاء فئة CameraX أصبحت متاحة الآن من خلالProcessCameraProvider.يتم الحصول على مثيل لكل عملية من
ProcessCameraProviderبشكل غير متزامن باستخدام الطريقة الثابتةProcessCameraProvider.getInstance()، والتي تعرض قيمة مستقبلية قابلة للاستماع، وتوفّرProcessCameraProviderعند اكتمالها. يظهر هنا فيonCreate()للاستخدام العادي. يمكنك إجراء طلبات إلىgetInstance()في وقت لاحق من مراحل نشاط النشاط لتأجيل وقت استجابة الإعداد إلى وقت لاحق (مثلما يحدث عندما يفتح إجراء من المستخدم واجهة مستخدم الكاميرا).import androidx.camera.lifecycle.ProcessCameraProvider import com.google.common.util.concurrent.ListenableFuture class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { cameraProviderFuture = ProcessCameraProvider.getInstance(this); }يمكن إضافة مستمع إلى
ListenableFutureالذي تعرضه الدالةgetInstance(). يضمن ذلك إمكانية استرداد موفّر الكاميرا منFutureبدون حظرFuture.get()cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))يتم الآن اختيار الكاميرا من خلال أداة اختيار الكاميرا، بدلاً من اختيارها لكل حالة استخدام
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()يتم منح
CameraProvider.bindToLifecycleمالك مراحل النشاط وأداة اختيار الكاميرا وحالات الاستخدام، ثم يتم ربطها بمالك مراحل النشاط المحدّد وتشغيلها للكاميرا المحدّدة.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)تمت إزالة فئات "الإعداد" الخاصة بحالات الاستخدام. بدلاً من ذلك، يمكنك إنشاء حالات الاستخدام مباشرةً، مع ضبط الخيارات في كل أداة إنشاء لحالات الاستخدام. مثلاً:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()تم تعديل حالة استخدام "المعاينة" لقبول مساحة عرض تم إنشاؤها وإدارتها بواسطة التطبيق لضمان اتّباع أفضل ممارسات Android. ننصحك بشدة باستخدام فئة العرض
PreviewViewالمتوفّرة في حزمة عرض الكاميرا.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)راجِع المستندات المتعلقة بإرفاق مساحة عرض يديرها التطبيق. في هذه الحالات، يدير التطبيق دورة حياة السطح.
ملاحظة مهمة: يجب أن يستدعي تنفيذ طريقة
ImageAnalysisAnalyzer الدالةimage.close()على الصور المستلَمة عند الانتهاء من استخدامها. في حال عدم إجراء ذلك، قد لا يتم تلقّي الصور الجديدة أو قد تتوقف الكاميرا، وذلك حسب إعداد الضغط الخلفي. يُرجى الرجوع إلى المستندات المرجعية لمعرفة التفاصيل.تمّ الآن تغيير
ImageAnalysis ImageReaderModeإلى استراتيجية الضغط الخلفيintdef.تم وضع علامة "تجريبية" على
ImageProxy.getImage(). يجب أن تشير التطبيقات إلى الاستخدام، مثلاً من خلال@androidx.camera.core.ExperimentalGetImageتمت إزالة شرط التعليق التوضيحي "
UIThread" الخاص بـ "Analyzer".تمت إضافة الدالة
ImageAnalysis.clearAnalyzer()لإزالة أداة تحليل.تمت إعادة تسمية المستمعين الذين لديهم أكثر من طريقة واحدة إلى رد الاتصال:
- "
ImageCapture.OnImageCapturedListener" أصبح الآن "ImageCapture.OnImageCapturedCallback" - "
ImageCapture.OnImageSavedListener" أصبح الآن "ImageCapture.OnImageSavedCallback" - "
VideoCapture.OnVideoSavedListener" أصبح الآن "VideoCapture.OnVideoSavedCallback"
- "
تم تغيير قيم التعداد إلى IntDef
تمت إضافة عناصر التحكّم في التكبير/التصغير:
CameraControl.setLinearZoom()CameraControl.setZoomRatio()CameraInfo.getLinearZoom()CameraInfo.getMaxZoomRatio()CameraInfo.getZoomRatio()
تتم إضافة
CameraInfo.hasFlashUnit()لتحديد ما إذا كانت أجهزة الفلاش/المصباح اليدوي متوفرة.تمت إزالة
CameraInfo.isFlashAvailable(). تلغي وظيفة المصباح وظيفة الفلاش. تتضمّن المستندات المرجعية المزيد من التفاصيل.يتم استبدال حقول
ImageCapture.Metadataببرامج الوصول get/set/is.تعرض الدالتان
startFocusMeteringوcancelFocusMeteringالآنListenableFuturesالذي يمثّل العملية غير المتزامنة للمكالمة.تعمل
MeteringPointsالآن كمقابض لإجراءات القياس، وتنتجها المصانع. يجب أن تستخدم التطبيقات المصانع الحالية بدلاً من المصانع المخصّصة.
المشاكل التي تم إصلاحها
- تم إصلاح مشكلة عند التقاط صورة عند الاستئناف (بعد أن تم إيقاف مؤقت سابق لالتقاط صور في انتظار الإكمال).
- مشكلة معروفة: تعمل السمة
CameraControl.enableTorch()بشكل صحيح، ولكن القيمة المعروضةListenableFuture<Void>تكون دائمًاcomplete(success)في المستقبل القريب، حتى إذا لم تكن هناك وحدة فلاش. ستعمل الإصدارات المستقبلية على إصلاح هذا السلوك ليصبح على النحو التالي: عندما لا تكون هناك وحدة فلاش، سيتعذّر تنفيذenableTorch(true)على الفور (لن يتم إرسال طلب إلىCaptureSession)، وسيظلTorchStateغير مفعّل. - مشكلة معروفة: تبدأ الدالتان
startFocusAndMeteringوcancelFocusAndMeteringعملية قياس التركيز وتلغيانها، ولكنّهما تعرضان على الفور قيمةcompleted (success)مستقبلية لا تمثّل السلوك الموثّق. إنّFocusMeteringResultمنListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()هي نتيجة مزيّفةisFocusSuccessful()وتكون دائمًا "false"، ما يختلف عن السلوك المقصود والموثّق. - مشكلة معروفة: يجري حاليًا تطوير مصنع لنقاط القياس لاستخدامه مع أحداث اللمس
PreviewView. في الوقت الحالي، يمكن للتطبيقات التي تربط مساحات عرض مُدارة مخصّصة استخدام مصانع نقاط القياس الحالية، وإلا لن تتوفّر وظيفة التركيز باللمس فيPreviewView.
Camera-Camera2 وCamera-Core الإصدار 1.0.0-alpha06
9 أكتوبر 2019
تم طرح androidx.camera:camera-camera2:1.0.0-alpha06 وandroidx.camera:camera-core:1.0.0-alpha06. هذه هي التعديلات المضمّنة في camera-camera2:1.0.0-alpha06، وهذه هي التعديلات المضمّنة في camera-core:1.0.0-alpha06.
الميزات الجديدة
التغييرات التي طرأت على إعدادات نسب العرض إلى الارتفاع:
- تمت إضافة
setTargetAspectRatioMode()وتقبل وسيطة تعداد. يضبط هذا الخيار "وضع نسبة العرض إلى الارتفاع" مع الخيارَينRATIO_4_3أوRATIO_16_9بدلاً من نسبة عرض إلى ارتفاع عشوائية. يعكس هذا التغيير بشكل أفضل حقيقة أنّه يتم توفير نسب عرض إلى ارتفاع معيّنة فقط من الكاميرا، وليس أي نسبة عشوائية.- لا تتوفّر حاليًا سوى نسبتَي العرض إلى الارتفاع 16:9 و4:3. في حال استخدام نسبة العرض إلى الارتفاع 1:1، تتوفّر هذه الميزة على أجهزة معيّنة فقط من الكاميرا، وبدرجات دقة محدودة. يجب أن تستخدم التطبيقات التي تصمّم واجهة أو معالجة بنسبة 1:1 خيارات أكثر مرونة، مثل 16:9 أو 4:3، وأن تقصّ العرض أو تعالج منطقة فرعية.
- تم تصميم نسب العرض إلى الارتفاع هذه لاستخدام الحد الأقصى لمساحة المستشعر.
- تمت إضافة
getTargetAspectRatio()إلى واجهات برمجة التطبيقات الخاصة بإعداد حالات الاستخدام، ما يؤدي إلى عرض نسبة العرض إلى الارتفاع التي يستهدفها ناتج حالة الاستخدام. - تم تغيير الطريقة
setTargetAspectRatio(Rational aspectRatio)في ImageCapture إلىsetTargetAspectRatioCustom(Rational aspectRatio). عند ضبط هذه السمة، يتم اقتصاص ناتج ImageCapture وفقًا لذلك.
واجهات برمجة التطبيقات الخاصة بالمنفّذ
- تقبل الدوال التالية مَعلمة منفِّذ، ما يسمح للتطبيق بالتحكّم في المنفِّذ الذي يتم تشغيل الدالة عليه.
Preview.setOnPreviewOutputUpdateListener()API إذا لم يكن المنفِّذ متاحًا لهذه الدالة، سيتم تنفيذها على سلسلة التعليمات الرئيسية.Preview.setOnPreviewOutputUpdateListenerFocusMeteringAction.Builder.setAutoFocusCallbackImageAnalysis.setAnalyzerImageCapture.takePictureCameraView.takePictureCameraView.startRecordingVideoCapture.startRecording
تمت إضافة CameraInfo مع واجهات برمجة التطبيقات check Flash Available وSensor Rotation
تمت إضافة
CameraInfoوطريقةgetCameraInfo، ما يتيح للتطبيقات التحقّق مما إذا كانت هناك عدسة تواجه CameraInfo وما إذا كان هناك فلاش متوفّر على تلك الكاميرا. مثلاً:try { CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing); LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable(); flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE); } catch (CameraInfoUnavailableException e) { Log.w(TAG, "Cannot get flash available information", e); flashToggle.setVisibility(View.VISIBLE); }تمت إضافة
CameraInfo.getSensorRotationDegrees(). توفّر هذه السمة اتجاه جهاز استشعار الكاميرا بالنسبة إلى الاتجاه الطبيعي للجهاز، أو بالنسبة إلى الاتجاه الموصوف بدوران Surface (الذي يصف الاتجاه بالنسبة إلى الاتجاه الطبيعي).
تغييرات واجهة برمجة التطبيقات وإصلاحات الأخطاء
- نسب العرض إلى الارتفاع: لكل حالة استخدام، يجب أن تستدعي التطبيقات إحدى القيمتين
setTargetResolution()أوsetTargetAspectRatio()فقط. سيؤدي استدعاء كليهما في أداة الإنشاء نفسها إلى عرض خطأ.- ننصح بشكل عام باستخدام
setTargetAspectRatio()استنادًا إلى تصميم واجهة مستخدم التطبيق. تستند الدقة المحدّدة إلى حالة الاستخدام. على سبيل المثال، تكون المعاينة قريبة من درجات دقة الشاشة، وتوفّر ميزة "التقاط الصور" صورًا ثابتة عالية الدقة. يمكنك الاطّلاع على جدول الدقّات التلقائية للحصول على مزيد من المعلومات. - استخدِم
setTargetResolution()للحالات الأكثر تحديدًا، مثل عندما يكون الحد الأدنى (لتوفير الحساب) أو الحد الأقصى للدقة (لمعالجة التفاصيل) مطلوبًا.
- ننصح بشكل عام باستخدام
- Executor API: تمت إزالة طلب
setCallbackHandler()من واجهات برمجة التطبيقات الخاصة بإعداد حالات الاستخدام. بدلاً من ذلك، يمكن للتطبيقات ضبط المنفّذ كمعلَمة في واجهات برمجة تطبيقات أخرى مختلفة تضبط دالة ردّ الاتصال. - تم تعديل التعليقات التوضيحية الفارغة لوظائف مختلفة.
- تم إصلاح مشكلة كانت تؤدي إلى ظهور الخطأ
java.lang.IllegalStateException at Camera$StateCallback.onErrorعند فتح الكاميرا. - تم إصلاح مشكلة اختيار درجات دقة صغيرة جدًا (أقل من 640x480) عندما يطلب التطبيق درجات دقة أكبر أو تلقائية، ما يؤدي إلى ظهور صورة معاينة غير واضحة أو مشوّهة. يمكن للتطبيقات التي تحتاج تحديدًا إلى دقة شاشة أصغر أن تطلبها بشكل صريح.
- تم إصلاح مشكلة ظهور شاشة سوداء في الكاميرا (تعذّر بدء تشغيل الكاميرا) بعد الرجوع من هدف أطلق تطبيق كاميرا آخر.
- تم إصلاح الخطأ الذي كان يظهر عند بدء التطبيقات أو إيقافها بشكل متكرر:
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface! - تم إصلاح الخطأ التالي الذي يحدث عند إيقاف ImageAnalysis:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more. - تمت إضافة اختبارات إضافية لمسار فصل الكاميرا.
- تحسين متانة نظام الاختبار عند إجراء اختبارات متتالية للكاميرا
Camera-Camera2 وCamera-Core الإصدار 1.0.0-alpha05
5 أيلول (سبتمبر) 2019
تم طرح androidx.camera:camera-camera2:1.0.0-alpha05 وandroidx.camera:camera-core:1.0.0-alpha05. في ما يلي التعديلات المُضمّنة في الإصدار camera-camera2:1.0.0-alpha05 والتعديلات المُضمّنة في الإصدار camera-core:1.0.0-alpha05.
تغيير في واجهة برمجة التطبيقات: تمت إعادة تسمية متغيرات خطأ حالة الاستخدام:
- تمت إعادة تسمية
ImageCapture.UseCaseErrorإلىImageCapture.ImageCaptureError - تمت إعادة تسمية
VideoCapture.UseCaseErrorإلىVideoCapture.VideoCaptureError
- تمت إعادة تسمية
إضافة واجهة برمجة التطبيقات
CameraControlمع واجهات برمجة التطبيقات "النقر للتركيز"تمت إضافة واجهة برمجة تطبيقات للحصول على
CameraControlمن CameraX لكاميرا تم اختيارها حسب اتجاه العدسة:CameraX.getCameraControl(LensFacing lensFacing)تمت إضافة
MeteringPointFactoryوMeteringPointوMeteringModeوFocusMeteringActionلتشغيل ميزة "النقر للتركيز":MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height); MeteringPoint point = factory.createPoint(x, y); FocusMeteringAction action = FocusMeteringAction.Builder.from(point, MeteringMode.AF_ONLY) .addPoint(point2, MeteringMode.AE_ONLY) // could have many .setAutoFocusCallback(new OnAutoFocusListener(){ public void onFocusCompleted(boolean isSuccess) { } }) // auto calling cancelFocusAndMetering in 5 sec. .setAutoCancelDuration(5, TimeUnit.Second) .build();تمت إضافة واجهة برمجة تطبيقات
CameraControlلبدء قياس التركيز وإلغائه:getCameraControl(lensFacing).startFocusAndMetering(action);getCameraControl(lensFacing).cancelFocusAndMetering();تمت إضافة واجهات برمجة تطبيقات لمصانع نقاط القياس التي تساعد في تحويل إحداثيات النقر إلى إحداثيات المستشعر، استنادًا إلى فئات العرض:
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
فرض استدعاء الطرق التالية في سلسلة التعليمات البرمجية الرئيسية (واجهة المستخدم)، مع عرض الخطأ
IllegalStateExceptionفي حال عدم استدعائها في السلسلة الرئيسية ستتيح الإصدارات المستقبلية الاستخدام على سلاسل محادثات أخرى وستضمن التسلسل.CameraX.bindToLifecycle()CameraX.unbind()CameraX.unbindAll()ImageAnalysis.setAnalyzer()ImageAnalysis.getAnalyzer()ImageAnalysis.removeAnalyzer()Preview.removePreviewOutputListener()Preview.getOnPreviewOutputUpdateListener()Preview.setOnPreviewOutputUpdateListener()
تقبل إعدادات الضبط المختلفة الآن مَعلمات فارغة، وقد تعرض دوال الجلب المقابلة قيمة فارغة.
تم إصلاح مشكلة عند الاختبار على المحاكيات التي لا تتوافق مع إعدادات التركيز التلقائي/التعرّض التلقائي/توازن اللون الأبيض التلقائي.
تم إصلاح الخطأ الذي يؤدي إلى تعطُّل التطبيق عند تدوير الشاشة أثناء تحليل الصورة.
تم إصلاح الخطأ الذي يظهر فيه المعاينة باللون الأسود عند البدء (بدون بيانات الكاميرا)، أو بعد التدوير أو التبديل بين الكاميرتَين الأمامية والخلفية.
تمت إزالة اختبار حالات استخدام متعددة لتحليل الصور في الوقت نفسه. لضمان التوافق، يجب أن ترفق التطبيقات حالة استخدام واحدة فقط لتحليل الصور.
تمت إضافة اختبارات robolectric الأولية للكاميرا الوهمية في حزمة اختبار الكاميرا (قيد التنفيذ).
تمت إزالة اختبار Camera2Inititalizer لأنّ تغطيته كانت غير واضحة أو مضلّلة.
Camera-Camera2 وCamera-Core الإصدار 1.0.0-alpha04
7 آب (أغسطس) 2019
تم طرح androidx.camera:camera-camera2:1.0.0-alpha04 وandroidx.camera:camera-core:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 هذه التعديلات.
الميزات الجديدة
تغييرات في خيارات نسبة العرض إلى الارتفاع ودرجة الدقة
تهدف CameraX إلى إعداد جلسة كاميرا بنجاح. وهذا يعني أنّ CameraX تتنازل عن الدقة/نسب العرض إلى الارتفاع استنادًا إلى إمكانات الجهاز، وذلك من أجل بدء جلسة تسجيل كهدف أول، وبالتالي قد لا تتم الاستجابة للطلبات الدقيقة. قد يرجع ذلك إلى:
- الأجهزة التي لا تتوافق مع درجة الدقة المطلوبة
- مشاكل التوافق، مثل الأجهزة القديمة التي يجب استخدام دقة عرض معيّنة فيها لتعمل بشكل صحيح
- على بعض الأجهزة، لا تتوفّر بعض التنسيقات إلا بنسب عرض إلى ارتفاع معيّنة
- تفضيل استخدام "أقرب mod16" لترميز JPEG أو الفيديو راجِع
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
على الرغم من أنّ CameraX تنشئ الجلسة وتديرها، عليك دائمًا التحقّق من أحجام الصور التي تم عرضها في ناتج حالة الاستخدام في الرمز البرمجي وتعديلها وفقًا لذلك.
تم إجراء بعض التغييرات على إعدادات دقة الشاشة ونِسب العرض إلى الارتفاع، وذلك بهدف توضيح واجهة برمجة التطبيقات بشكل أكبر:
- يُعدّ الآن أنّ حالة استخدام المعاينة تتضمّن نسبة عرض إلى ارتفاع تلقائية تبلغ 4:3 في حال عدم ضبط أي نسبة.
- عندما تأخذ CameraX في الاعتبار داخليًا التغييرات في الدقة ونسب العرض إلى الارتفاع المطلوبة استنادًا إلى إمكانات الجهاز، تحاول أولاً الحفاظ على نسبة العرض إلى الارتفاع نفسها (كما هو محدّد من خلال أي من طلبات
setTargetAspectRatioأوsetTargetResolution). - يُعدّ إصدار "Nearest mod16" من درجة الدقة هو نسبة العرض إلى الارتفاع نفسها.
وضع "تحليل الصور" غير الحظر
- أصبح سلوك
ImageReaderMode.ACQUIRE_LATEST_IMAGEغير حاصِر الآن. يحصل على أحدث صورة في قائمة الانتظار، ولكنّه يتجاهل الصور غير المستخدَمة باستمرار للسماح لخط أنابيب الكاميرا بتجنُّب الحظر. - يمكن أن تحتفظ أداة التحليل بصورة واحدة إلى أجل غير مسمى بدون إيقاف عملية المعالجة.
- إذا كان التطبيق يوفّر منفّذًا يحظر بعد ذلك، سيتم حظر حالة استخدام ImageAnalysis.
- يتصرف المنفِّذ التلقائي الذي تم ضبطه داخليًا كمنفِّذ غير حاصر.
إصلاح الأخطاء
- تم إصلاح مشاكل انتهاء المهلة أثناء انتظار اكتمال عملية 3A عند التقاط الصور على الأجهزة التي لا تتضمّن ميزات التركيز التلقائي والتعرّض التلقائي للضوء وتوازن اللون الأبيض التلقائي
- تم إصلاح مشكلة عند التقاط الصور بسرعة باستخدام ImageCapture. إصلاح الخطأ:
java.lang.IllegalStateException: maxImages (2) has already been acquired - تم إصلاح المشكلة التي لم يتم فيها استدعاء
setLensFacingلحالة استخدام، ما أدّى إلى ظهورjava.lang.IllegalArgumentException: Unable to get camera ID for use case. - تم إصلاح مشكلة تتطلّب فيها الأجهزة القديمة نسبة عرض إلى ارتفاع معيّنة كحدّ أقصى لدقة JPEG
- تم إصلاح المشكلة التي تحدث عند تشغيل التطبيق في الخلفية أثناء فتح الكاميرا
- تم إصلاح المشكلة في الإصدارات الأقدم من 25 من واجهة برمجة التطبيقات، وإزالة الخطأ
checkAndUpdateEglState: invalid current EGLDisplay - تم إصلاح مشكلة إلغاء ربط المعاينة بعد تفعيل الإضافات وبدء استخدامها
- تم الآن نشر عناصر إنشاء التطبيقات الخاصة بميزتَي "عرض الكاميرا" و"إضافات الكاميرا" كإصدارات أوّلية
Camera-Camera2 وCamera-Core الإصدار 1.0.0-alpha03
2 تموز (يوليو) 2019
تم طرح androidx.camera:camera-core:1.0.0-alpha03 وandroidx.camera:camera-camera2:1.0.0-alpha03. يتضمّن الإصدار 1.0.0-alpha03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة توضيح javadoc بشأن "الهدف" في طلبات ضبط setTarget
Camera-Core
- تم إصلاح عُطل "سطح الإدخال/الإخراج" غير المضبوط عند الفتح/الإغلاق السريع أو الربط/إلغاء الربط
- الانتقال إلى عمليات تنفيذ جديدة للعقود الآجلة
- إصلاحات الاختبارات لإجراء اختبارات أكثر فعالية
- يعرض اختبار الدمج الأساسي الآن وقت التقاط الصور
- تم تطوير فئة توافق داخلية لـ Executors
- تنتظر ميزة "التقاط الصور في تطبيق اختبار التوقيت" اكتمال عملية التقاط الصور السابقة، كما تم تحسين ثباتها.
الإضافات
- تمت إضافة عمليات التحقّق من الإصدار
- تغطية اختبار إضافية - طلبات معاودة الاتصال بأحداث الإضافات
- تحسينات على الصور والبيانات الوصفية المتطابقة داخليًا
- إصلاحات للتبديل بين الأوضاع في تطبيق الاختبار
الإصدار 1.0.0-alpha02 من Camera-Camera2 وCamera-Core
5 يونيو 2019
تم طرح androidx.camera:camera-core:1.0.0-alpha02 وandroidx.camera:camera-camera2:1.0.0-alpha02. يتضمّن الإصدار 1.0.0-alpha02 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة القسمة على صفر عند استخدام المحاكي
- تم إصلاح الخطأ NullPointerException/Surface Abandoned الذي يحدث على بعض الأجهزة عند التقاط الصور بسرعة أثناء إلغاء ربط حالات الاستخدام وإعادة ربطها بسرعة.
- تم إصلاح مشكلة داخلية لضمان أن تؤثر التعديلات على طلبات الالتقاط في جميع المساحات بشكلٍ متسق
- تحسينات على الثبات عند إعادة تشغيل حالات الاستخدام في مثيلات جديدة للتطبيق
- تغييرات في البنية الداخلية للاستعداد لإتاحة استخدام المنفّذين في واجهة برمجة التطبيقات
- توضيحات إضافية في Javadoc حول فئة CameraX وإدارة مراحل النشاط
- تمت إضافة اختبارات لقياس حالة تطبيق اختبار الأداء Antelope
- إزالة الحاجة إلى -keepattributes Signature في إعدادات Proguard للتطبيق
Camera-Camera2 وCamera-Core 1.0.0-alpha01
7 أيار (مايو) 2019
تم طرح androidx.camera:camera-core:1.0.0-alpha01 وandroidx.camera:camera-camera2:1.0.0-alpha01. يتضمّن الإصدار 1.0.0-alpha01 هذه التعديلات.
الإصدار 1.0.0-beta11 من Camera-Lifecycle
14 أكتوبر 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta11. يتضمّن الإصدار 1.0.0-beta11 هذه التعديلات.
إصلاح الأخطاء
- ستعرض
<UseCase>.getTargetRotation()القيمةSurface.ROTATION_0إذا تم استدعاؤها قبل ربطها بمثيل Camera، ما لم يتم ضبط targetRotation في Builder أو UseCase. (I80fcd)
الإصدار 1.0.0-beta10 من Camera-Lifecycle
23 سبتمبر 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta10. يتضمّن الإصدار 1.0.0-beta10 هذه التعديلات.
إصلاح الأخطاء
- إصدار متوافق مع Camera-Core 1.0.0-beta10
الإصدار 1.0.0-beta09 من Camera-Lifecycle
16 سبتمبر 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta09. يتضمّن الإصدار 1.0.0-beta09 هذه التعديلات.
الإصدار 1.0.0-beta08 من Camera-Lifecycle
19 آب (أغسطس) 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta08. يتضمّن الإصدار 1.0.0-beta08 هذه التعديلات.
إصلاح الأخطاء
- من المفترض ألا يحدث بعد ذلك عطل عند بدء التشغيل عند استخدام Context لا يعرض عنصر Application من
Context.getApplicationContext(). (I3d3c9، b/160817073)
الإصدار 1.0.0-beta07 من Camera-Lifecycle
22 تموز (يوليو) 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta07. يتضمّن الإصدار 1.0.0-beta07 هذه التعديلات.
الإصدار 1.0.0-beta06 من Camera-Lifecycle
24 يونيو 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta06. يتضمّن الإصدار 1.0.0-beta06 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- يمكن الآن ضبط CameraX باستخدام ProcessCameraProvider#configureInstance() قبل استدعاء ProcessCameraProvider#getInstance(). يتيح ذلك تخصيص CameraXConfig بدون الحاجة إلى تنفيذ CameraXConfig.Provider في فئة التطبيق. (Ia1a8d)
الإصدار 1.0.0-beta05 من Camera-Lifecycle
10 يونيو 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta05. يتضمّن الإصدار 1.0.0-beta05 هذه التعديلات.
إصلاح الأخطاء
- إصلاح الخطأ الذي يؤدي إلى تعطُّل التطبيق عند بدء تشغيله أثناء تهيئة CameraX عندما يكون الهاتف في وضع "عدم الإزعاج" سيتم ضبط
InitializationExceptionالذي يحتوي علىCameraUnavailableExceptionعلىListenableFutureلنتيجة التهيئة بدلاً من إيقاف التطبيق. (I9909a، b/149413835)
Camera-Lifecycle الإصدار 1.0.0-beta04
27 مايو 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta04. يتضمّن الإصدار 1.0.0-beta04 هذه التعديلات.
Camera-Lifecycle الإصدار 1.0.0-beta03
نيسان (أبريل) 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta03. يتضمّن الإصدار 1.0.0-beta03 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة في الإصدار التجريبي 03 حيث كان استدعاء
bindToLifecycle()مع عدم توفّر أيUseCaseيؤدي إلى حدوث استثناء. وقد أدّى ذلك إلى منع استردادCameraبدون ربطUseCase. - إصلاحات لإتاحة إصدار
camera-core
Camera-Lifecycle الإصدار 1.0.0-beta01
26 شباط (فبراير) 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.
إصلاح الأخطاء
- تم تعديل المستندات للإشارة إلى أنّه عند الحصول على
ProcessCameraProviderأثناء عملية التهيئة، يتم استخدام إعدادات تلقائية، وأنّ توسيعApplicationهو أمر اختياري. (I5e395)
الإصدار 1.0.0-beta02 من Camera-Lifecycle
1 نيسان (أبريل) 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.
إصلاح الأخطاء
- تم تعديلها لتتوافق مع إصلاحات الأخطاء في العنصرين
camera-camera2:1.0.0-beta02وcamera-core:1.0.0-beta02.
Camera-Lifecycle الإصدار 1.0.0-alpha10
10 شباط (فبراير) 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة التعليق التوضيحي
@MainThreadإلى طرق BindToLifecycle وunbind وunbindAll. (I990d2)
الإصدار 1.0.0-alpha03 من Camera-Lifecycle
22 يناير 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-alpha03. يتضمّن الإصدار 1.0.0-alpha03 هذه التعديلات.
آخر الأخبار
- إصلاحات وتحديثات مختلفة لدعم التغييرات في Camera Core وCamera2
الإصدار 1.0.0-alpha02 من Camera-Lifecycle
18 كانون الأول (ديسمبر) 2019
تم طرح androidx.camera:camera-lifecycle:1.0.0-alpha02. يتضمّن الإصدار 1.0.0-alpha02 هذه التعديلات.
التغييرات في التبعيات
- تم تعديلها لاستخدام
androidx.camera:camera-core:1.0.0-alpha08.
الإصدار 1.0.0-alpha01 من Camera-Lifecycle
4 كانون الأول (ديسمبر) 2019
تم طرح androidx.camera:camera-lifecycle:1.0.0-alpha01. يتضمّن الإصدار 1.0.0-alpha01 من مكتبة camera-lifecycle هذه التعديلات
ملاحظات حول واجهة برمجة التطبيقات
- تمت إضافة العنصر camera-lifecycle، ما يوفّر واجهة
LifeCycleCameraProviderوتنفيذًا باسمProcessCameraProviderيوفّر العديد من وظائف فئة CameraX السابقة في الحزمة الأساسية ويمكن الحصول عليه من خلال طريقةgetInstance(). - يجب أن تتضمّن التطبيقات مكتبة دورة حياة الكاميرا لاستخدام CameraX.
- راجِع الملاحظات في قسم camera-core لمعرفة كيفية تنفيذ عملية تهيئة CameraX باستخدام
ProcessCameraProvider.
إضافات الكاميرا وإصدار عرض الكاميرا 1.0.0
الإصدار 1.0.0-alpha32
15 كانون الأول (ديسمبر) 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha32 وandroidx.camera:camera-view:1.0.0-alpha32. يتضمّن الإصدار 1.0.0-alpha32 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة تعليقات
@RequiresApi(21)التوضيحية غير الضرورية من الفئات/الواجهات الداخلية. (I8e286، b/204917951) - تعديل ملفات واجهة برمجة التطبيقات الخاصة بعنصر camera-extensions (If683a، b/161377155)
إصلاح الأخطاء
- عدم السماح للتطبيق بتفعيل أوضاع الإضافة عند ربط
VideoCaptureلا تتوافق "إضافات CameraX" إلا معImageCaptureوPreview. لا يمكن استخدامVideoCaptureبعد. إذا كان التطبيق يربطVideoCaptureويفعّل أي وضع من أوضاع الإضافة، سيتم عرضIllegalArgumentException. (I0d87b) - لم يعُد
CameraSelector#filterيعرض الخطأIllegalArgumentExceptionعندما تكون مجموعة النتائج فارغة. (I27804) - تمت إعادة تسمية واجهة برمجة التطبيقات
ExtensionsManager#getInstanceإلىgetInstanceAsyncلأنّها تعرضListenableFuture. يمكن أن يوضّح اللاحقة Async في اسم الدالة أنّها دالة غير متزامنة. (I279d2) - إزالة مَعلمة الدقة من واجهة برمجة التطبيقات
ExtensionsManager#getEstimatedCaptureLatencyRangeلأنّه لا يمكن للمستخدمين معرفة الأحجام المتوافقة مع حالة الاستخدامImageCapture، ولا يمكنهم التمييز بين ما إذا كانت معلومات وقت الاستجابة المعروضة مخصّصة للحد الأقصى لحجم ناتج الالتقاط أو مَعلمة دقة الإدخال. (I74bb2) - نقل المَعلمة
CameraProviderالخاصة بالدالتَينExtensionsManagerإلى واجهة برمجة التطبيقاتgetInstance()لذلك، لا يحتاج المستخدمون إلى إدخال المَعلمةCameraProviderفي كل مرة يتم فيها استدعاء الدالتَينExtensionsManager. (Ic7e48)
الإصدار 1.0.0-alpha31
17 نوفمبر 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha31 وandroidx.camera:camera-view:1.0.0-alpha31. يتضمّن الإصدار 1.0.0-alpha31 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة CameraSelector#filter إلى واجهة برمجة التطبيقات العامة لفلترة قائمة CameraInfo استنادًا إلى CameraSelector. (I105d0)
إصلاح الأخطاء
- تم إصلاح عُطل يحدث عند التبديل بين أوضاع الإضافات بسرعة على أجهزة معيّنة. (Iebbef)
الإصدار 1.0.0-alpha30
13 أكتوبر 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha30 وandroidx.camera:camera-view:1.0.0-alpha30. يتضمّن الإصدار 1.0.0-alpha30 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة التعليق التوضيحي @RequiresApi(21) إلى جميع فئات CameraX وتمت إزالة minSdkVersion من ملف AndroidManifest.xml. سيسمح ذلك بدمج camera-core بسهولة في التطبيقات التي تتضمّن الإصدار 21 من حزمة minSdkVersion أو الإصدارات الأقل، ولكنها تريد استخدام مسارات الرموز التي تعتمد على الإصدار 21 من واجهة برمجة التطبيقات والإصدارات الأحدث بشكل مشروط. لا يتطلّب هذا التغيير اتّخاذ أي إجراء في أي تطبيق يتضمّن الإصدار 21 من حزمة minSdkVersion أو الإصدارات الأعلى. (Ie7f2e، b/200599470)
إصلاح الأخطاء
- تم إصلاح مشكلة AbstractMethodError التي تحدث عند تفعيل Proguard. (Iae468، b/201177844)
الإصدار 1.0.0-alpha29
29 سبتمبر 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha29 وandroidx.camera:camera-view:1.0.0-alpha29. يتضمّن الإصدار 1.0.0-alpha29 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة التعليق التوضيحي ExperimentalUseCaseGroup بعد أن لم تعُد واجهات برمجة التطبيقات تجريبية. (I01ef5)
- إزالة
RotationProvider#removeAllListeners()يُرجى استخدامRotationProvider#removeListener(...)بدلاً من ذلك. (Id9d4a) - تم تعديل فئة RotationReceiver: تم تغيير set/clear Listener إلى add/remove/removeAll، وإزالة صيغة setListener التي تستخدم سلسلة التعليمات الرئيسية تلقائيًا، وإضافة تعليق توضيحي للطُرق. (Ib1669)
إصلاح الأخطاء
- تمت إعادة تسمية ExtensionMode#BEAUTY إلى FACE_RETOUCH لعرض ما يفعله وضع الإضافة بشكلٍ صحيح. (I61f54، b/198515274)
- تم إصلاح المشكلة التي تؤدي إلى إغلاق الكاميرا بشكل غير متوقّع عند استخدام عدة عناصر CameraController وPreviewView في نشاط واحد. (Ibfd18، b/197539358)
الإصدار 1.0.0-alpha28
18 أغسطس 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha28 وandroidx.camera:camera-view:1.0.0-alpha28. يتضمّن الإصدار 1.0.0-alpha28 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة التعليق التوضيحي ExperimentalUseCaseGroupLifecycle بعد أن أصبحت واجهات برمجة التطبيقات غير تجريبية. (I17b85)
- تمت إعادة تصميم RotationListener وتغيير اسمه إلى RotationProvider. وتواصل توفير الميزة نفسها مع واجهة برمجة تطبيقات مختلفة قليلاً. (Idffc5)
- أعِد تسمية TAP_TO_FOCUS_UNSUCCESSFUL إلى TAP_TO_FOCUS_NOT_FOCUSED وTAP_TO_FOCUS_SUCCESSFUL إلى TAP_TO_FOCUS_FOCUSED. جعل OutputSize نهائيًا (I099fa)
إصلاح الأخطاء
- تمت إزالة الفئات المتوقّفة نهائيًا
<EffectName><UseCase>ExtenderوExtensionsErrorListener وواجهات برمجة التطبيقات ذات الصلة في ExtensionsManager. (I3b8c3)
الإصدار 1.0.0-alpha27
21 تموز (يوليو) 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha27 وandroidx.camera:camera-view:1.0.0-alpha27. يتضمّن الإصدار 1.0.0-alpha27 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم نقل واجهة برمجة التطبيقات الخاصة بمنطقة العرض من الوضع التجريبي إلى الوضع العادي. أزِل التعليق التوضيحي التجريبي لواجهة برمجة التطبيقات. (I717ea)
- تغيير اسم
CoordinateTransform#getTransformإلىCoordinateTransform#transformوتعديل JavaDoc (I864ae)
إصلاح الأخطاء
- تم إصلاح مشكلة تمديد وضع
PreviewView PERFORMANCEعند استخدامه مع واجهة مستخدم Compose. (Ie1137، b/183864890)
الإصدار 1.0.0-alpha26
30 حزيران (يونيو) 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha26 وandroidx.camera:camera-view:1.0.0-alpha26. يتضمّن الإصدار 1.0.0-alpha26 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- أضِف طريقة جديدة
CameraController#getTapToFocusState()تعرض أحدث نتيجة للنقر للتركيز. (Iaccb0) - إضافة المزيد من ميزات Camera-core إلى CameraController: دوال الحصول على القيمة وتعيينها لنسبة العرض إلى الارتفاع المستهدَفة والدقة المستهدَفة ووضع الالتقاط وCameraControl والمنفّذين المخصّصين (Iea8f2)
- أضِف فئة RotationReceiver تتلقّى تغييرات تدوير Surface. يمكن استخدام هذه السمة لضبط اتجاه الدوران المستهدف عندما يكون الجهاز في الوضع العمودي أو الأفقي الثابت. (Ib278f)
- تم عرض واجهات برمجة تطبيقات عامة جديدة getEstimatedCaptureLatencyRange في فئة ExtensionsManager. (I6a8ec)
- Deprecated ExtensionsErrorListener. في الوقت الحالي، تُستخدَم هذه الواجهة فقط لمراقبة ما إذا كانت "المعاينة" أو ImageCapture غير متوفّرتَين عند تفعيل أوضاع الإضافة. ستضيف CameraX تلقائيًا معاينة أو ImageCapture إضافية لتعمل وظائف الإضافة بشكل جيد. بعد ذلك، لن يتم الإبلاغ عن أي خطأ من خلال هذه الواجهة. (I47d9e)
- تم عرض واجهات برمجة التطبيقات العامة الجديدة ExtensionsManager getInstance وisExtensionAvailable وgetExtensionEnabledCameraSelector وإيقاف الفئات القديمة
<EffectName><UseCase>Extenderوواجهات برمجة التطبيقات ذات الصلة نهائيًا. (I329e6)
الإصدار 1.0.0-alpha25
2 حزيران (يونيو) 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha25 وandroidx.camera:camera-view:1.0.0-alpha25. يتضمّن الإصدار 1.0.0-alpha25 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- أصبحت واجهات برمجة التطبيقات ExperimentalCameraFilter خارج مرحلة التجربة وأصبحت واجهات برمجة تطبيقات رسمية. ويمكن استخدامها بدون موافقة مع إضافة تعليق توضيحي. (I4bc94)
- أضِف أداة مساعدة تحوّل الإحداثيات بين حالات الاستخدام. مثال على الاستخدام: تحويل الإحداثيات التي تم رصدها في حالة استخدام ImageAnalysis وتسليط الضوء على العنصر الذي تم رصده في المعاينة (I63ab1، b/137515129)
- تمت إزالة
CameraView. تم استبدال "CameraView" بـ "CameraController". يُرجى الاطّلاع على دليل نقل البيانات لمعرفة كيفية نقل البيانات. (Id5005)
إصلاح الأخطاء
- تم استبدال "
ExperimentalUseCaseGroupLifecycle" بـ "ExperimentalUseCaseGroup". (I3b2ef، b/159033688)
الإصدار 1.0.0-alpha24
21 أبريل 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha24 وandroidx.camera:camera-view:1.0.0-alpha24. يتضمّن الإصدار 1.0.0-alpha24 هذه التعديلات.
إصلاح الأخطاء
- تم استبدال التعليق التوضيحي
@Experimentalبالتعليق التوضيحي@RequiresOptInلواجهات برمجة التطبيقات التجريبية. لاستدعاء واجهات برمجة التطبيقات التجريبية، استخدِمandroidx.annotation.OptInبدلاً منandroidx.annotation.experimental.UseExperimentalالمتوقّفة نهائيًا. (Iff226) - تم إصلاح مشكلة تمديد PreviewView على هاتف Samsung J5 Prime (Ib10b6)
الإصدار 1.0.0-alpha23 من Camera Extensions & View
24 مارس 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha23 وandroidx.camera:camera-view:1.0.0-alpha23. يتضمّن الإصدار 1.0.0-alpha23 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- سيتم إيقاف CameraView نهائيًا. يُرجى استخدام
LifecycleCameraControllerبدلاً من ذلك. راجِع دليل نقل البيانات (Idac2c). - تمت إضافة التعليق التوضيحي FloatRange إلى setLinearZoom() (I69971)
إصلاح الأخطاء
- تم تثبيت التبعيات الخاصة بعرض الكاميرا للاعتماد على عناصر الإصدار 1.0.0. لن يؤدي الاعتماد على Camera-view بعد الآن إلى ترقية Gradle تلقائيًا لحزمة camera-core وcamera-camera2 وcamera-lifecycle إلى أحدث إصدار من العناصر 1.1.0، على الرغم من أنّ حزمة camera-view لا تزال متوافقة مع هذه العناصر إذا تم ضبطها صراحةً لاستخدام الإصدار 1.1.0. (Ic8fa1، b/181599852)
- تم إصلاح مشكلة معاينة Samsung A3 الممدّدة في PreviewView. (Iacb30، b/180121821)
- تم إصلاح المشكلة التي يتعذّر فيها ضبط أداة اختيار الكاميرا قبل تهيئة الكاميرا. (Ic8bd0)
الإصدار 1.0.0-alpha22 من "إضافات الكاميرا" و"عرض الكاميرا"
24 شباط (فبراير) 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha22 وandroidx.camera:camera-view:1.0.0-alpha22. يتضمّن الإصدار 1.0.0-alpha22 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إضافة دالة getter إلى CameraInfo في CameraController (Ib8138، b/178251727)
إصلاح الأخطاء
- تم إصلاح ExtensionsErrorListener للإبلاغ عن الأخطاء عند ربط Preview أو ImageCapture فقط. (I5ae39)
إضافات الكاميرا وإصدار العرض 1.0.0-alpha21
27 يناير 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha21 وandroidx.camera:camera-view:1.0.0-alpha21. يتضمّن الإصدار 1.0.0-alpha21 هذه التعديلات.
إصدار لدعم عناصر مكتبة الكاميرا الأخرى
الإصدار 1.0.0-alpha20 من "إضافات الكاميرا" و"عرض الكاميرا"
16 كانون الأول (ديسمبر) 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha20 وandroidx.camera:camera-view:1.0.0-alpha20. يتضمّن الإصدار 1.0.0-alpha20 هذه التعديلات.
إصدار لدعم عناصر مكتبة الكاميرا الأخرى
Camera-Extensions & Camera-View Version 1.0.0-alpha19
11 نوفمبر 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha19 وandroidx.camera:camera-view:1.0.0-alpha19. يتضمّن الإصدار 1.0.0-alpha19 هذه التعديلات.
إصلاح الأخطاء
- تم تقديم التعليق التوضيحي "
@ExperimentalVideo" في عرض الكاميرا. تضع هذه التعليقات التوضيحية علامة على واجهات برمجة التطبيقات التي تعرض وظائف فيديو تجريبية قابلة للتغيير أثناء تطوير الميزات بالكامل. يجب أن تستخدم أي طريقة تستخدم واجهات برمجة التطبيقات هذه التعليق التوضيحي@UseExperimentalمعExperimentalVideoكـmarkerClass. (I6d729)
الإصدار 1.0.0-alpha18 من Camera-Extensions
14 أكتوبر 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha18. يتضمّن الإصدار 1.0.0-alpha18 هذه التعديلات.
إصلاح الأخطاء
- تم تحسين وقت استجابة عملية تهيئة CameraX وbindToLifecycle (I61dc5).
- ستعرض
<UseCase>.getTargetRotation()القيمةSurface.ROTATION_0إذا تم استدعاؤها قبل ربطها بمثيل Camera، ما لم يتم ضبط targetRotation في Builder أو UseCase. (I80fcd)
الإصدار 1.0.0-alpha18 من Camera-View
14 أكتوبر 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha18. يتضمّن الإصدار 1.0.0-alpha18 هذه التعديلات.
إصدار لدعم عناصر مكتبة الكاميرا الأخرى
إصدار Camera-Extensions 1.0.0-alpha17
23 سبتمبر 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha17. يتضمّن الإصدار 1.0.0-alpha17 هذه التعديلات.
إصلاح الأخطاء
- إصدار متوافق مع Camera-Core 1.0.0-beta10
الإصدار 1.0.0-alpha17 من Camera-View
23 سبتمبر 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha17. يتضمّن الإصدار 1.0.0-alpha17 هذه التعديلات.
إصلاح الأخطاء
- إصدار متوافق مع Camera-Core 1.0.0-beta10
الإصدار 1.0.0-alpha16 من Camera-Extensions
16 سبتمبر 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha16. يتضمّن الإصدار 1.0.0-alpha16 هذه التعديلات.
إصلاح الأخطاء
- تمت إضافة طريقة في
ExtensionsManagerللحصول على عنصرExtensionsيُستخدَم لتفعيل الإضافات والاستعلام عنها في مثيلات الكاميرا (I4fb7e)
الإصدار 1.0.0-alpha16 من Camera-View
16 سبتمبر 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha16. يتضمّن الإصدار 1.0.0-alpha16 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة
PreviewView#setDeviceRotationForRemoteDisplayMode()وPreviewView#getDeviceRotationForRemoteDisplayMode(). الطريقتان مخصّصتان لتخصيص تدوير المعاينة، عندما لا يكون التدوير المطلوب هو تدوير الشاشة، مثل شاشة العرض عن بُعد. للتعامل مع تدوير المعاينة غير المعروضة الآن، اضبط التدوير المطلوب باستخدامPreview#setTargetRotation()وPreviewView#getViewPort(targetRotation)الذي تمت إضافته حديثًا. (Ib62cc) - تمت إعادة تسمية
createSurfaceProvider()إلىgetSurfaceProvider(). ستعرض الطريقة دائمًا مثيلاً واحدًا من Preview.SurfaceProvider. (Iff83c)
إصلاح الأخطاء
- فرض استخدام TextureView في PreviewView إذا كانت ميزة المؤثرات الخارجية مفعّلة وكان تنفيذ مكتبة المورّد يتطلّب إجراء عملية خاصة على مساحة العرض الناتجة (I0c3cc)
- السماح بتدوير الهدف بشكل عشوائي في "المعاينة" يتم احتساب معلومات التحويل وإرجاعها إلى المستخدم في الوقت الفعلي من خلال وظيفة ردّ الاتصال الجديدة
TranformationInfoListener. (I21470)
المشاكل المعروفة
- في PreviewView، لا يتم استدعاء
OnClickListener#onClick()عندما ينقر المستخدم النهائي على PreviewView. يتم استهلاك حدث اللمس عن طريق الخطأ من خلال PreviewView#onTouchEvent(). سيتم حلّ المشكلة في الإصدار التالي. - قد تكون قيمة MeteringPoint التي تم الحصول عليها من
PreviewView#getMeteringPointFactory()غير صحيحة إذا تم استخدام ViewPort مع PreviewView.
الإصدار 1.0.0-alpha15 من Camera-Extensions
19 آب (أغسطس) 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha15. يتضمّن الإصدار 1.0.0-alpha15 هذه التعديلات.
إصلاح الأخطاء
- تتلقّى الطريقة
ExtensionsManager.init()الآن Context كمَعلمة بدلاً من عدم تلقّيها أي وسيطات. (Ife754) من المفترض ألا يحدث بعد ذلك عطل عند بدء التشغيل عند استخدام Context الذي لا يعرض عنصر Application من
Context.getApplicationContext(). (I3d3c9، b/160817073)الإصدار 1.0.0-alpha15 من Camera-View
19 آب (أغسطس) 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha15. يتضمّن الإصدار 1.0.0-alpha15 هذه التعديلات.
إصلاح الأخطاء
- تتلقّى
DisplayOrientedMeteringPointFactoryمثيلاً منCameraInfoبدلاً منCameraSelector، لذا هناك ربط مباشر بالكاميرا التي سينشئ المصنع نقاطًا لها. تتلقّى جميع الفئات التي تستخدمDisplayOrientedMeteringPointFactoryأيضًا مثيلاً منCameraInfoبدلاً منCameraSelector. (I400c1) - تمت إزالة
TextureViewMeteringPointFactory. توفّرPreviewViewواجهة برمجة تطبيقات عامة (createMeteringPointFactory()) لإنشاء مصنع لنقاط القياس بغض النظر عمّا إذا كان يستخدمTextureViewأوSurfaceView. (Ide693) - إعادة تسمية أوضاع التنفيذ
SURFACE_VIEW/TEXTURE_VIEWفي PreviewView إلىPERFORMANCE/COMPATIBLE، حيث يمثّلPERFORMANCEالوضع القديمSURFACE_VIEW، ويمثّلCOMPATIBLEالوضع القديمTEXTURE_VIEW(I0edc2) - لالتقاط الصور، استبدِل علامة "قلب الصورة أفقيًا" في البيانات الوصفية استنادًا إلى اتجاه الكاميرا. (I28499)
الإصدار 1.0.0-alpha14 من Camera-Extensions
22 تموز (يوليو) 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha14. يتضمّن الإصدار 1.0.0-alpha14 هذه التعديلات.
الإصدار 1.0.0-alpha14 من Camera-View
22 تموز (يوليو) 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha14. يتضمّن الإصدار 1.0.0-alpha14 هذه التعديلات.
الإصدار 1.0.0-alpha13 من Camera-Extensions
24 يونيو 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha13. يتضمّن الإصدار 1.0.0-alpha13 هذه التعديلات.
إصلاح الأخطاء
- تمت إضافة واجهات تجريبية لفلترة الكاميرات حسب معرّف الكاميرا وCameraCharacteristics. (I28f61)
الإصدار 1.0.0-alpha13 من Camera-View
24 يونيو 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha13. يتضمّن الإصدار 1.0.0-alpha13 هذه التعديلات.
إصلاح الأخطاء
- لم يعُد تطبيق CameraView يتعطّل بسبب حدوث IllegalArgumentException عند الربط بـ LifecycleOwner الذي ينتقل Lifecycle الخاص به إلى حالة DESTROYED بعد فترة قصيرة من الربط. لن تتم محاولة فتح الكاميرا إذا كانت دورات الحياة المرتبطة في حالة DESTROYED. (I7c2b8)
- أصبح بإمكانك الآن الحصول على PreviewView StreamState من خلال CameraView.getPreviewStreamState() (I21a2b)
الإصدار 1.0.0-alpha12 من Camera-Extensions
10 يونيو 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha12. يتضمّن الإصدار 1.0.0-alpha12 هذه التعديلات.
إصلاح الأخطاء
- إصلاح الخطأ الذي يؤدي إلى تعطُّل التطبيق عند بدء تشغيله أثناء تهيئة CameraX عندما يكون الهاتف في وضع "عدم الإزعاج" سيتم ضبط
InitializationExceptionالذي يحتوي علىCameraUnavailableExceptionعلىListenableFutureلنتيجة التهيئة بدلاً من إيقاف التطبيق. (I9909a، b/149413835)
الإصدار 1.0.0-alpha12 من Camera-View
10 يونيو 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha12. يتضمّن الإصدار 1.0.0-alpha12 هذه التعديلات.
إصلاح الأخطاء
- أضِف واجهة برمجة التطبيقات
PreviewView#getBitmap()التي تعرض تمثيلاً بتنسيق Bitmap للمحتوى المعروض على مساحة المعاينة. (I9b500، b/157659818)
Camera-Extensions الإصدار 1.0.0-alpha11
27 مايو 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha11. يتضمّن الإصدار 1.0.0-alpha11 هذه التعديلات.
الإصدار 1.0.0-alpha12 من Camera-View
10 يونيو 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha12. يتضمّن الإصدار 1.0.0-alpha12 هذه التعديلات.
الميزات الجديدة
تغييرات واجهة برمجة التطبيقات
إصلاح الأخطاء
- أضِف واجهة برمجة التطبيقات
PreviewView#getBitmap()التي تعرض تمثيلاً بتنسيق Bitmap للمحتوى المعروض على مساحة المعاينة. (I9b500، b/157659818)
Camera-View الإصدار 1.0.0-alpha11
27 مايو 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha11. يتضمّن الإصدار 1.0.0-alpha11 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- أضِف واجهة برمجة التطبيقات
PreviewView#getPreviewStreamStateالتي تتيح للتطبيقات معرفة ما إذا كان يتم بث المعاينة أم لا. عندما يكون العنصر PreviewView في وضع TEXTURE_VIEW، تضمن حالة STREAMING أيضًا أن تكون صورة المعاينة مرئية. (Ic0906، b/154652477) - تمت إضافة واجهة برمجة التطبيقات
PreviewView#setDeviceRotationForRemoteDisplayMode()لتوفير تدوير الجهاز من أجل إجراء عمليات حسابية للتحويل إذا كان التطبيق يعمل في وضع العرض عن بُعد. (I59b95، b/153514525)
إصلاح الأخطاء
- تم إصلاح مشكلة تشويه المعاينة على كاميرات
FULL/LIMITED/LEVEL_3التي تعمل بالإصدار 7.0 من نظام التشغيل Android والإصدارات الأقدم. وضعImplementationMode#TEXTURE_VIEWالاستخدام الإجباري عندما يكون إصدار Android هو 7.0 أو إصدار أقدم (I83e30، b/155085307) - تمت إزالة المَعلمة
CameraInfoمنPreviewView#createSurfaceProvider()، وأصبحتPreviewViewتستردّها داخليًا منSurfaceRequest. (If18f0، b/154652477) - تم إصلاح نسبة العرض إلى الارتفاع التلقائية في VideoCapture لتصبح 16:9 في CameraView. (Ie6a7b، b/153237864)
- إصلاح مشاكل
PreviewViewالشاشة السوداء عند إزالة جزءPreviewثم إعادة إضافته في ViewPager2 تم أيضًا إصلاح المشكلة عند استخدامremoveView(previewview)ثمaddView(previewView). (Iab555 وb/149877652 وb/147354615) - تعديل واجهة برمجة التطبيقات
CameraView#takePicture()للسماح بحفظ الصور فيUriوOutputStreamعدِّل تطبيق الاختبار لاستخدامUriكمثال أساسي. (Ia2459، b/153607583) - يمكنك ضبط نوع مقياس PreviewView من تنسيق XML عن طريق ضبط السمة
ScaleType. (I08565، b/153015659) - تمت إزالة
CameraView.ScaleType. بدلاً من ذلك، استخدِمPreviewView.ScaleTypeلضبط نوع المقياس أو الحصول عليه باستخدام CameraView. (Ia8974، b/153014831) - امنح
PreviewViewلون خلفية تلقائيًا إذا لم يكن لديه لون خلفية. يمنع ذلك ظهور المحتوى خلفه قبل بدء بث المعاينة. (I09fad)
Camera-Extensions الإصدار 1.0.0-alpha10
نيسان (أبريل) 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.
إصلاح الأخطاء
- إصلاحات لدعم إصدار Camera-Core
Camera-View الإصدار 1.0.0-alpha10
نيسان (أبريل) 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha010. يتضمّن الإصدار 1.0.0-alpha010 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة معروفة سابقة كانت تتسبب في عدم عمل تنفيذ
PreviewViewsurfaceView بشكل جيد على أجهزة معيّنة، ما يؤدي إلى تعطُّل التطبيق بعد استئناف المعاينة. (I5ed6b)
الإصدار 1.0.0-alpha09 من Camera-Extensions
1 نيسان (أبريل) 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.
إصلاح الأخطاء
- تم تعديلها لتتوافق مع إصلاحات الأخطاء في عناصر
camera-camera2:1.0.0-beta02وcamera-core:1.0.0-beta02وcamera-lifecycle:1.0.0-beta02
الإصدار 1.0.0-alpha09 من Camera-View
تم طرح androidx.camera:camera-view:1.0.0-alpha09 في 1 نيسان (أبريل) 2020. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.
المشاكل المعروفة
- قد لا يعمل استخدام
ImplementationMode.SURFACE_VIEWمعPreviewViewبشكل جيد على بعض الأجهزة، وذلك لأنّSurfaceViewالمستخدَم للمعاينة يبطل سطحه عند إيقاف دورة حياة النافذة التي يظهر فيها، وعند إعادة تشغيلها، تتم إعادة فتح الكاميرا وقد تحاول استئناف المعاينة قبل أن يصبح سطحSurfaceViewصالحًا مرة أخرى. في الوقت الحالي، عليك استخدامImplementationMode.TEXTURE_VIEW.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية
PreviewView.setImplementationMode()إلىPreviewView.setPreferredImplementationMode(). - تمت إعادة تسمية
PreviewView.getImplementationMode()إلىPreviewView.getPreferredImplementationMode(). - تم استبدال
PreviewView.getSurfaceProvider()بـPreviewView.createSurfaceProvider(CameraInfo)، الذي يأخذ مثيلاً قابلاً للتصغير منCameraInfoيُستخدَم لتحسين المعاينة باستخدامImplementationMode.SURFACE_VIEWكلما أمكن ذلك. في حال تمرير مثيل فارغ أو ضبط وضع التنفيذ المفضّل علىImplementationMode.TEXTURE_VIEW، يتم استخدامImplementationMode.TEXTURE_VIEWداخليًا. يوضّح نموذج الرمز البرمجي التالي كيفية استخدام حالة استخدام المعاينة سابقًا مع PreviewView.
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)في الوقت الحالي، يمكنك كتابة ما يلي:
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))تمت إضافة التعليق التوضيحي
@UiThreadإلىPreviewView.getSurfaceProvider()، ما يعني أنّه يجب استدعاؤه من سلسلة التعليمات الرئيسية. (I192f3)تمت إضافة
PreviewView.setScaleType()التي تتيح ضبط نوع المقياس الخاص بالمعاينة. تقبل هذه السمة إحدى القيم فيPreviewView.ScaleType، وتكون القيمة التلقائيةPreviewView.ScaleType.FILL_CENTER.تمت إضافة "
PreviewView.getScaleType()".تمت إزالة إمكانية ضبط وضع التنفيذ لـ
PreviewViewفي تنسيق XML باستخدام السمةimplementationMode.أضِف واجهة برمجة التطبيقات
createMeteringPointFactory()إلى PreviewView للسماح بتحويل (x, y) فيPreviewViewإلىMeteringPoint. (Ib36d7)
إصلاح الأخطاء
- تم إصلاح الحالات التي يتم فيها عرض معاينة غير صحيحة بعد تغيير حجم
PreviewView. (I71101)
الإصدار 1.0.0-alpha08 من Camera-Extensions
26 شباط (فبراير) 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.
الإصدار 1.0.0-alpha08 من Camera-View
26 شباط (فبراير) 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.
إصلاح الأخطاء
- تم استبدال
ListenableFutureفيSurfaceRequest.provideSurface()بـExecutorوCallback. يؤدي ذلك إلى تبسيط واجهة برمجة التطبيقات من خلال عدم الحاجة إلى معالجة الاستثناءات فيprovideSurface()، كما يفرض عدم إمكانية إلغاء معاودة الاتصالprovideSurface(). ويتم ذلك لمنع حدوث أعطال على الأجهزة القديمة بسبب طرح مساحات العرض قبل الأوان. يتم الآن استخدام العنصرSurfaceRequest.Resultلتتبُّع كيفية استخدامSurfaceRequestللسمةSurfaceالمقدَّمة. (I7854b) - تمت إعادة تسمية
SurfaceRequest.setSurface(Surface)إلىSurfaceRequest.provideSurface(Surface)وSurfaceRequest.setWillNotComplete()إلىSurfaceRequest.willNotProvideSurface(). (I224fe) - تم إصلاح عملية تهيئة صيغ التطبيق مع تفعيل ProGuard من خلال الاحتفاظ بالعلامة التي تضبط موفّر
CameraXConfigالتلقائي. (I2d6c1)
Camera-Extensions الإصدار 1.0.0-alpha07
10 شباط (فبراير) 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 هذه التعديلات.
إصلاح الأخطاء
- تم الآن استبدال الوسيطتَين اللتين تم تمريرهما سابقًا في
ImageCapture.OnImageSavedCallback.onError()وImageCapture.OnImageCapturedCallback.onError()بوسيطة واحدةImageCaptureException، والتي لا تزال تحتوي على جميع المعلومات التي تم تمريرها سابقًا. - تمت إزالة وسيطة الملف التي تم تمريرها سابقًا في
ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2)
Camera-View الإصدار 1.0.0-alpha07
10 شباط (فبراير) 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- يضبط تنفيذ
TextureViewفيPreviewViewالآن حجمTextureViewعلى حجم ناتج أداة الاستشعار في الكاميرا قبل تغيير حجمه لملءPreviewViewالأصل. إذا أردت أن تملأ معاينة الكاميرا جزءًا كاملاً من واجهة المستخدم (الشاشة بأكملها مثلاً)، يجب ألا تضبط حجمPreviewViewعلى قيمة ثابتة، أو أن تجعلها تلتف حول محتواها (باستخدام السمة "wrap_content" مثلاً)، فقد يؤدي ذلك إلى أن تملأ معاينة الكاميرا جزءًا فقط منPreviewView(إذا كان حجم إخراج مستشعر الكاميرا أصغر). بدلاً من ذلك، يجب ضبط قيمةPreviewViewلتكون كبيرة مثل العنصر الأصل (باستخدام السمة "match_parent" مثلاً). (1204869)
إصلاح الأخطاء
- تم تعديل
ImageCaptureللسماح بحفظ الصور فيUriوOutputStream. تم دمج طرقtakePictureالمحمّلة بشكل زائد في طريقة واحدة. تم تعديل تطبيق الاختبار لاستخدامUriكمثال أساسي. (Ia3bec) - تمت إعادة تسمية
Preview.PreviewSurfaceProviderإلىPreview.SurfaceProvider. لم يعُد علىSurfaceProviderإنشاءListenableFutureخاص به، وأصبح بإمكانه تقديمSurfaceمن خلال عنصرSurfaceRequestجديد. تمت إزالة طريقةPreview.getPreviewSurfaceProvider()بسبب احتمال إساءة استخدامها عند إقرانPreviewبفئات أخرى مثلPreviewView. (I20105) - تم الآن استبدال الوسيطتَين اللتين تم تمريرهما سابقًا في
ImageCapture.OnImageSavedCallback.onError()وImageCapture.OnImageCapturedCallback.onError()بوسيطة واحدةImageCaptureException، والتي لا تزال تحتوي على جميع المعلومات التي تم تمريرها سابقًا. - تمت إزالة وسيطة الملف التي تم تمريرها سابقًا في
ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2) - تم تعديل واجهة برمجة التطبيقات، حيث تم دمج طرق
getZoomRatio()وgetMaxZoomRatio()وgetMinZoomRatio()وgetLinearZoom()الخاصة بـCameraInfoفيgetZoomState()التي تعرض مثيلاً منZoomState. (Ib19fe)
الإصدار 1.0.0-alpha06 من Camera-Extensions
22 يناير 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha06. يتضمّن الإصدار 1.0.0-alpha06 هذه التعديلات.
آخر الأخبار
- إصلاحات وتحديثات مختلفة لدعم التغييرات في Camera Core وCamera2
الإصدار 1.0.0-alpha06 من Camera-View
22 يناير 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha06. يتضمّن الإصدار 1.0.0-alpha06 هذه التعديلات.
آخر الأخبار
- إصلاحات وتحديثات مختلفة لدعم التغييرات في Camera Core وCamera2
الإصدار 1.0.0-alpha05 من Camera-Extensions
18 كانون الأول (ديسمبر) 2019
تم طرح androidx.camera:camera-extensions:1.0.0-alpha05. يتضمّن الإصدار 1.0.0-alpha05 هذه التعديلات.
إصلاح الأخطاء
- تم تعديلها لتتطابق مع واجهات برمجة التطبيقات الداخلية في Camera Core.
الإصدار 1.0.0-alpha05 من Camera-View
18 كانون الأول (ديسمبر) 2019
تم طرح androidx.camera:camera-view:1.0.0-alpha05. يتضمّن الإصدار 1.0.0-alpha05 هذه التعديلات.
المشاكل المعروفة
- قد تكون نسبة العرض إلى الارتفاع غير صحيحة عند استخدام PreviewView (b/146215202).
الميزات الجديدة
- تم تنفيذ فئة جديدة باسم
PreviewView.TextureViewImplementationتعمل على مزامنة دورة حياة SurfaceTexture مع استخدام الكاميرا لمساحة TextureView.
الإصدار 1.0.0-alpha04 من Camera-Extensions
4 كانون الأول (ديسمبر) 2019
تم طرح androidx.camera:camera-extensions:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 من مكتبة camera-extensions هذه التعديلات
تغييرات واجهة برمجة التطبيقات
يتطلّب التحقّق من توفّر إضافة وتفعيلها الآن إدخال
CameraSelectorكمعلَمة إدخال. يجب أن يكون هذا هوCameraSelectorنفسه المستخدَم لربط حالة الاستخدام.val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA val builder = ImageCapture.Builder() val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder) if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) { bokehImageCaptureExtender.enableExtension(cameraSelector) } val imageCapture = builder.build() mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)يجب تهيئة الإضافات قبل استخدام مكتبة الإضافات.
val availability = ExtensionsManager.init() Futures.addCallback<ExtensionsManager.ExtensionsAvailability>( availability, object : FutureCallback<ExtensionsManager.ExtensionsAvailability> { override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) { // Ready to make extensions calls } override fun onFailure(throwable: Throwable) { // Extensions could not be initialized } }, Executors.newSingleThreadExecutor() )
الإصدار 1.0.0-alpha04 من Camera-View
4 كانون الأول (ديسمبر) 2019
تم طرح androidx.camera:camera-view:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 من camera-view هذه التعديلات
تغييرات واجهة برمجة التطبيقات
- يتم توفير فئة
PreviewViewلعرض الناتج من حالة استخدام "المعاينة" بسهولة في أحد التطبيقات. يمكن تضمين
PreviewViewفي التنسيق:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />توفّر
PreviewViewPreviewSurfaceProviderلربط إحدى حالات استخدام "النسخة الحصرية" بسهولةpreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)تم استبدال "
ZoomLevel" بـ "ZoomRatio" في تسمية واجهات برمجة التطبيقاتتغيّرت إمكانية قبول بعض مَعلمات الطريقة لقيمة فارغة
Camera-Extensions وCamera-View الإصدار 1.0.0-alpha03
9 أكتوبر 2019
تم طرح androidx.camera:camera-extensions:1.0.0-alpha03 وandroidx.camera:camera-view:1.0.0-alpha03. هذه هي التعديلات المضمّنة في camera-extensions:1.0.0-alpha03، وهذه هي التعديلات المضمّنة في camera-view:1.0.0-alpha03.
الميزات الجديدة
- تمت إضافة أداة تهيئة السياق للإضافات. تمت زيادة إصدار الإضافات إلى 1.1.0
الإصدار 1.0.0-alpha02 من Camera-Extensions وCamera-View
5 أيلول (سبتمبر) 2019
تم طرح androidx.camera:camera-extensions:1.0.0-alpha02 وandroidx.camera:camera-view:1.0.0-alpha02. في ما يلي
التعديلات المضمّنة في الإصدار camera-extensions:1.0.0-alpha02
وهذه هي التعديلات المضمّنة في الإصدار
camera-view:1.0.0-alpha02.
- تمت إضافة اختبارات للتحقّق من أنّ
PreviewImageProcessorImplقد نفّذت الطوابع الزمنية بشكل صحيح. - إصلاح مشكلة تعذُّر اجتياز اختبار
ExtensionTestعلى جهاز Nexus 5 (المستوى 21 من واجهة برمجة التطبيقات) والتأكّد من توفُّر المعاينة
الإصدار 1.0.0-alpha01 من Camera-Extensions وCamera-View
7 آب (أغسطس) 2019
تم طرح androidx.camera:camera-extensions:1.0.0-alpha01 وandroidx.camera:camera-view:1.0.0-alpha01.
في ما يلي
التعديلات المضمّنة في الإصدار 1.0.0-alpha01 من camera-extensions
وفي ما يلي التعديلات المضمّنة في الإصدار 1.0.0-alpha01 من
camera-view
- مكتبة جديدة خاصة بإضافات الكاميرا المستقبلية للوصول إلى التأثيرات على الأجهزة المتوافقة لا تزال هذه المكتبة قيد التطوير.
- فئة "عرض الكاميرا الجديد" لا تزال هذه المكتبة قيد التطوير.