CameraX
يسرد هذا الجدول جميع العناصر في مجموعة androidx.camera
.
العناصر | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار التجريبي الأول |
---|---|---|---|---|
camera-camera2 | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-core | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-compose | - | - | - | 1.5.0-alpha04 |
تأثيرات الكاميرا | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-extensions | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-feature-combination-query | - | - | - | 1.5.0-alpha04 |
camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha04 |
camera-lifecycle | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-mlkit-vision | 1.4.1 | - | - | 1.5.0-alpha04 |
camera-view | 1.4.1 | - | - | 1.5.0-alpha04 |
عدسة الكاميرا | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
camera-video | 1.4.1 | - | - | 1.5.0-alpha04 |
اختبار الأجهزة
يتم اختبار CameraX على العديد من الأجهزة في مختبرنا. للاطّلاع على قائمة بالأجهزة التي يتم اختبارها حاليًا في المختبر، يُرجى الاطّلاع على الأجهزة التي تم اختبارها في مختبر CameraX.
الإعلان عن التبعيات
لإضافة تبعية على CameraX، عليك إضافة مستودع Google Maven إلى مشروعك. يمكنك الاطّلاع على مستودع Maven من Google للحصول على مزيد من المعلومات.
أضِف التبعيات للعناصر التي تحتاج إليها في ملف build.gradle
ل
تطبيقك أو وحدتك:
رائع
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.5.0-alpha03" // 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.5.0-alpha03" // 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. يُرجى إعلامنا إذا واجهت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية عن طريق النقر على زر النجمة.
اطّلِع على مستندات أداة تتبُّع المشاكل لمزيد من المعلومات.
الإصدار 1.0 من ميزة "إنشاء" في عدسة الكاميرا
الإصدار 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 عمليات الربط هذه.
تغييرات واجهة برمجة التطبيقات
- أعِد تسمية فئات
ImplementationMode
فيViewfinder
لتعكس بشكل أفضل عمليات التنفيذ الأساسية، وأضِف ثوابت ثابتةTransformationInfo.sourceRotation
. (Ic6149) - تمت إضافة
ZoomGestureDetector.ZoomEvent
لتضمين حالات إيماءة التكبير/التصغير. (I84cdf)
إصدار الكاميرا 1.5
الإصدار 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 ومعدل 60 لقطة في الثانية في الوقت نفسه يتضمّن هذا العنصر شيئَين: طلب بحث عن تركيبة ميزات الكاميرا وcamera-feature-combination-query-play-services.
هذا إصدار متوافق من واجهة برمجة التطبيقات
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported
لكاميرا 2 مع بيانات إضافية تقدّمها "خدمات Google Play".
إصلاح الأخطاء
- تم حلّ مشكلة عدد اللقطات المستهدَف في الثانية
Preview/VideoCapture
على الأجهزة التي تعمل بالإصدار LEGACY. كان يتم دائمًا استبدال معدل عرض اللقطات المستهدَف الذي تم ضبطه من خلال واجهة برمجة التطبيقاتsetTargetFrameRate
أوCamera2Interop
بالقيمة المقدَّمة منAeFpsRangeLegacyQuirk
. من خلال هذا الإصلاح، ستلتزم مكتبة CameraX بالقيمة التي تم ضبطها من خلال واجهة برمجة التطبيقاتsetTargetFrameRate
أوCamera2Interop
. (Ie2d32) - تمّت إضافة وظائف الفلاش/مصباح يدوي/3A لالتقاط الصور باستخدام
CameraEffect
. من المفترض أن تخضع عمليات التقاط الصور باستخدامCameraEffect
الآن لعمليات المعالجة نفسها قبل التقاط الصور وبعده (مثل بدء الفلاش وتوحيد 3A وما إلى ذلك عند الاقتضاء) مثل عمليات التقاط الصور بدون أيCameraEffect
. (I5ff30) - تم استبعاد أحجام الإخراج التي تتضمن مشاكل لـ
ImageAnalysis
على جهاز Samsung SM-A057G. عندما يستخدمImageAnalysis
دقة أكبر من أو تساوي 1920×1440، سيؤدي ذلك إلى ظهور مشكلة معاينة باللون الأسود. تم تطبيق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 على عمليات الربط هذه.
تغييرات واجهة برمجة التطبيقات
- يجب توفير واجهة برمجة تطبيقات لضبط إعدادات التركيب لتسجيل الفيديوهات باستخدام كاميرتين متزامنتين. وتشمل الإعدادات قيمة شفافية الدمج والإزاحة في إحداثيات 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.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 بت بنطاق عالي الديناميكية:
- التقاط صور وفيديوهات رائعة بنطاق عالي الديناميكية بسهولة
- يتوافق مع ترميز HLG وHEVC بدقة 10 بت.
- استمتع بمعاينة فيديوهات 10 بت بنطاق HDR واستفسر عن إمكانات الجهاز.
- تتوافق مع صور
UltraHDR
وفيديوهات النطاق العالي الديناميكية على مجموعة متنامية من الأجهزة.
ميزات رائعة أخرى:
- إضافات Kotlin: تمّت إضافة دالّتَي تعليق
takePicture
وawaitInstance
. - التأثيرات في الوقت الفعلي: يمكنك تطبيق تأثيرات، مثل العلامات المائية وإبراز الأجسام.
- CameraController API: عناصر تحكّم جديدة لضبط إعدادات تسجيل الفيديو
- تحسين معاينة الفيديو: يمكنك الاستعلام عن قدرة الجهاز وتفعيل ميزة تحسين المعاينة.
- تحسينات ميزة "تسجيل الفيديو": يمكنك التحكّم بشكل أفضل في الجودة والوصول إلى درجات دقة أعلى.
- دمج CameraX Extensions: دمج سلس مع
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) - فصل ميزة "دقة HDR فائقة" عن إمكانية الإخراج بدقة 10 بت، لأنّ إتاحة ميزة "دقة 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/8 وSamsung Galaxy S24. ظهرت المشكلة، الناتجة عن مشكلة في تحويل
Camera2OutputConfigImpl
في وضع الإصدار، بعد ترقية AGP إلى الإصدار 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
دقة 1920×1080 ضمن مجموعةPreview
+VideoCapture
+ImageCapture
UseCase
. (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
على بعض الأجهزة. (مثلاً، 4000×3000 على 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
، والتي تلتقط صور النطاق العادي الديناميكية بتنسيق JPEG. عندما يكون الجهاز متوافقًا مع دقة HDR الفائقة ويتم ضبط تنسيق الإخراج علىOUTPUT_FORMAT_JPEG_ULTRA_HDR
، سيلتقط CameraX صورًا مضغوطة بدقة 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
مطابقةImageAnalysis
UseCase
. (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 لأنّ العديد من عمليات تنفيذ الإضافات من المصنّعين الأصليين للأجهزة لا تعمل مع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) - واجهات برمجة التطبيقات لاحتساب عملية تحويل الإحداثيات من أداة الاستشعار إلى المخزن المؤقت الحالي، مع علامة تشير إلى ما إذا كانت المساحة تحتوي على معلومات حول اتجاه الكاميرا (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 التي تم التقاطها على بيانات حشو متكررة من الأرقام 0 في قسم البيانات المضغوطة بتنسيق JFIF. يؤدي ذلك إلى أن يكون حجم الملفات للصور التي تم التقاطها كبيرًا جدًا. ستتم إزالة بيانات الحشو هذه التي تتضمّن الأرقام 0 المتكرّرة لجعل أحجام ملفات الصور التي تم التقاطها عادية. (I01afc، b/288828159)
- أوقِف ميزة
ImageAnalysis
على هواتف Pixel لتجنُّب الخطأ الذي يؤدي إلى عرض أحجامImageAnalysis
المتوافقة غير الفارغة عن طريق الخطأ على هواتف Pixel. (I7ec31) - تم إصلاح مشكلة الأداء التي كانت تؤدي إلى زيادة استهلاك الطاقة وتحميل وحدة المعالجة المركزية عند تفعيل الإضافات. (Ibdccb)
- تمت إضافة Snapdragon 480 إلى
CameraUseInconsistentTimebaseQuirk
. يحلّ هذا الإصدار مشكلة في نظام التشغيل Android 12 على الأجهزة التي تستخدم شريحة المعالجة هذه، حيث يتم إيقاف الصوت في التسجيلات حسب المدة التي يكون فيها الجهاز في حالة تعليق. (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
نهائيًا واستبدِله بـResolutionSelector
.ResolutionSelector
هي طريقة أكثر شمولية لاختيار درجات الدقة، وهي متوافقة مع واجهة برمجة التطبيقات camera-core API. (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 التي تم التقاطها على بيانات حشو متكررة من الأرقام 0 في قسم البيانات المضغوطة بتنسيق 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
مطابقة لـImageAnalysis
UseCase. (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
. يحلّ هذا الإصدار مشكلة في نظام التشغيل Android 12 على الأجهزة التي تستخدم شريحة المعالجة هذه، حيث يتم إيقاف الصوت في التسجيلات حسب المدة التي يكون فيها الجهاز في حالة تعليق. (I58010)
الإصدار 1.3.0
18 تشرين الأول (أكتوبر) 2023
تم إصدار androidx.camera:camera-*:1.3.0
. يحتوي الإصدار 1.3.0 على عمليات الربط هذه.
التغييرات المهمة منذ الإصدار 1.2.0
- ميزات الفيديو، بما في ذلك فيديو بنطاق عالي الديناميكية بدقة 10 بت والاقتصاص والعرض المرآوي/غير المرآوي وكتم الصوت/إلغاء كتم الصوت وضبط عدد اللقطات في الثانية وغير ذلك
- كاميرا مزدوجة متزامنة
- مكتبة التأثيرات
- أداة اختيار درجة الدقة
- اختيار الكاميرا ذات الزاوية الفائقة الاتساع والكاميرا المقرِّبة
- التبديل بين الكاميرا الأمامية والخلفية أثناء تسجيل الفيديو (ميزة تجريبية)
الإصدار 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 التي تم التقاطها على بيانات حشو متكررة من الأرقام 0 في قسم البيانات المضغوطة بتنسيق JFIF. يؤدي ذلك إلى زيادة حجم الملفات التي تم التقاطها. ستتم إزالة بيانات الحشو هذه التي تتضمّن الأرقام 0 المتكرّرة لجعل أحجام ملفات الصور التي تم التقاطها عادية. (I407b0، b/288828159)
- تم حلّ مشكلة صور JPEG الكبيرة التي تم التقاطها على أجهزة سلسلة Samsung S22 (SM-S901B وSM-S901B/DS) وS22+ (SM-S906B). تحتوي صور JPEG التي تم التقاطها على بيانات حشو متكررة من الأرقام 0 في قسم البيانات المضغوطة بتنسيق JFIF. يؤدي ذلك إلى أن يكون حجم الملفات التي تم التقاطها كبيرًا، أي حوالي 13 ميغابايت على جهاز S22 SM-S901B/DS. ستتم إزالة بيانات الحشو هذه التي تتضمّن أصفارًا زائدة لجعل أحجام ملفات الصور التي تم التقاطها عادية. (I73be9، b/288828159)
- تم حلّ مشكلة صور JPEG الكبيرة التي تم التقاطها على أجهزة سلسلة Samsung A5 وA52 وA70 وA72. تحتوي صور JPEG التي تم التقاطها على بيانات حشو متكررة من الأرقام 0 في قسم البيانات المضغوطة بتنسيق JFIF. يؤدي ذلك إلى أن يكون حجم الملفات للصور التي تم التقاطها كبيرًا جدًا (مثلاً 32 ميغابايت أو حتى 96 ميغابايت). ستتم إزالة بيانات الحشو هذه التي تتضمّن الأرقام 0 المتكرّرة لجعل أحجام ملفات الصور التي تم التقاطها عادية. (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 التي تم التقاطها على بيانات حشو متكررة من الأرقام 0 في قسم البيانات المضغوطة بتنسيق JFIF. يؤدي ذلك إلى أن يكون حجم الصور التي تم التقاطها حوالي 32 ميغابايت. ستتم إزالة بيانات الحشو هذه التي تتضمّن الأرقام 0 المتكرّرة لجعل أحجام ملفات الصور التي تم التقاطها عادية. (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)
API الجديدة بتسجيل الفيديوهات بمعدّلات عرض صور أخرى غير معدّل الجهاز التلقائي. يمكن الاستعلام عن معدّلات اللقطات المتاحة للتسجيلات من خلال واجهة برمجة التطبيقاتCameraInfo#getSupportedFrameRates()
API الجديدة.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية الثوابت
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) - تم إصلاح مشكلة عدم إيقاف المعاينة مؤقتًا في الإضافات (Ia903e)
Preview.setSurfaceProvider(null)
- تم إصلاح مشكلة تؤدي إلى ظهور
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
mirroring إمكانية محاذاة المحتوى مع معاينة الكاميرا عند استخدام الكاميرا الأمامية. هناك ثلاث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)
- اجعل
ImageProcessor.Response#getOutputImage
غير فارغ (Ib9c60). - تمت إضافة واجهات برمجة تطبيقات لعرض المحتوى على شاشة
VideoCapture
، بما في ذلكVideoCapture.Builder.setMirrorMode(int)
وVideoCapture.getMirrorMode()
. تكون واجهات برمجة التطبيقات مفيدة للتطبيقات التي تتطلّب أن يكون تسجيل الفيديو متوافقًا مع السلوك الشائع لمعاينة الكاميرا، أي أنّه لا يتم عكس معاينة الكاميرا الخلفية ولكن يتم عكس معاينة الكاميرا الأمامية. (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 أو الإصدارات الأحدث. يُرجى العلم أنّ التقاط الصور باستخدام تطبيق "الملفات" في المجلد العلني لوحدة التخزين الخارجية يتطلّب أيضًا ضبط
requestLegacyExternalStorage
على true في علامة التطبيق على نظام التشغيل Android 10. (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
للعرض بالتناوب، بما في ذلكVideoCapture.Builder.setTargetRotation(int)
وVideoCapture.setTargetRotation(int)
وVideoCapture.setTargetRotationDegrees(int)
وVideoCapture.getTargetRotation()
. تكون واجهات برمجة التطبيقات مفيدة للتطبيقات التي تُقفل اتجاه الجهاز. تمت أيضًا إضافةImageCapture.setTargetRotationDegrees(int)
وImageAnalysis.setTargetRotationDegrees(int)
. (Id3ffe، b/205242781) - اسمح بـ
VIDEO_CAPTURE
وPREVIEW|VIDEO_CAPTURE
كهدف للتأثيرات. سيتم تطبيق التأثيرات التي تستهدفVIDEO_CAPTURE
على حالة الاستخدامVideoCapture
، وسيتم تطبيق التأثيرات التي تستهدف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 على هذه المراجعات.
الميزات الجديدة
ميزة جديدة تتيح استخدام مجموعات "مساحات العرض" غير المتوافقة سابقًا من خلال مشاركة بث واحد في عدّة حالات استخدام
- في السابق، عند ربط "Preview، وVideoCapture، وImageAnalysis" على مستوى أجهزة الكاميرا FULL والإصدارات الأقدم، أو ربط "Preview، و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
. يمكن لموفّر المساحة الإعلانية إرسال إشعار بأنّ المساحة الإعلانية المقدَّمة سابقًا لم تعُد صالحة. (Idc649) - أضِف واجهة برمجة تطبيقات
ImageProcessor
. هذه الواجهة مخصّصة لإدخال تأثيرات ما بعد المعالجة في مسارImageCapture
. (I575c6) - تمت إضافة واجهة برمجة التطبيقات
Recorder.Builder.setAspectRatio()
التي يمكن دمجها معQualitySelector
لتتوافق مع المزيد من درجات دقة الفيديو. (I8a082) - تمت إضافة
Recorder.Builder#setTargetVideoEncodingBitRate
لضبط ترميز الفيديو المستهدَفBitRate
وRecorder#getTargetVideoEncodingBitRate
للحصول على معدل نقل البيانات لترميز الفيديو المستهدَف. (I5984d)
إصلاح الأخطاء
- تم إصلاح مشكلة تعذُّر
ImageCapture
في حال عدم توفُّر وحدة فلاش ووضع الفلاش مفعَّل. (I9e8b4، b/263391112) - تم إصلاح مشكلة تلف صور JPEG في حال كتابة بيانات الموقع الجغرافي بتنسيق Exif على بعض أجهزة Samsung التي تعمل بنظام التشغيل Android 12. (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) - أزِل فئات البيانات الوصفية و
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)
- حلّ مشكلة الشاشة السوداء في عملية تنفيذ
PreviewView
SurfaceView
على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. - تم إصلاح مشكلة المعاينة السوداء التي تحدث عند تفعيل ميزة "تمويه الخلفية" على بعض أجهزة 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
API لـOutputConfiguration
. يمكن للمستخدم تحديد حالة استخدام البث لجلسة البث، مع إلغاء منطق CameraX الداخلي لاختيار حالة استخدام البث من أجل التحسين وفقًا لاحتياجاته. (Ib1a95)
إصلاح الأخطاء
- تم إصلاح مشكلة
Preview/VideoCapture
التمدد في هاتفَي Samsung J7 Prime (SM-G610M) وJ7 (SM-J710MN) على الأجهزة التي تعمل بمستوى واجهة برمجة التطبيقات 27. تؤدي درجة الدقة 1920×1080 إلى تمديد صورPreview/VideoCapture
. تمت إضافة حلّ بديل لعدم اختيار درجة الدقة 1920×1080 في "المعاينة" أو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 ملي ثانية، ما سيكمل جزء التركيز التلقائي مع
isFocusSuccessful
false إذا لم يتم إلغاء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 على هذه المراجعات.
الميزات الجديدة
- اعرض واجهة برمجة التطبيقات CameraX Zero-Shutter Lag API كواجهة برمجة تطبيقات تجريبية.
تغييرات واجهة برمجة التطبيقات
- أضِف وضع الالتقاط الجديد
CAPTURE_MODE_ZERO_SHUTTER_LAG
فيImageCapture
وأضِفisZslSupported
فيCameraInfo
للاستعلام عن إمكانات الجهاز. يهدف وضعCAPTURE_MODE_ZERO_SHUTTER_LAG
إلى توفير الحد الأدنى من وقت الاستجابة لالتقاط الصور على الفور. ويتم تنفيذه استنادًا إلى ذاكرة تخزين دوار، والتي تخزِّن نتائج الالتقاط المؤقتة لإعادة معالجتها لاحقًا عندما يضغط المستخدم على الأزرار لالتقاط الصور. إذا تم ربط {@link VideoCapture} أو لم يتم إيقاف وضع الفلاش أو إذا كانت إضافة المصنّع الأصلي للجهاز مفعّلة، سيتم إيقاف هذا الوضع تلقائيًا. (I9ae74) - إضافة طريقة
ImageAnalysis.getBackgroundExecutor()
(Icc945)
إصلاح الأخطاء
- تم إصلاح مشكلة أنّ
ImageCapture
طريقة takePicture تؤدي إلى إيقاف ضوء الفلاش على الأجهزة التي تم الإبلاغ عنها. (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
إلى الحصول على دقة FHD بشكل غير صحيح فيVideoCapture
. إنّ درجة الدقة الفائقة الجودة متوافقة مع هذه المجموعة من حالات الاستخدام، ويجب استخدامها. (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
- مكتبات "العرض على الويب" و"الإضافات" و"التقاط الفيديو" كأول إصدار تجريبي لها اعتبارًا من الإصدار 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
لصنّاع المحتوى إلى واجهة برمجة تطبيقات مستندة إلى قائمة.
إصلاح الأخطاء
- تم إصلاح مشكلة
YuvToJpegProcessor
EOFException
عند تفعيل وضع التمديد وضبط وضعImageCapture#CAPTURE_MODE_MAX_QUALITY
. - تعذّر ضبط برنامج الترميز الثابت بسبب إغلاق تسجيل الفيديو
- تم إصلاح نسبة العرض إلى الارتفاع الممدودة للمعاينة/الفيديو عند التسجيل بدقة FHD.
- تم إصلاح مشكلة عدم تزامن الصوت والفيديو بعد الإيقاف المؤقت والاستئناف على بعض الأجهزة.
- تم حلّ المشكلة التي كانت تؤدي إلى تفعيل الفلاش أثناء النقر للتركيز (
startFocusAndMetering
) عندما يكون وضع الفلاش تلقائيًا أو دائمًا في بيئة منخفضة الإضاءة.
الإصدار 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 على هذه المراجعات.
الميزات الجديدة
- طرح أول إصدار تجريبي من camera-video وcamera-view وcamera-extension
إصلاح الأخطاء
- تم إصلاح مشكلة عدم تحرير برنامج ترميز الفيديو عند إلغاء ربط
VideoCapture<Recorder>
، ما يؤدي إلى تعذُّر تسجيل الفيديوهات باستخدامMediaCodec.CodecException
في عمليات الاستخدام اللاحقة، خاصةً على الأجهزة التي تعمل بالإصدارات 21 أو 22 من واجهة برمجة التطبيقات.VideoCapture<Recorder>
(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)
المساهمة الخارجية
- تم تعديل واجهة برمجة التطبيقات :compose:ui:ui-test api (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
ل clearing the existing capture request options. (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)
- ستظهر خطوط ملونة متداخلة في "المعاينة الثابتة" بعد بدء تسجيل فيديو بدقة فائقة على هاتف Pixel 1. (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
API في 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 بسهولة في التطبيقات التي يكون فيها minSdkVersion أقل من 21، ولكن تريد استخدام مسارات الرموز البرمجية مشروطًا التي تعتمد على واجهة برمجة التطبيقات 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)
- تم حلّ المشكلة التي كانت تؤدي إلى توقُّف ميزة "المعاينة" لفترة من الوقت عند التقاط الصور إذا كانت ميزتا "التقاط الفيديو" و"التقاط الصور" و"المعاينة" مرتبطة ببعضها. (I56197، b/193864120)
- يسمح هذا الخيار لـ ImageAnalysis باختيار دقة أكبر من 1080p. يمكن للجهاز من المستوى "محدود" أو أعلى أن يتوافق مع درجة دقة بحجم "تسجيل" لتحليل الصور عند ربطه مع "المعاينة" و"التقاط الصور". يتمثل التأثير في أنّ درجة الدقة المحدّدة لالتقاط الصور يجب أن تكون أيضًا درجة دقة بحجم التسجيل. لاختيار دقة بحجم التسجيل بنجاح لتحليل الصور، يجب ضبط دقة مستهدَفة بحجم التسجيل على كلّ من تحليل الصور و"التقاط الصور". يشير ذلك إلى أنّ التطبيق يفهم بوضوح المفاضلة ويفضّل أن تحصل ImageAnalysis على دقة أكبر بدلاً من أن تحصل ImageCapture على الحد الأقصى من الدقة. للحصول على تعريفات لحجمَي التسجيل والحد الأقصى ومزيد من التفاصيل، يُرجى الاطّلاع على https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. يشير حجم RECORD إلى الحد الأقصى المسموح به لدقة التسجيل في جهاز الكاميرا، كما تحدّده CamcorderProfile. يشير الحد الأقصى للحجم إلى الحد الأقصى لدقة الإخراج لجهاز الكاميرا لهذا التنسيق أو الهدف من StreamConfigurationMap.getOutputSizes(int). (I1ee97، b/192911449)
- إضافة معلومات Exif إلى الصورة التي تم التقاطها (I01ff0، b/193342619)
- في ImageCapture، يجب عرض عنوان URL للصورة المحفوظة إذا كان موقع الحفظ هو "ملف". (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)
- تم إصلاح مشكلة
YuvToJpegProcessor
EOFException عند تفعيل وضع الإضافات وضبط وضع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 لتوفير معلومات الدقة لـ Preview و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 API التجريبية لـ 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) ExperimentalCameraFilter
واجهات برمجة التطبيقات خارج مرحلة الإصدارات التجريبية وأصبحت واجهات برمجة تطبيقات رسمية. ويمكن استخدامها بدون ميزة "الموافقة المُشارَك عليها". (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) - ميزة "التقاط الصور" التي تم إصلاحها مع تفعيل الفلاش أو وضعه على "تلقائي" تلتقط صورًا باهتة على هاتف Samsung Galaxy S7 (I30001)
- تمت إضافة واجهة برمجة تطبيقات CameraState API التي سيتم عرضها من خلال 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 من النوع "ملف". (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
مشكلة كانت تحدث عندما تكون جميع الأحجام المتوافقة مع المعاينة أصغر من 640×480 وحجم العرض أكبر من 640×480. (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 ميزات المعاينة والتقاط الصور والتحليل.
- تدير 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 على هذه المراجعات.
إصلاح الأخطاء
- ميزة "التقاط الصور" التي تم إصلاحها مع تفعيل الفلاش أو وضعه على "تلقائي" تلتقط صورًا باهتة على هاتف 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 من النوع "ملف". (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
مشكلة كانت تحدث عندما تكون جميع الأحجام المتوافقة مع المعاينة أصغر من 640×480 وحجم العرض أكبر من 640×480. (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 API إلى 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)
Camera-Camera2 الإصدار 1.0.0-beta11
14 تشرين الأول (أكتوبر) 2020
تم إصدار androidx.camera:camera-camera2:1.0.0-beta11
. يحتوي الإصدار 1.0.0-beta11 على هذه المراجعات.
الميزات الجديدة
- أن تكون متوافقة مع واجهة برمجة التطبيقات
CONTROL_ZOOM_RATIO
لنظام التشغيل Android 11 من أجل التكبير/التصغير على أجهزة Android 11 أو الإصدارات الأحدث التي تحتوي علىCONTROL_ZOOM_RATIO_RANGE
صالح (I62cc6)
إصلاح الأخطاء
- تم إصلاح مشكلة NumberFormatException التي تحدث عندما يكون رقم تعريف الكاميرا غير صحيح. (Ib2228)
- تم تحسين وقت الاستجابة لبدء تشغيل CameraX واستخدام ميزة bindToLifecycle (I61dc5).
- لا يتطلّب إنشاء حالات الاستخدام إكمال عملية إعداد 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)
- لا يتطلّب إنشاء حالات الاستخدام إكمال عملية إعداد 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)
Camera-Camera2 Version 1.0.0-beta10
23 أيلول (سبتمبر) 2020
تم إصدار androidx.camera:camera-camera2:1.0.0-beta10
. يحتوي الإصدار 1.0.0-beta10 على هذه المراجعات.
إصلاح الأخطاء
- إصدار متوافق مع Camera-Core 1.0.0-beta10
Camera-Camera2 الإصدار 1.0.0-beta09
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) - فرض استخدام PreviewView لـ TextureView إذا كان تأثير الإضافة مفعّلاً وكان تنفيذ مكتبة المورّد بحاجة إلى إجراء عملية خاصة على مساحة العرض (I0c3cc)
- تم إصلاح تسرب النشاط/الجزء عند تمرير سياق النشاط/الجزء إلى
ProcessCameraProvider.getInstance(Context)
.
المشاكل المعروفة
- عند ضبط ViewPort، قد يكون مستطيل الاقتصاص في ImageCapture غير صحيح على الأجهزة التي تُدير ذاكرة التخزين المؤقت للصورة في HAL. سيتم حلّ هذه المشكلة في الإصدار التالي.
Camera-Camera2 الإصدار 1.0.0-beta08
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 وهناك حجم آخر متوافق 16:9 1920x1080. (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)
- من المفترض ألا يؤدي الإعداد إلى حدوث عطل عند استخدام سياق
لا يعرض عنصر Application من
Context.getApplicationContext()
. (I3d3c9، b/160817073)
Camera-Camera2 الإصدار 1.0.0-beta07
22 تموز (يوليو) 2020
تم إصدار androidx.camera:camera-camera2:1.0.0-beta07
. يحتوي الإصدار 1.0.0-beta07 على هذه المراجعات.
إصلاح الأخطاء
- تم إصلاح مشكلة تمدد المعاينة على الأجهزة القديمة التي تعمل بنظام التشغيل Android 5.0. (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
معFIT
FIT
يعني أنّ مستطيل الاقتصاص الذي يتم إرجاعه سيكون أكبر مستطيل ممكن للحساس. (Ia73c3) - يتم ضبط مستطيل اقتصاص المعاينة حسب إطار العرض. يجب أن تكون المنطقة التي يغطيها مستطيل الاقتصاص مرئية للمستخدمين النهائيين فقط. (I142a4)
إصلاح الأخطاء
- تم إصلاح مشكلة تمدد المعاينة على الأجهزة القديمة التي تعمل بنظام التشغيل Android 5.0. (I0c03a)
- تم إصلاح مشكلة استثناء
ConcurrentModificationException
عند إلغاء ربط حالات الاستخدام. (I371c0)
Camera-Camera2 الإصدار 1.0.0-beta06
24 حزيران (يونيو) 2020
تم إصدار androidx.camera:camera-camera2:1.0.0-beta06
. يحتوي الإصدار 1.0.0-beta06 على هذه المراجعات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهات تجريبية لفلترة الكاميرات حسب كاميرا ID وCameraCharacteristics. (I28f61)
إصلاح الأخطاء
- تم إصلاح المشكلة التي تؤدي إلى تعذُّر التركيز بنجاح على هاتف Samsung Galaxy S7 من خلال startFocusAndMetering. (If3be7، b/159039233)
- حلّ مشكلة تعذُّر إغلاق الكاميرا بعد إنهاء استخدام التطبيق (I7a7b3)
- إصلاح مشكلة انقطاع المعاينة عند تكرار تبديل الكاميرا عند استخدام تنفيذ SurfaceView لـ PreviewView (I920ce)
- سيتعذّر تنفيذ
CameraControl#startFocusAndMetering
إذا لم يتمكّن أيّ من نقاط القياس المحدّدة من إنشاء مستطيلات قياس صالحة. (Id53ce)
الإصدار 1.0.0-beta06 من Camera-Core
24 حزيران (يونيو) 2020
تم إصدار androidx.camera:camera-core:1.0.0-beta06
. يحتوي الإصدار 1.0.0-beta06 على هذه المراجعات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهات تجريبية لفلترة الكاميرات حسب كاميرا ID وCameraCharacteristics. (I28f61)
إصلاح الأخطاء
- يمكن الآن ضبط CameraX باستخدام
ProcessCameraProvider#configureInstance()
قبل استدعاءProcessCameraProvider#getInstance()
. يتيح ذلك تخصيصCameraXConfig
بدون الحاجة إلى تنفيذCameraXConfig.Provider
في فئة Application للتطبيق. (Ia1a8d) - سيتعذّر تنفيذ
CameraControl#startFocusAndMetering
إذا لم يتمكّن أيّ من نقاط القياس المحدّدة من إنشاء مستطيلات قياس صالحة. (Id53ce)
Camera-Camera2 الإصدار 1.0.0-beta05
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)
Camera-Camera2 الإصدار 1.0.0-beta04
27 أيار (مايو) 2020
تم إصدار androidx.camera:camera-camera2:1.0.0-beta04
. يحتوي الإصدار 1.0.0-beta04 على هذه المراجعات.
إصلاح الأخطاء
- السماح للتطبيقات بضبط أي مَعلمات لطلب التقاط الصور من الكاميرا 2 من خلال
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)
Camera-Core الإصدار 1.0.0-beta04
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
حيث أدّت طلبات متعددة إلى setAnalyzer/clearAnalyzer إلى عدم تلقّي المحلّل للصور لتحليلها. (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)
Camera-Camera2 الإصدار 1.0.0-beta03
نيسان (أبريل) 2020
تم إصدار androidx.camera:camera-camera2:1.0.0-beta03
. يحتوي الإصدار 1.0.0-beta03 على هذه المراجعات.
إصلاح الأخطاء
- إصلاحات لتوفير التوافق مع إصدار
camera-core
Camera-Core الإصدار 1.0.0-beta03
نيسان (أبريل) 2020
تم إصدار androidx.camera:camera-core:1.0.0-beta03
. يحتوي الإصدار 1.0.0-beta03 على هذه المراجعات.
إصلاح الأخطاء
- تم إصلاح مشكلة الانحدار من الإصدار beta03 حيث كان يؤدي استدعاء
bindToLifecycle()
بدون أيUseCase
إلى حدوث استثناء. وقد أدّى ذلك إلى منع استردادCamera
بدون ربطUseCase
.
Camera-Camera2 الإصدار 1.0.0-beta02
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
التي تحدث على الأجهزة التي يكون حجم الشاشة فيها أصغر من 640×480. (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()
أكثر من مرة.
Camera-Camera2 الإصدار 1.0.0-beta01
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()
callback. ويهدف ذلك إلى منع الأعطال على الأجهزة القديمة الناتجة عن إلغاء عرض مساحات العرض قبل الأوان. يتم الآن استخدام عنصر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
من خلال التأكّد من الاحتفاظ ببياناتSurface
فقط طوال مدة استخدامها من خلال 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)
Camera-Camera2 الإصدار 1.0.0-alpha09
22 كانون الثاني (يناير) 2020
تم إصدار androidx.camera:camera-camera2:1.0.0-alpha09
. يحتوي الإصدار 1.0.0-alpha09 على عمليات الربط هذه.
تغييرات واجهة برمجة التطبيقات
أضِف مسار التشغيل التفاعلي لكاميرا 2 لاستخراج رقم تعريف كاميرا 2. يمكنك استخراج معرّف الكاميرا من
CameraInfo
باستخدامCamera2CameraInfo.extractCameraId()
. يوضّح نموذج الرمز البرمجي التالي كيفية استخدام هذا الإجراء:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
تتطلّب فئة
Camera2CameraInfo
سمةExperimentalCamera2Interop
markerClass.
الإصدار 1.0.0-alpha09 من Camera-Core
22 كانون الثاني (يناير) 2020
تم إصدار androidx.camera:camera-core:1.0.0-alpha09
. يحتوي الإصدار 1.0.0-alpha09 على عمليات الربط هذه.
تغييرات واجهة برمجة التطبيقات
- تمت تسمية المَعلمة
SurfaceOrientedMeteringPointFactory
useCaseForSurface
مجددًا باسم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. إذا لم يكن الخيار المطلوب متوافقًا، لن تبدأ الجلسة وقد يحدث خطأ مثل هذا:
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
معاينة نسبة عرض إلى ارتفاع غير صحيحة. يحدث ذلك بعد الإيقاف المؤقت أو الاستئناف على بعض الأجهزة المزوّدة بشاشة كاملة، مثل Pixel2.
إصلاح الأخطاء
- تم تعديل المستندات المتعلّقة بـ
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.
إصدار Camera-Core 1.0.0-alpha07
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)
اطّلِع على المستندات الخاصة بإرفاق مساحة عرض مُدارة من التطبيق. وفي هذه الحالات، يدير التطبيق دورة حياة المساحة.
ملاحظة مهمة: يجب أن يؤدي تنفيذ طريقة
ImageAnalysis
Analyzer إلى استدعاء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
"
- "
تم تغيير فئة Enums إلى 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()
وتكون دائمًا "خطأ"، ما يختلف عن السلوك المقصود والموثَّق. - مشكلة معروفة: يتمّ تطوير مصنع نقاط القياس لاستخدامه مع أحداث اللمس
PreviewView
. في الوقت الحالي، يمكن للتطبيقات التي تربط مساحات عرض مُدارة مخصّصة استخدام مصانع نقاط القياس الحالية، وإلا لن تتوفّر وظيفة التركيز باللمس لـPreviewView
.
الإصدار 1.0.0-alpha06 من Camera-Camera2 وCamera-Core
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.setOnPreviewOutputUpdateListener
FocusMeteringAction.Builder.setAutoFocusCallback
ImageAnalysis.setAnalyzer
ImageCapture.takePicture
CameraView.takePicture
CameraView.startRecording
VideoCapture.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()
. يقدّم هذا الحقل اتجاه استشعار الكاميرا بالنسبة إلى الاتجاه الطبيعي للجهاز، أو بالنسبة إلى الاتجاه الموضّح من خلال دوران السطح (الذي يصف الاتجاه بالنسبة إلى الاتجاه الطبيعي) لتسهيل الاستخدام.
تغييرات على واجهة برمجة التطبيقات وإصلاحات للأخطاء
- نِسب العرض إلى الارتفاع: في كل حالة استخدام، يجب أن تستدعي التطبيقات أحد الخيارَين
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.
- تمت إضافة اختبارات إضافية لمسار فصل الكاميرا.
- تحسين ثبات نظام الاختبار عند إجراء اختبارات الكاميرا المتتالية
الإصدار 1.0.0-alpha05 من Camera-Camera2 وCamera-Core
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()
تقبل إعدادات الضبط المختلفة الآن المَعلمات الخالية وقد تُرجع وظائف الحصول المقابلة قيمًا خالية.
تم إصلاح مشكلة أثناء الاختبار على المحاكيات التي لا تتوافق مع إعدادات AF/AE/AWB.
تم إصلاح خطأ التعطل عند التدوير أثناء تحليل الصورة.
تم إصلاح الخلل الذي كان يؤدي إلى ظهور معاينة باللون الأسود عند البدء (بدون بيانات الكاميرا) أو بعد التدوير أو التبديل بين الكاميرا الأمامية والخلفية.
تمت إزالة اختبار حالات استخدام تحليل الصور المتعدّدة والمتزامنة. لضمان التوافق، يجب أن تُرفِق التطبيقات حالة استخدام واحدة فقط لتحليل الصور.
تمت إضافة اختبارات robolectric الأولية للكاميرا المزيفة في مجموعة اختبارات الكاميرا (قيد التطوير).
تمّت إزالة اختبار Camera2Inititalizer لأنّ تغطية الاختبار كانت غير واضحة أو مضلِّلة.
الإصدار 1.0.0-alpha04 من Camera-Camera2 وCamera-Core
7 آب (أغسطس) 2019
تم إصدار androidx.camera:camera-camera2:1.0.0-alpha04
وandroidx.camera:camera-core:1.0.0-alpha04
. يحتوي الإصدار 1.0.0-alpha04 على هذه المراجعات.
الميزات الجديدة
تغييرات على اختيار نسبة العرض إلى الارتفاع ودرجة الدقة
هدف CameraX هو إعداد جلسة الكاميرا بنجاح. وهذا يعني أنّ CameraX تتنازل عن درجة الدقة أو نسبة العرض إلى الارتفاع استنادًا إلى إمكانات الجهاز، وذلك لبدء جلسة الالتقاط كهدفها الأول، وبالتالي قد لا يتم تنفيذ الطلبات الدقيقة. قد يرجع ذلك إلى:
- الأجهزة التي لا تتوافق مع درجة الدقة المطلوبة
- مشاكل التوافق، مثل الأجهزة القديمة التي يجب استخدام دقة شاشة معيّنة فيها لكي تعمل بشكل صحيح
- على بعض الأجهزة، لا تتوفّر بعض التنسيقات إلا بنسبة عرض إلى ارتفاع معيّنة.
- يُفضّل استخدام "أقرب عدد صحيح مضروبًا في 16" لترميز JPEG أو الفيديو. راجِع
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
.
على الرغم من أنّ CameraX تنشئ الجلسة وتُديرها، عليك دائمًا التحقّق من أحجام الصور المعروضة في مخرجات حالة الاستخدام في الرمز البرمجي وتعديلها وفقًا لذلك.
تم إجراء بعض التغييرات على إعدادات درجات الدقة ونِسب العرض إلى الارتفاع، وذلك بهدف جعل واجهة برمجة التطبيقات أكثر وضوحًا:
- يُعتبَر الآن أنّ حالة استخدام المعاينة لها نسبة عرض إلى ارتفاع تلقائية تبلغ 4:3 في حال عدم ضبط أي نسبة.
- عندما تنظر CameraX داخليًا في التغييرات على درجات الدقة ونسَب العرض إلى الارتفاع المطلوبة استنادًا إلى إمكانات الجهاز، تحاول أولاً الحفاظ على نسبة العرض إلى الارتفاع نفسها (على النحو الذي تحدّده أي من طلبات
setTargetAspectRatio
أوsetTargetResolution
). - يُعتبَر الإصدار "Nearest mod16" من درجة الدقة هو نسبة العرض إلى الارتفاع نفسها.
وضع عدم الحظر في ImageAnalysis
- أصبح سلوك
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
. - تم حلّ المشكلة المتعلّقة بإزالة ربط المعاينة بعد تفعيل الإضافات وبدء استخدامها.
- يتم الآن نشر عناصر إنشاء "عرض الكاميرا" و"إضافات الكاميرا" كإصدارات تجريبية.
الإصدار 1.0.0-alpha03 من Camera-Camera2 وCamera-Core
2 تموز (يوليو) 2019
تم إصدار androidx.camera:camera-core:1.0.0-alpha03
وandroidx.camera:camera-camera2:1.0.0-alpha03
. يحتوي الإصدار 1.0.0-alpha03 على هذه المراجعات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة توضيح javadoc لـ "target" في طلبات ضبط الإعدادات setTarget
Camera-Core
- تم إصلاح تعطُّل "سطح الإدخال/الإخراج" غير المُعَدّ عند الفتح/الإغلاق السريع أو الربط/إلغاء الربط.
- الانتقال إلى عمليات التنفيذ الجديدة لعقود Futures
- اختبار الإصلاحات لإجراء اختبارات أكثر دقة
- يعرض الآن اختبار الدمج الأساسي وقت التقاط الصور.
- تم تطوير فئة التوافق الداخلية للمنفّذين
- اختبار التوقيت لالتقاط الصور في التطبيق ينتظر اكتمال الصورة السابقة وتحسين الثبات
الإضافات
- تمّت إضافة عمليات التحقّق من الإصدارات
- تغطية اختبار إضافية - طلبات معاودة الاتصال بأحداث الإضافات
- تحسينات على الصور والبيانات الوصفية المتطابقة داخليًا
- إصلاحات على ميزة التبديل بين الأوضاع في التطبيق التجريبي
الإصدار 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 على هذه المراجعات.
Camera-Lifecycle Version 1.0.0-beta11
14 تشرين الأول (أكتوبر) 2020
تم إصدار androidx.camera:camera-lifecycle:1.0.0-beta11
. يحتوي الإصدار 1.0.0-beta11 على هذه المراجعات.
إصلاح الأخطاء
- سيعرض
<UseCase>.getTargetRotation()
القيمةSurface.ROTATION_0
إذا تمّت دعوته قبل إرفاقه بمثيل Camera ما لم يتمّ ضبط قيمة targetRotation على Builder أو UseCase. (I80fcd)
Camera-Lifecycle Version 1.0.0-beta10
23 أيلول (سبتمبر) 2020
تم إصدار androidx.camera:camera-lifecycle:1.0.0-beta10
. يحتوي الإصدار 1.0.0-beta10 على هذه المراجعات.
إصلاح الأخطاء
- إصدار متوافق مع Camera-Core 1.0.0-beta10
Camera-Lifecycle Version 1.0.0-beta09
16 أيلول (سبتمبر) 2020
تم إصدار androidx.camera:camera-lifecycle:1.0.0-beta09
. يحتوي الإصدار 1.0.0-beta09 على هذه المراجعات.
Camera-Lifecycle Version 1.0.0-beta08
19 آب (أغسطس) 2020
تم إصدار androidx.camera:camera-lifecycle:1.0.0-beta08
. يحتوي الإصدار 1.0.0-beta08 على هذه المراجعات.
إصلاح الأخطاء
- من المفترض ألا يؤدي الإعداد إلى حدوث عطل عند استخدام سياق
لا يعرض عنصر Application من
Context.getApplicationContext()
. (I3d3c9، b/160817073)
Camera-Lifecycle Version 1.0.0-beta07
22 تموز (يوليو) 2020
تم إصدار androidx.camera:camera-lifecycle:1.0.0-beta07
. يحتوي الإصدار 1.0.0-beta07 على هذه المراجعات.
Camera-Lifecycle Version 1.0.0-beta06
24 حزيران (يونيو) 2020
تم إصدار androidx.camera:camera-lifecycle:1.0.0-beta06
. يحتوي الإصدار 1.0.0-beta06 على هذه المراجعات.
تغييرات واجهة برمجة التطبيقات
- يمكن الآن ضبط CameraX باستخدام Method#configureInstance(ProcessCameraProvider) قبل استدعاء Method#getInstance(ProcessCameraProvider). يتيح ذلك تخصيص CameraXConfig بدون الحاجة إلى تنفيذ CameraXConfig.Provider في فئة Application للتطبيق. (Ia1a8d)
Camera-Lifecycle Version 1.0.0-beta05
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 على هذه المراجعات.
إصلاح الأخطاء
- تم إصلاح مشكلة الانحدار من الإصدار beta03 حيث كان يؤدي استدعاء
bindToLifecycle()
بدون أيUseCase
إلى حدوث استثناء. وقد أدّى ذلك إلى منع استردادCamera
بدون ربطUseCase
. - إصلاحات لتوفير التوافق مع إصدار
camera-core
Camera-Lifecycle Version 1.0.0-beta01
26 شباط (فبراير) 2020
تم إصدار androidx.camera:camera-lifecycle:1.0.0-beta01
. يحتوي الإصدار 1.0.0-beta01 على هذه المراجعات.
إصلاح الأخطاء
- تم إصلاح المستندات للإشارة إلى أنّه عند الحصول على
ProcessCameraProvider
أثناء الإعداد، يتم استخدام الإعدادات التلقائية وأنّ تمديدApplication
اختياري. (I5e395)
Camera-Lifecycle Version 1.0.0-beta02
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)
Camera-Lifecycle Version 1.0.0-alpha03
22 كانون الثاني (يناير) 2020
تم إصدار androidx.camera:camera-lifecycle:1.0.0-alpha03
. يحتوي الإصدار 1.0.0-alpha03 على هذه المراجعات.
آخر الأخبار
- إصلاحات وتحديثات مختلفة لتتوافق مع تغييرات Camera Core وCamera2
Camera-Lifecycle Version 1.0.0-alpha02
18 كانون الأول (ديسمبر) 2019
تم إصدار androidx.camera:camera-lifecycle:1.0.0-alpha02
. يحتوي الإصدار 1.0.0-alpha02 على هذه المراجعات.
تغييرات التبعيات
- تم تعديله لاستخدام
androidx.camera:camera-core:1.0.0-alpha08
.
Camera-Lifecycle الإصدار 1.0.0-alpha01
4 كانون الأول (ديسمبر) 2019
تم إصدار androidx.camera:camera-lifecycle:1.0.0-alpha01
. يحتوي الإصدار 1.0.0-alpha01 من camera-lifecycle على عمليات الربط التالية
ملاحظات حول واجهة برمجة التطبيقات
- تتم إضافة عنصر دورة حياة الكاميرا الذي يقدّم واجهة
LifeCycleCameraProvider
وطريقة تنفيذ تُسمىProcessCameraProvider
توفّر العديد من وظائف فئة CameraX السابقة في الأساس ويتم الحصول عليها من خلال طريقةgetInstance()
. - يجب أن تتضمّن التطبيقات مكتبة دورة حياة الكاميرا لاستخدام CameraX.
- اطّلِع على الملاحظات في قسم camera-core لمعرفة كيفية إجراء عملية إعداد CameraX باستخدام
ProcessCameraProvider
.
الإصدار 1.0.0 من Camera-Extensions وCamera-View
الإصدار 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) - عدِّل ملفات واجهة برمجة التطبيقات لعنصر "إضافات الكاميرا". (If683a، b/161377155)
إصلاح الأخطاء
- لا تسمح للتطبيق بتفعيل أوضاع الإضافات عند ربط
VideoCapture
. لا تتيح إضافات CameraX سوىImageCapture
وPreview
. لا يمكن استخدامVideoCapture
بعد. إذا ربط التطبيقVideoCapture
وفعّل أي وضع إضافة، سيتم طرحIllegalArgumentException
. (I0d87b) - لم تعُد دالة
CameraSelector#filter
تُعرِض خطأIllegalArgumentException
عندما تكون مجموعة النتائج فارغة. (I27804) - تمت إعادة تسمية واجهة برمجة التطبيقات
ExtensionsManager#getInstance
باسمgetInstanceAsync
لأنّها تعرضListenableFuture
. يمكن أن تشير اللاحقة Async في اسم الدالة بوضوح إلى أنّها دالة غير متزامنة. (I279d2) - أزِل مَعلمة الدقة من واجهة برمجة التطبيقات
ExtensionsManager#getEstimatedCaptureLatencyRange
API لأنّ المستخدمين لا يمكنهم معرفة الأحجام المتوافقة مع حالة استخدام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 بسهولة في التطبيقات التي تتضمّن minSdkVersion أقل من 21، ولكن تريد استخدام مسارات الرموز البرمجية مشروطًا التي تعتمد على الإصدار 21 من واجهة برمجة التطبيقات والإصدارات الأحدث. بالنسبة إلى أي تطبيق يحتوي على minSdkVersion 21 أو إصدار أحدث، لا يتطلّب هذا التغيير اتخاذ أي إجراء. (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 على هذه المراجعات.
تغييرات واجهة برمجة التطبيقات
- تمّت ترقية واجهة Viewport API من الإصدار التجريبي. أزِل التعليق التوضيحي التجريبي لواجهة برمجة التطبيقات. (I717ea)
- تمت إعادة تسمية
CoordinateTransform#getTransform
إلىCoordinateTransform#transform
وتعديل JavaDoc (I864ae)
إصلاح الأخطاء
- تم حلّ مشكلة تمديد وضع
PreviewView PERFORMANCE
عند استخدامه مع واجهة مستخدم "الإنشاء". (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) - إضافة المزيد من الميزات الأساسية للكاميرا إلى CameraController: أدوات الحصول على/ضبط نسبة العرض إلى الارتفاع المستهدَفة ودرجة الدقة المستهدَفة ووضع الالتقاط وCameraControl وأدوات التنفيذ المخصّصة (Iea8f2)
- أضِف فئة RotationReceiver تتلقّى تغييرات دوران Surface. يمكن استخدام هذا الإعداد لضبط دوران الهدف عندما يكون الجهاز في الوضع الثابت "عمودي" أو "أفقي". (Ib278f)
- تمّ عرض واجهات برمجة التطبيقات العامة الجديدة getEstimatedCaptureLatencyRange في فئة ExtensionsManager. (I6a8ec)
- تم إيقاف واجهة برمجة التطبيقات 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 API خارج مرحلة الطور التجريبي وأصبحت واجهات برمجة تطبيقات رسمية. ويمكن استخدامها بدون ميزة "الموافقة المُشارَك عليها". (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)
إصدار Camera Extensions & View 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 على هذه المراجعات.
تغييرات واجهة برمجة التطبيقات
- أضِف طريقة للحصول على CameraInfo إلى CameraController. (Ib8138، b/178251727)
إصلاح الأخطاء
- تم إصلاح ExtensionsErrorListener للإبلاغ عن الأخطاء عند ربط Preview أو ImageCapture فقط. (I5ae39)
الإصدار 1.0.0-alpha21 من Camera Extensions & View
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 من Camera Extensions & View
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 من ميزة "عرض الكاميرا"
14 تشرين الأول (أكتوبر) 2020
تم إصدار androidx.camera:camera-view:1.0.0-alpha18
. يحتوي الإصدار 1.0.0-alpha18 على هذه المراجعات.
الإصدار لدعم عناصر أخرى في مكتبة الكاميرا
الإصدار 1.0.0-alpha17 من Camera-Extensions
23 أيلول (سبتمبر) 2020
تم إصدار androidx.camera:camera-extensions:1.0.0-alpha17
. يحتوي الإصدار 1.0.0-alpha17 على هذه المراجعات.
إصلاح الأخطاء
- إصدار متوافق مع Camera-Core 1.0.0-beta10
الإصدار 1.0.0-alpha17 من ميزة "عرض الكاميرا"
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
الذي يُستخدَم لتفعيل الإضافات وإجراء طلبات بحث عنها في نُسخ Camera (I4fb7e)
الإصدار 1.0.0-alpha16 من ميزة "عرض الكاميرا"
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)
إصلاح الأخطاء
- فرض استخدام PreviewView لـ TextureView إذا كان تأثير الإضافة مفعّلاً وكان تنفيذ مكتبة المورّد بحاجة إلى إجراء عملية خاصة على مساحة العرض (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()
الآن ملف ملف شخصي بصفته مَعلمة بدلاً من عدم توفُّر أيّ وسيطات. (Ife754) من المفترض ألا يؤدي الإعداد إلى حدوث عطل عند استخدام سياق لا يعرض عنصر Application من
Context.getApplicationContext()
. (I3d3c9، b/160817073)الإصدار 1.0.0-alpha15 من ميزة "عرض الكاميرا"
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
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 على هذه المراجعات.
إصلاح الأخطاء
- تمت إضافة واجهات تجريبية لفلترة الكاميرات حسب كاميرا ID وCameraCharacteristics. (I28f61)
الإصدار 1.0.0-alpha13 من ميزة "عرض الكاميرا"
24 حزيران (يونيو) 2020
تم إصدار androidx.camera:camera-view:1.0.0-alpha13
. يحتوي الإصدار 1.0.0-alpha13 على هذه المراجعات.
إصلاح الأخطاء
- لم يعُد CameraView يتعطّل بسبب IllegalArgumentException عند الربط بـ LifecycleOwner الذي ينتقل إلى حالة DESTROYED بعد وقت قصير من الربط. لن تحاول ربط Lifecycles في حالة DESTROYED فتح الكاميرا. (I7c2b8)
- يتوفّر الآن StreamState في PreviewView من خلال 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 من ميزة "عرض الكاميرا"
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 من ميزة "عرض الكاميرا"
10 حزيران (يونيو) 2020
تم إصدار androidx.camera:camera-view:1.0.0-alpha12
. يحتوي الإصدار 1.0.0-alpha12 على هذه المراجعات.
الميزات الجديدة
تغييرات واجهة برمجة التطبيقات
إصلاح الأخطاء
- أضِف
PreviewView#getBitmap()
API الذي يعرض تمثيلًا بتنسيق Bitmap للمحتوى المعروض على مساحة المعاينة. (I9b500، b/157659818)
Camera-View Version 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
التي تعمل بنظام التشغيل Android 7.0 والإصدارات الأقدم. وضع الاستخدام القسري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
كمثال على عنوان URL الأساسي. (Ia2459، b/153607583) - يمكنك ضبط نوع مقياس PreviewView من تنسيق XML من خلال ضبط السمة
ScaleType
. (I08565، b/153015659) - تمّت إزالة
CameraView.ScaleType
. بدلاً من ذلك، استخدِمPreviewView.ScaleType
لضبط/الحصول على نوع مقياس باستخدام CameraView. (Ia8974، b/153014831) - امنح
PreviewView
لون خلفية تلقائيًا إذا لم يكن لديه لون. ويمنع ذلك ظهور المحتوى الذي يظهر خلفه قبل بدء بث المعاينة. (I09fad)
Camera-Extensions Version 1.0.0-alpha10
نيسان (أبريل) 2020
تم إصدار androidx.camera:camera-extensions:1.0.0-alpha10
. يحتوي الإصدار 1.0.0-alpha10 على هذه المراجعات.
إصلاح الأخطاء
- إصلاحات لتتوافق مع إصدار Camera-Core
Camera-View Version 1.0.0-alpha10
نيسان (أبريل) 2020
تم إصدار androidx.camera:camera-view:1.0.0-alpha010
. يحتوي الإصدار 1.0.0-alpha010 على هذه المراجعات.
إصلاح الأخطاء
- إصلاح مشكلة معروفة سابقة كانت تؤدي إلى عدم عمل تنفيذ surfaceView في
PreviewView
بشكل جيد على أجهزة معيّنة، ما كان يؤدي إلى تعطُّل التطبيق بعد استئناف المعاينة (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
إصدار Camera-View 1.0.0-alpha09
1 نيسان (أبريل) 2020
androidx.camera:camera-view:1.0.0-alpha09
يحتوي الإصدار 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)
، الذي يأخذ مثيلًا nullable من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()
API إلى 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
26 شباط (فبراير) 2020
تم إصدار androidx.camera:camera-view:1.0.0-alpha08
. يحتوي الإصدار 1.0.0-alpha08 على هذه المراجعات.
إصلاح الأخطاء
- تم استبدال
ListenableFuture
فيSurfaceRequest.provideSurface()
بـExecutor
وCallback
. يؤدي ذلك إلى تبسيط واجهة برمجة التطبيقات من خلال عدم الحاجة إلى معالجة الاستثناءات فيprovideSurface()
، ويفرض عدم إلغاءprovideSurface()
callback. ويهدف ذلك إلى منع الأعطال على الأجهزة القديمة الناتجة عن إلغاء عرض مساحات العرض قبل الأوان. يتم الآن استخدام عنصر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 Version 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
22 كانون الثاني (يناير) 2020
تم إصدار androidx.camera:camera-view:1.0.0-alpha06
. يحتوي الإصدار 1.0.0-alpha06 على هذه المراجعات.
آخر الأخبار
- إصلاحات وتحديثات مختلفة لتتوافق مع تغييرات Camera Core وCamera2
إصدار Camera-Extensions 1.0.0-alpha05
18 كانون الأول (ديسمبر) 2019
تم إصدار androidx.camera:camera-extensions:1.0.0-alpha05
. يحتوي الإصدار 1.0.0-alpha05 على عمليات الربط هذه.
إصلاح الأخطاء
- تم تعديلها لتتطابق مع واجهات برمجة التطبيقات Camera Core API الداخلية.
الإصدار 1.0.0-alpha05 من ميزة "عرض الكاميرا"
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
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" … />
يوفّر
PreviewView
PreviewSurfaceProvider
لربط حالة استخدام "المعاينة" بسهولة.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
Camera-Extensions وCamera-View الإصدار 1.0.0-alpha02
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
.
في ما يلي عمليات الربط المضمّنة في camera-extensions:1.0.0-alpha01، وهذه هي عمليات الربط المضمّنة في camera-view:1.0.0-alpha01.
- مكتبة جديدة لإضافات الكاميرا المستقبلية للوصول إلى التأثيرات على الأجهزة المتوافقة لا تزال هذه المكتبة قيد التطوير.
- فئة جديدة لعرض الكاميرا لا تزال هذه المكتبة قيد التطوير.