CameraX

إنّ CameraX هو إضافة إلى Jetpack. تسهِّل إضافة إمكانات الكاميرا إلى تطبيقك. وتوفِّر المكتبة عددًا من إصلاحات التوافق والحلول البديلة للمساعدة في جعل تجربة المطوّرين متسقة على العديد من الأجهزة.

يسرد هذا الجدول جميع العناصر في مجموعة androidx.camera.

العناصر الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار التجريبي الأول
camera-camera2 1.4.0 - - 1.5.0-alpha03
نواة الكاميرا 1.4.0 - - 1.5.0-alpha03
camera-compose - - - 1.5.0-alpha03
تأثيرات الكاميرا 1.4.0 - - 1.5.0-alpha03
camera-extensions 1.4.0 - - 1.5.0-alpha03
camera-feature-combination-query - - - 1.5.0-alpha03
كاميرا-feature-combination-query-play-services - - - 1.5.0-alpha03
camera-lifecycle 1.4.0 - - 1.5.0-alpha03
كاميرا-mlkit-vision 1.4.0 - - 1.5.0-alpha03
عرض الكاميرا 1.4.0 - - 1.5.0-alpha03
عدسة الكاميرا - - 1.3.0-beta02 1.4.0-alpha07
camera-video 1.4.0 - - 1.5.0-alpha03
تاريخ آخر تعديل لهذه المكتبة: 30 تشرين الأول (أكتوبر) 2024

اختبار الأجهزة

تم اختبار 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-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 API الجديدة لالتقاط الصور في الوقت نفسه، ويجب أن تقدّم 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 عمليات الربط هذه.

الميزات الجديدة

  • واجهات برمجة تطبيقات جديدة لطلب ميزات الكاميرا المتوافقة مع الجهاز على سبيل المثال، نحن نتحقّق مما إذا كان من الممكن تفعيل ميزتَي "نطاق عالي الديناميكية" و"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.0

30 تشرين الأول (أكتوبر) 2024

تم إصدار androidx.camera:camera-*:1.4.0. يحتوي الإصدار 1.4.0 على عمليات الربط هذه.

التغييرات المهمة منذ الإصدار 1.3.0

يتضمّن الإصدار 1.4.0 من CameraX ميزات جديدة ومشوّقة. إليك موجز بأهم التفاصيل:

ميزة العنوان: فيديو 10 بت بنطاق عالي الديناميكية:

  • التقاط صور وفيديوهات رائعة بنطاق عالي الديناميكية بسهولة
  • يتوافق مع ترميز HLG و10 بت HEVC.
  • استفِد من معاينة 10 بت بنطاق عالي الديناميكية والاستعلام عن إمكانيات الجهاز.
  • تتوافق مع صور 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 1920x1080 ضمن المجموعة 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 المتعلقة بإعداد حل الهدف التلقائي للمحلل: تم الاحتفاظ بدرجة الدقة المستهدفة بشكل غير صحيح على أنها 640×480 حتى إذا ضبطت التطبيقات إعداد دقة تلقائي مختلف للمحلل. إذا واجهت التطبيقات هذه المشكلة (الإصدار 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، لأنّ العديد من عمليات تنفيذ إضافات المصنّعين الأصليين للأجهزة لا تعمل مع 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 SoC. (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)
  • تمت إضافة ميزة "فلاش الشاشة" في الكاميرا X لالتقاط الصور باستخدام الكاميرا الأمامية. سيتولى تطبيق CameraX معالجة واجهة برمجة التطبيقات من جانب إطار العمل ومزامنة الوقت مع التغييرات في واجهة المستخدم في التطبيق حسب الحاجة (مثل مشغِّل الالتقاط المسبق لـ AE بعد تغيير لون/درجة سطوع شاشة التطبيق). ولن تحتاج التطبيقات سوى إلى إضافة عمليات التنفيذ من جهة واجهة المستخدم في واجهة 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)
  • تم إصلاح مشكلة الأداء التي كانت تؤدي إلى زيادة استهلاك الطاقة وتحميل وحدة المعالجة المركزية (CPU) عند تفعيل الإضافات. (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. يؤدي ذلك إلى زيادة حجم الملفات التي تم التقاطها. ستتم إزالة بيانات المساحة المتروكة 0 المتكررة لجعل الصور التي تم التقاطها ذات أحجام ملفات صور عادية. (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 المتعلقة بإعداد حل الهدف التلقائي للمحلل: تم الاحتفاظ بدرجة الدقة المستهدفة بشكل غير صحيح على أنها 640×480 حتى إذا ضبطت التطبيقات إعداد دقة تلقائي مختلف للمحلل. إذا واجهت التطبيقات هذه المشكلة (من 1.3.0 إلى 1.3.2 تقريبًا) وتعذّرت الترقية لاستخدام الإصدارات الأحدث التي تحتوي على الحلّ، يمكنك ضبط ResolutionSelector مباشرةً بدرجة الدقة المفضّلة وضبط AspectRatioStrategy مطابق لـ UseCase على ImageAnalysis يمكن أن يحل هذه المشكلة. (I81f72، b/330091012)

الإصدار 1.3.2

‫6 مارس 2024

تم إصدار androidx.camera:camera-*:1.3.2. يتضمّن الإصدار 1.3.2 عمليات الربط هذه.

إصلاح الأخطاء

  • تم إصلاح مشكلة في البيانات الوصفية لملف JPEG على أجهزة Samsung A24. يحفظ تطبيق CameraX الآن الصور بدقة، كما تعرض الدالة ImageProxy.toBitmap() كائنات الصور النقطية الصحيحة. (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

الإصدار 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. يؤدي ذلك إلى زيادة حجم الملفات التي تم التقاطها. ستتم إزالة بيانات الحشو هذه التي تتضمّن أصفارًا زائدة لجعل أحجام ملفات الصور التي تم التقاطها عادية. (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() الجديدة.

تغييرات واجهة برمجة التطبيقات

  • تمت إعادة تسمية ثوابت 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)
  • ادمج أسماء كل طرق عدد اللقطات في الثانية في استخدام القيمة "معدّل عرض الإطارات". تصحيح خطأ javadoc في VideoCapture#getTargetFrameRate() (I83304)
  • تم إيقاف واجهتَي برمجة التطبيقات setTargetAspectRatio وsetTargetResolution القديمتَين نهائيًا. يُرجى استخدام واجهة برمجة التطبيقات ResolutionSelector الجديدة بدلاً من ذلك. (I542c3)
  • تمت إضافة واجهات برمجة تطبيقات عامة متاحة لاستخدام الكاميرا المزدوجة المتزامنة، بما في ذلك
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. 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 تمديد قابل للإغلاق وإخفاء إنشائي SurfaceOutput.Event العام. (I60ea8)
  • تمت إضافة رمز Recording.mute لكتم صوت تسجيل قيد المعالجة أو إعادته ديناميكيًا. سيحتوي RecordingStats على AudioStats.AUDIO_STATE_MUTED عندما يتم كتم صوت التسجيل أثناء المعالجة بشكل صريح. (Ie17fc)
  • تمّ جعل المَعلمة #setEffects() غير فارغة. أضِف #clearEffects() API لمحو التأثيرات. من المفترض أن يستدعي التطبيق #clearEffects() لإزالة التأثيرات. (I4b4d9)
  • أضِف أسلوب إنشاء ثانيًا لـ ViewfinderSurfaceRequest.Builder لأخذ مُنشئ لأسلوب الإنشاء بالنسخ (I621a7).

إصلاح الأخطاء

  • تم إصلاح المشكلة التي كانت تؤدي إلى تعطُّل التطبيقات التي تستدعي واجهة برمجة التطبيقات Extensions API عند إغلاق الكاميرا (Ib27e5).
  • تم إصلاح مشكلة تعذُّر استخدام VideoCapture مع الكاميرا الأمامية على بعض الأجهزة. على سبيل المثال، على هاتفَي Samsung Galaxy S23 وXiaomi 2107113SG. (Ibec7e، b/270656244)
  • تم إصلاح المشكلة التي كانت تؤدي إلى تعذُّر التقاط الصور باستخدام "ملفاتي" في المجلد العام للمساحة التخزينية الخارجية في Android 10 أو الإصدارات الأحدث. يُرجى ملاحظة أنّه في نظام Android 10، يتطلب التقاط صور باستخدام "ملف" في المجلد العام لوحدة التخزين الخارجية ضبط requestLegacyExternalStorage على "صحيح" في علامة التطبيق أيضًا. (I11b2c)
  • تم إصلاح عطل في RejectedExecutionException في DefaultSurfaceProcessor. قد يحدث العُطل عند ربط "VideoCapture" وإيقاف النشاط مؤقتًا. (Idb46a، b/273713906)

الإصدار 1.3.0-alpha05

22 آذار (مارس) 2023

تم إصدار androidx.camera:camera-*:1.3.0-alpha05. يحتوي الإصدار 1.3.0-alpha05 على هذه المراجعات.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة واجهات برمجة تطبيقات VideoCapture لتدوير البيانات، بما في ذلك 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 على هذه المراجعات.

الميزات الجديدة

ميزة جديدة لإتاحة مجموعات مواد العرض التي لم تكن متاحة في السابق من خلال مشاركة بث واحد مع حالات UseCases متعددة

  • في السابق، عند ربط "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 على بعض أجهزة 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 وتبديل المستخدم للكاميرات.
  • تم إصلاح مشكلة Samsung J7 Prime (SM-G610M) وJ7 (SM-J710MN) Preview/VideoCapture على الأجهزة من المستوى 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} أو لم يتم إيقاف وضع الفلاش أو إذا كان وضع OEM مفعّلاً، سيتم إيقاف هذا الوضع تلقائيًا. (I9ae74)
  • إضافة طريقة ImageAnalysis.getBackgroundExecutor() (Icc945)

إصلاح الأخطاء

  • تم إصلاح طريقة التقاط ImageCapture لإيقاف الكشاف على الأجهزة التي تم الإبلاغ عنها. (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 الجديدة

إصلاح الأخطاء

  • يتعذّر على QualitySelector الثابت تسجيل فيديو بدقة فائقة عند تفعيل استراتيجية احتياطية. تحدث المشكلة عند ربط "VideoCapture" مع "ImageCapture" و"المعاينة" على جهاز كاميرا على مستوى جهاز كامل أو به جهاز أعلى. تؤدي استراتيجية النسخ الاحتياطي 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 إلى نموذج أحمر أخضر أزرق (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 التجريبية الخاصة بنواة الكاميرا ودورة حياة الكاميرا وفيديو الكاميرا. تمت إضافة ViewPort#getLayoutDirection وViewPort.Builder#setLayoutDirection وViewPort.Builder#setScaleType لتخصيص إطار العرض.
  • تمت ترقية ExperimentalUseCaseGroupLifecycle إلى واجهات برمجة تطبيقات علنية رسمية.
  • التغييرات التي طرأت على واجهات برمجة التطبيقات الحالية
  • Renamed MediaStoreOutputOptions.getCollection إلى MediaStoreOutputOptions.getCollectionUri.
  • تمت إعادة تسمية ActiveRecording إلى "تسجيل" لتقليل عدد الكلمات.
  • تم تغيير واجهة برمجة تطبيقات Creator API في QualitySelector إلى واجهة برمجة تطبيقات مستندة إلى قوائم.

إصلاح الأخطاء

  • تم إصلاح مشكلة YuvToJpegProcessor EOFException عند تفعيل وضع الإضافة وضبط وضع ImageCapture#CAPTURE_MODE_MAX_QUALITY.
  • تعذّر ضبط برنامج الترميز الثابت بسبب إغلاق تسجيل الفيديو
  • تم إصلاح نسبة العرض إلى الارتفاع/المعاينة الممتدة للفيديو عند التسجيل بدقة فائقة.
  • تم إصلاح مشكلة عدم تزامن الصوت والفيديو بعد الإيقاف المؤقت والاستئناف على بعض الأجهزة.
  • تم حلّ المشكلة التي كانت تؤدي إلى تفعيل الفلاش أثناء النقر للتركيز (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>، ما يؤدي إلى تعذُّر استخدام VideoCapture<Recorder> لاحقًا عند التسجيل باستخدام MediaCodec.CodecException، خاصةً على الأجهزة التي تعمل بالإصدارات 21 أو 22 من واجهة برمجة التطبيقات. (Ie7f68)
  • حلّ مشكلة عدم حذف الصور التي تم التقاطها في CameraExtensionsActivity في ImageCaptureTest

الإصدار 1.1.0-beta03

6 نيسان (أبريل) 2022

تم طرح androidx.camera:camera-*:1.1.0-beta03. يحتوي الإصدار 1.1.0-beta03 على هذه المراجعات.

تغييرات واجهة برمجة التطبيقات

  • تم حظر أداة إنشاء CaptureRequestOptions. (I261b6)
  • تمت إضافة واجهة برمجة تطبيقات تجريبية لاستخدام CameraController مع مكتبات معالجة الصور الخارجية، مثل MLKit (I4ea71).

إصلاح الأخطاء

  • تم إصلاح مشكلة ظهور المعاينة بشكل جانبي في PreviewView عند عدم إعادة تشغيل النشاط بعد تدوير الأجهزة في وضع "النوافذ المتعددة". (I1ea36، b/223488673)
  • يمكنك حلّ مشكلة النوافذ المتعددة التي تؤدي إلى تعذُّر استئناف الكاميرا عند (1) فتح تطبيق آخر ذي أولوية عالية كاميرا مختلفة (2) إذا كان الجهاز يعمل بنظام التشغيل Samsung Android 12. (I7e9f2)
  • تم تضمين حلّ بديل للأجهزة التي تتعطل عند التحقّق من توفّر ضوء الفلاش. لن تتوفّر ميزة "مصباح يدوي" على هذه الأجهزة. (If26a3، b/216667482)
  • إصلاح مشكلة AbstractMethodError التي تحدث عندما تستخدم التطبيقات الإضافات وتفعِّل أداة Proguard (I7cbaf، b/222726805)
  • يمكنك فرض إيقاف وضع تمويه الخلفية على جهاز Motorola razr 5G، ما سيؤدي إلى ظهور شاشة معاينة سوداء. (I35d49)
  • تم إصلاح عدم مزامنة الصوت/الفيديو بعد الإيقاف المؤقت واستئناف التشغيل على بعض أجهزة Samsung التي تسبق واجهة برمجة التطبيقات 29. (I64622، b/202798609، b/202798572)
  • تم إصلاح مشكلة عدم مزامنة الصوت أو الفيديو بعد إيقافهما مؤقتًا واستئناف تشغيلهما على هاتف Sony G3125. (I2a1a5، b/202799148)
  • تم إصلاح مشكلة تعطُّل تطبيق "المسجِّل" عند حدوث InvalidConfigException. ومع ذلك، لا يمنع هذا الإصلاح سوى تعطُّل التطبيق، ولكنه لا يحلّ سبب InvalidConfigException. إذا تعذّر إعداد "Recorder"، ستتلقّى التطبيقات رسالة خطأ عند بدء التسجيل. (I89c29، b/213617227)

المساهمة الخارجية

  • تم تعديل واجهة برمجة التطبيقات :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 لمحو خيارات طلب الالتقاط الحالية. (Ifa07d)

إصلاح الأخطاء

  • تم إصلاح الأعطال التي كانت تحدث عند تسجيل الفيديو على بعض الأجهزة التي تعمل بالإصدارات الأقدم من نظام التشغيل Android O(API 26). (I88fdf، b/212328261)
  • تم إصلاح مشكلة منطقة ضبط التركيز التلقائي غير الصحيحة عند استخدام cameraControl#startFocusAndMetering() على الكاميرا الأمامية في أجهزة Samsung (Ifbf59، b/210548792)
  • يمكنك استخدام ضوء الفلاش كفلاش على هاتفَي Pixel 3a/Pixel 3a XL لتحسين السرعة وجودة الصور التي تم التقاطها في الظلام (Ib12b6، b/211474332).
  • سمحت التطبيقات باستئناف استخدام الكاميرا عندما يتم إيقافها بواسطة تطبيق آخر ذي أولوية أعلى في وضع "النوافذ المتعددة"، ويعود التركيز إلى التطبيق. يُرجى العِلم أنّه قد يكون هناك بعض وقت الاستجابة(من ثانية واحدة إلى 10 ثوانٍ أو أكثر) بين تغييرات التركيز وإعادة فتح الكاميرا بسبب بعض المشاكل في إطار العمل. (I4d092)

الإصدار 1.1.0-alpha12

15 كانون الأول (ديسمبر) 2021

تم طرح androidx.camera:camera-*:1.1.0-alpha12. يحتوي الإصدار 1.1.0-alpha12 على هذه المراجعات.

تغييرات واجهة برمجة التطبيقات

  • تمّت إزالة التعليقات التوضيحية @RequiresApi(21) غير الضرورية من الفئات/الواجهات الداخلية. (I8e286، b/204917951)
  • تم تغيير ثوابت الجودة وثوابت استراتيجية الردّ الاحتياطي في QualitySelector لتتم تمثيلها بعناصر فئة. على سبيل المثال، يتم تغيير QualitySelector.QUALITY_HD إلى Quality.HD، ويتم تغيير QualitySelector.FALLBACK_STRATEGY_LOWER إلى العنصر الذي يعرضه FallbackStrategy.lowerQualityOrHigherThan(Quality). تم تغيير واجهة برمجة التطبيقات المستخدَمة لإنشاء QualitySelector إلى واجهة برمجة تطبيقات مستندة إلى قائمة. ستشير واجهة برمجة التطبيقات الجديدة QualitySelector.fromOrderedList(List<Quality>) إلى ترتيب قائمة جودة الإدخال بدلاً من الترتيب الذي أنشأه QualitySelector.Procedure. تمّت إزالة الصف QualitySelector.Procedure. (I43343)
  • تمّت إزالة PendingRecording.withEventListener() ويجب الآن تمرير أداة معالجة الحدث إلى PendingRecording.start(). يهدف شرط أداة معالجة الأحداث هذا إلى تشجيع معالجة الأخطاء غير المتزامنة التي يتم الإبلاغ عنها في الحدث VideoRecordEvent.Finalize. (I1e71d)
  • تمت إعادة تسمية ActiveRecording إلى Recording لتقليل عدد الكلمات. (I77ceb)

إصلاح الأخطاء

  • تم حلّ مشكلة تعريض الصور التي تم التقاطها في وضع FLASH_AUTO للضوء بشكل غير كافٍ في ظروف الإضاءة المنخفضة على هاتفَي Pixel 3a وPixel 3a XL (I13f19، b/205373142)
  • استخدِم دائمًا أحدث حجم شاشة لتحديد المعاينة Resolution. (I4a694)
  • تم استبعاد الكاميرات التي لا تتضمّن REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE. توفّر الكاميرات التي تتضمّن REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE الحد الأدنى من الإمكانات التي توفّرها كل كاميرا. قد تكون الكاميرا التي لا تتضمّن REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE كاميرا تتيح وظائف خاصة ولا تتيح إخراج الألوان العادية. يتعذّر على "CameraX" إتاحة حالات الاستخدام Preview أو ImageCapture أو ImageAnalysis أو VideoCapture لتلك الكاميرات. لذلك، يجب فلترة هذه الكاميرات لمنع الاستخدام غير الصحيح. (Ib8cda)
  • لم تعد CameraSelector#filter تطرح IllegalArgumentException عندما تكون مجموعة النتائج فارغة. (I27804)
  • يتم الآن استخدام أساليب أكثر ذكاءً لاختيار إعدادات برنامج الترميز استنادًا إلى الملفات الشخصية المحدّدة من قِبل المصنّع الأصلي للجهاز. (Iaeef0)
  • تحتوي "المعاينة الثابتة" على خطوط ألوان متداخلة بعد بدء تسجيل الفيديو بدقة فائقة على Pixel1. (I833c6، b/205340278)

الإصدار 1.1.0-alpha11

17 تشرين الثاني (نوفمبر) 2021

تم طرح androidx.camera:camera-*:1.1.0-alpha11. يحتوي الإصدار 1.1.0-alpha11 على هذه عمليات التنفيذ.

التغييرات في واجهة برمجة التطبيقات

  • تمت إضافة CameraSelector#filter إلى واجهة برمجة التطبيقات المتاحة للجميع لفلترة قائمة بعناصر CameraInfo استنادًا إلى CameraSelector. (I105d0)
  • أضِف واجهة برمجة التطبيقات setOutputImageRotationEnabled لإعدادات ImageAnalysis. يمكن للمستخدم تفعيل الدوران للمخزن المؤقت للصور YUV/RGB. درجة التدوير هي تدوير نسبي يتم احتسابه استنادًا إلى دوران أداة الاستشعار ودوران الاستهداف للاحتفاظ بالصورة في المقدمة.

  • أضِف واجهة برمجة التطبيقات setOutputImageRotationEnabled لإعدادات ImageAnalysis. يمكن للمستخدم تفعيل ميزة التدوير لمخازن صور YUV/RGB. درجة التدوير هي تدوير نسبي يتم احتسابه استنادًا إلى دوران أداة الاستشعار ودوران الاستهداف للاحتفاظ بالصورة في المقدمة.

    أضِف واجهة برمجة تطبيقات getSensorToBufferTransformMatrix في ImageInfo. المصفوفة المعروضة هي تعيين من إحداثيات أداة الاستشعار إلى إحداثيات المخزن المؤقت، أي من القيمة CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE إلى (0, 0, image.getWidth, image.getHeight). يمكن استخدام المصفوفة لربط الإحداثيات من {UseCase} واحد إلى آخر. على سبيل المثال، ربط إحداثيات الوجه الذي تم رصده باستخدام ImageAnalysis بالمعاينة (I9ff1e)

  • تمت إضافة واجهة برمجة تطبيقات جديدة ImageCapture.Builder#setJpegQuality للسماح بتغيير جودة ضغط الصورة الناتجة بتنسيق JPEG عند التقاط الصور. (I8dcf4)

  • تمت إعادة تسمية MediaStoreOutputOptions.getCollection إلى MediaStoreOutputOptions.getCollectionUri. (I16639)

إصلاح الأخطاء

  • تم إصلاح مشكلة بدء الفلاش أثناء استخدام ميزة النقر للتركيز (startFocusAndMetering) عندما يكون وضع الفلاش تلقائيًا أو always_on في بيئة الإضاءة المنخفضة. (Id4c11)
  • تم إيقاف تقنية HDR+ على هواتف Pixel 2 XL / Pixel 3 XL في وضع MINIMIZE_LATENCY لتقليل وقت الاستجابة. (Ib6270، b/203505523)

مساهمة خارجية

الإصدار 1.1.0-alpha10

13 تشرين الأول (أكتوبر) 2021

تم إصدار androidx.camera:camera-*:1.1.0-alpha10. يحتوي الإصدار 1.1.0-alpha10 على هذه عمليات التنفيذ.

الميزات الجديدة

  • تم إصدار androidx.camera:camera-video:1.1.0-alpha10 كأول إصدار تجريبي رسمي من "الفيديو". هناك العديد من المشاكل المعروفة التي سيتم حلّها في الإصدارات اللاحقة.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة التعليق التوضيحي @RequiresApi(21) إلى جميع فئات CameraX وتم حذف minSdkVersion من AndroidManifest.xml. سيسمح ذلك بدمج camera-core بسهولة في التطبيقات التي تتضمّن 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. يمكن للجهاز من المستوى "محدود" أو أعلى أن يتوافق مع درجة دقة بحجم "تسجيل" لتحليل الصور عند ربطه مع "المعاينة" و"التقاط الصور". يتمثل التأثير في أنّ درجة الدقة المحدّدة لالتقاط الصور يجب أن تكون أيضًا درجة دقة بحجم التسجيل. لاختيار دقة حجم السجلّ في ميزة "تحليل الصور" بنجاح، يجب ضبط دقة حجم السجلّ المستهدف على كلٍّ من ImageCapture وImageAnalysis. يشير ذلك إلى أنّ التطبيق يفهم بوضوح المفاضلة ويفضّل أن تكون دقة ImageAnalysis أكبر من دقة ImageCapture. للاطّلاع على تعريفات الحجمَين المسموح بهَين للتسجيل والحد الأقصى للحجم ومزيد من التفاصيل، يُرجى الانتقال إلى https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. يشير حجم السجلّ إلى أقصى درجة دقة للتسجيل متاحة في جهاز الكاميرا، كما هو موضّح في CamcorderProfile. يشير الحد الأقصى للحجم إلى الحد الأقصى لدقة الإخراج لجهاز الكاميرا لهذا التنسيق أو الهدف من StreamConfigurationMap.getOutputSizes(int). (I1ee97، b/192911449)
  • إضافة معلومات Exif إلى الصورة التي تم التقاطها (I01ff0، b/193342619)
  • في ImageCapture، يمكنك عرض معرّف الموارد المنتظم (URI) للصورة المحفوظة إذا كان مكان الحفظ هو "ملف". (Ib5b49، b/149241379)
  • تم إصلاح مشكلة ظهور الصور التي تم التقاطها باستخدام الفلاش مظلمة على العديد من الأجهزة. (I4e510)

الإصدار 1.1.0-alpha07

21 تموز (يوليو) 2021

تم إصدار androidx.camera:camera-camera2:1.1.0-alpha07 وandroidx.camera:camera-core:1.1.0-alpha07 وandroidx.camera:camera-lifecycle:1.1.0-alpha07. يحتوي الإصدار 1.1.0-alpha07 على هذه المراجعات.

إصلاح الأخطاء

  • تم إصلاح مشكلة Samsung Galaxy Note 5 التي تمنع الكاميرا بعد التقاط الصور مع تفعيل الفلاش/التشغيل التلقائي في البيئة الداكنة (If6871)
  • تم إصلاح مشكلة 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 API لتوفير معلومات درجة الدقة للمعاينة و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 لنواة الكاميرا ودورة حياة الكاميرا وفيديو الكاميرا. تمت إضافة 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 إلى 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 لحلّ مشكلة الأعطال عند التقاط صورة باستخدام وضع AE للفلاش التلقائي على أجهزة 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).
  • لا يتطلب إنشاء حالات UseCase إعداد كاميراX لإكمالها. يتم ضبط جميع الإعدادات الخاصة بالتنفيذ على UseCase بعد إرفاقه بمثيل Camera الذي يمثّل ProcessCameraProvider.bindToLifecycle() لواجهة برمجة التطبيقات المفتوحة. (Ia5411)
  • سيعرض <UseCase>.getTargetRotation() القيمة Surface.ROTATION_0 في حال تمّت دعوته قبل إرفاقه بمثيل Camera ما لم يتمّ ضبط قيمة targetRotation على Builder أو UseCase. (I80fcd)

الإصدار 1.0.0-beta11 من الكاميرا الأساسية

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 من حزمة الكاميرا الأساسية

23 أيلول (سبتمبر) 2020

تم إصدار androidx.camera:camera-core:1.0.0-beta10. يحتوي الإصدار 1.0.0-beta10 على هذه المراجعات.

إصلاح الأخطاء

  • إصلاح الخطأ في التحقّق من صحة وجهة حفظ الملف لالتقاط الصور (I8c565، b/167697553)

Camera-Camera2 الإصدار 1.0.0-beta10

23 أيلول (سبتمبر) 2020

تم إصدار androidx.camera:camera-camera2:1.0.0-beta10. يحتوي الإصدار 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 حتى يكون هناك تعيين مباشر لتحديد الكاميرا التي سينشئ المصنع نقاطًا لها. تأخذ جميع الفئات التي تستخدم DisplayOrientedMeteringPointContain أيضًا مثيل CameraInfo بدلاً من CameraSelector. (I400c1)
  • تم إصلاح مشكلة تجميع حجم نسبة العرض إلى الارتفاع لدرجة الدقة التلقائية، والتي يتم فيها اختيار حجم 16:9 mod16 (864 × 480) عندما يكون إعداد درجة الدقة المستهدَف هو 2016x1080 وتوفُّر حجم آخر متوافق مع 16:9 بنسبة 1920x1080. (I53167، b/159363774)
  • حلّ مشكلة CameraControl التي يتعذّر فيها العمل بسبب حالة تسابق (I2279f، b/152333890، b/160714166)

الإصدار الأساسي للكاميرا 1.0.0-beta08

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

24 حزيران (يونيو) 2020

تم إصدار androidx.camera:camera-core:1.0.0-beta06. يحتوي الإصدار 1.0.0-beta06 على هذه المراجعات.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة واجهات تجريبية لفلترة الكاميرات حسب معرّف الكاميرا وخصائص الكاميرا. (I28f61)

إصلاح الأخطاء

  • يمكن الآن ضبط CameraX باستخدام ProcessCameraProvider#configureInstance() قبل استدعاء ProcessCameraProvider#getInstance(). ويتيح ذلك تخصيص CameraXConfig بدون الحاجة إلى تنفيذ CameraXConfig.Provider في فئة التطبيق الخاصة بالتطبيق. (Ia1a8d)
  • سيفشل CameraControl#startFocusAndMetering إذا لم يتمكن أي من نقاط MeteringPoint المحددة من إنشاء مستطيلات قياس صالحة. (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)

إصلاح الأخطاء

  • تم تعديل مستندات جافا لـ setTargetResolution وsetTargetRotation. (Iae16f)

الكاميرا-الكاميرا2 الإصدار 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)

الإصدار الأساسي للكاميرا 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)

الكاميرا-الكاميرا2 الإصدار 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 على عمليات التنفيذ هذه.

إصلاح الأخطاء

  • تم إصلاح التراجع من الإصدار التجريبي 03 حيث سيؤدي استدعاء 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)

الكاميرا الأساسية الإصدار 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

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 من واجهة برمجة التطبيقات.

تغييرات واجهة برمجة التطبيقات

  • تجريبي: تمت إضافة مسار إمكانية التشغيل التفاعلي للكاميرا 2 لاستخراج رقم تعريف الكاميرا.

الإصدار 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"
  • تم تغيير أنواع البيانات المُدرَجة إلى 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 وفقًا لذلك.

واجهات برمجة تطبيقات Executor

  • تقبل الدوالّ التالية مَعلمة "المنفِّذ"، ما يسمح للتطبيق بالتحكم في المنفِّذ الذي يتم تشغيل الدالة عليه.
    • 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() للحالات الأكثر تحديدًا، مثل الحالات التي يكون فيها الحد الأدنى (لتوفير عمليات الحساب) أو الحد الأقصى للدقة (لمعالجة التفاصيل) مطلوبًا.
  • واجهة برمجة التطبيقات التنفيذية: تمت إزالة الطلب 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);

  • يمكنك فرض استدعاء الطرق التالية في سلسلة التعليمات الرئيسية (UI)، مع عرض IllegalStateException عندما لا تكون كذلك. ستسمح الإصدارات المستقبلية باستخدامه في مناقشات أخرى وضمان التسلسل.

    • CameraX.bindToLifecycle()
    • CameraX.unbind()
    • CameraX.unbindAll()
    • ImageAnalysis.setAnalyzer()
    • ImageAnalysis.getAnalyzer()
    • ImageAnalysis.removeAnalyzer()
    • Preview.removePreviewOutputListener()
    • Preview.getOnPreviewOutputUpdateListener()
    • Preview.setOnPreviewOutputUpdateListener()
  • تقبل إعدادات الضبط المختلفة الآن المَعلمات الخالية وقد تُرجع وظائف الحصول المقابلة قيمًا خالية.

  • تم إصلاح مشكلة أثناء الاختبار على المحاكيات التي لا تتوافق مع إعدادات AF/AE/AWB.

  • تم إصلاح خطأ التعطل عند التدوير أثناء تحليل الصورة.

  • تم إصلاح الخطأ الذي يظهر فيه المعاينة باللون الأسود عند البدء (بدون بيانات الكاميرا)، بعد التدوير أو التبديل بين الكاميرا الأمامية والخلفية.

  • تمت إزالة اختبار حالات استخدام متعددة لتحليل الصور في الوقت نفسه. لضمان التوافق، يجب أن تُرفِق التطبيقات حالة استخدام واحدة فقط لتحليل الصور.

  • تمت إضافة اختبارات دقة الرقابة الأولية للكاميرا المزيفة في حزمة اختبار الكاميرا (WIP).

  • تمّت إزالة اختبار 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 تتنازل عن درجة الدقة أو نسبة العرض إلى الارتفاع استنادًا إلى إمكانات الجهاز، وذلك لبدء جلسة الالتقاط كهدفها الأول، وبالتالي قد لا يتم تنفيذ الطلبات الدقيقة. قد يرجع ذلك إلى:

  • الأجهزة التي لا تتوافق مع درجة الدقة المطلوبة
  • مشاكل التوافق، مثل الأجهزة القديمة التي يجب استخدام دقة شاشة معيّنة فيها لكي تعمل بشكل صحيح
  • على بعض الأجهزة، لا تتوفّر بعض التنسيقات إلا بنسبة عرض إلى ارتفاع معيّنة.
  • يُفضّل استخدام "أقرب عدد صحيح mod16" لترميز 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 على عمليات التنفيذ هذه.

إصلاح الأخطاء

الإصدار 1.0.0-beta09 من Camera-Lifecycle

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)

الإصدار 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 Version 1.0.0-beta04

27 أيار (مايو) 2020

تم طرح androidx.camera:camera-lifecycle:1.0.0-beta04. يحتوي الإصدار 1.0.0-beta04 على عمليات التنفيذ هذه.

Camera-Lifecycle Version 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 الإصدار 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 وإلغاء الربط وإلغاء الربط. (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 Version 1.0.0-alpha01

4 كانون الأول (ديسمبر) 2019

تم إصدار androidx.camera:camera-lifecycle:1.0.0-alpha01. يتضمّن الإصدار 1.0.0-alpha01 من دورة حياة الكاميرا هذه العمليات

ملاحظات حول واجهة برمجة التطبيقات

  • تتم إضافة عنصر دورة حياة الكاميرا الذي يقدّم واجهة 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 لأنّه لا يمكن للمستخدمين معرفة الأحجام المتوافقة مع حالة استخدام 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. وسيسمح ذلك بدمج مركز الكاميرا بسهولة في التطبيقات التي تتضمّن إصدار 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 المتوقّفة نهائيًا وExtensionErrorListener وواجهات برمجة تطبيقات 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)
  • إضافة المزيد من ميزات نواة الكاميرا إلى CameraControls: معدّات التحكّم/الضبط لزيادة نسبة العرض إلى الارتفاع المستهدفة، ودرجة الدقة المستهدَفة، ووضع الالتقاط، و CameraControl والتنفيذ المخصّص. (Iea8f2)
  • أضِف فئة RotationReceiver تتلقّى تغييرات دوران Surface. يمكن استخدام هذا الإعداد لضبط دوران الهدف عندما يكون الجهاز في الوضع الثابت "عمودي" أو "أفقي". (Ib278f)
  • تمّ عرض واجهات برمجة التطبيقات العامة الجديدة getEstimatedCaptureLatencyRange في فئة ExtensionsManager. (I6a8ec)
  • تم إيقاف واجهة برمجة التطبيقات ExtensionsErrorListener نهائيًا. لا تُستخدَم هذه الواجهة حاليًا إلا لتتبُّع ما إذا كانت ميزة "المعاينة" أو ImageCapture غير متوفرة عند تفعيل أوضاع الإضافات. ستضيف CameraX تلقائيًا ميزة معاينة أو ImageCapture إضافية لتشغيل وظائف الإضافة بشكل جيد. وبعد ذلك، لن يتم الإبلاغ عن أي خطأ من خلال هذه الواجهة. (I47d9e)
  • تم الكشف عن واجهات برمجة تطبيقات الإضافات الجديدة getInstance وisExtensionAvailable وgetExtensionEnabled CameraSelector المتاحة للجميع وفئات <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 على عمليات التنفيذ هذه.

تغييرات واجهة برمجة التطبيقات

إصلاح الأخطاء

  • تم إصلاح ExtensionsErrorListener للإبلاغ عن الأخطاء عند ربط Preview أو ImageCapture فقط. (I5ae39)

إضافات الكاميرا وعرض الإصدار 1.0.0-alpha21

27 كانون الثاني (يناير) 2021

تم إصدار androidx.camera:camera-extensions:1.0.0-alpha21 وandroidx.camera:camera-view:1.0.0-alpha21. يحتوي الإصدار 1.0.0-alpha21 على هذه المراجعات.

يتم إطلاقهما لإتاحة عناصر مكتبة الكاميرا الأخرى.

إصدار Camera Extensions & View 1.0.0-alpha20

16 كانون الأول (ديسمبر) 2020

تم إصدار androidx.camera:camera-extensions:1.0.0-alpha20 وandroidx.camera:camera-view:1.0.0-alpha20. يحتوي الإصدار 1.0.0-alpha20 على هذه المراجعات.

الإصدار لدعم عناصر أخرى في مكتبة الكاميرا

Camera-Extensions & Camera-View Version 1.0.0-alpha19

11 تشرين الثاني (نوفمبر) 2020

تم إصدار androidx.camera:camera-extensions:1.0.0-alpha19 وandroidx.camera:camera-view:1.0.0-alpha19. يحتوي الإصدار 1.0.0-alpha19 على هذه المراجعات.

إصلاح الأخطاء

  • تمّت إضافة التعليق التوضيحي @ExperimentalVideo إلى عرض الكاميرا. يحدِّد هذا التعليق التوضيحي واجهات برمجة التطبيقات التي توفّر وظائف الفيديو التجريبية التي تخضع للتغيير عند تطوير الميزات بالكامل. يجب أن تستخدم أي طريقة تستخدم واجهات برمجة التطبيقات هذه التعليق التوضيحي @UseExperimental مع ExperimentalVideo كmarkerClass. (I6d729)

الإصدار 1.0.0-alpha18 من Camera-Extensions

14 تشرين الأول (أكتوبر) 2020

تم إصدار androidx.camera:camera-extensions:1.0.0-alpha18. يحتوي الإصدار 1.0.0-alpha18 على هذه المراجعات.

إصلاح الأخطاء

  • تم تحسين وقت الاستجابة لعملية إعداد CameraX وbindToLifecycle (I61dc5).
  • سيعرض <UseCase>.getTargetRotation() القيمة Surface.ROTATION_0 في حال تمّت دعوته قبل إرفاقه بمثيل Camera ما لم يتمّ ضبط قيمة targetRotation على Builder أو UseCase. (I80fcd)

الإصدار 1.0.0-alpha18 من ميزة "عرض الكاميرا"

14 تشرين الأول (أكتوبر) 2020

تم إصدار androidx.camera:camera-view:1.0.0-alpha18. يحتوي الإصدار 1.0.0-alpha18 على هذه المراجعات.

الإصدار لدعم عناصر أخرى في مكتبة الكاميرا

الإصدار 1.0.0-alpha17 من إضافات الكاميرا

23 أيلول (سبتمبر) 2020

تم إصدار androidx.camera:camera-extensions:1.0.0-alpha17. يحتوي الإصدار 1.0.0-alpha17 على هذه المراجعات.

إصلاح الأخطاء

الإصدار 1.0.0-alpha17 من ميزة "عرض الكاميرا"

23 أيلول (سبتمبر) 2020

تم إصدار androidx.camera:camera-view:1.0.0-alpha17. يحتوي الإصدار 1.0.0-alpha17 على هذه المراجعات.

إصلاح الأخطاء

الإصدار 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 مع المعاينة.

الإصدار 1.0.0-alpha15 من Camera-Extensions

19 آب (أغسطس) 2020

تم إصدار androidx.camera:camera-extensions:1.0.0-alpha15. يحتوي الإصدار 1.0.0-alpha15 على هذه المراجعات.

إصلاح الأخطاء

  • تستخدم الطريقة ExtensionsManager.init() الآن السياق كمَعلمة بدلاً من استخدام 0 وسيطة. (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 من إضافات الكاميرا

10 حزيران (يونيو) 2020

تم إصدار androidx.camera:camera-extensions:1.0.0-alpha12. يحتوي الإصدار 1.0.0-alpha12 على هذه المراجعات.

إصلاح الأخطاء

  • إصلاح مشكلة الأعطال عند بدء تشغيل التطبيق عند إعداد CameraX عندما يكون الهاتف في وضع "عدم الإزعاج" إذا كان InitializationException يحتوي على CameraUnavailableException، سيتم ضبطه على ListenableFuture لنتيجة الإعداد بدلاً من تعطيل التطبيق. (I9909a، b/149413835)

الإصدار 1.0.0-alpha12 من Camera-View

10 حزيران (يونيو) 2020

تم إصدار androidx.camera:camera-view:1.0.0-alpha12. يحتوي الإصدار 1.0.0-alpha12 على هذه المراجعات.

إصلاح الأخطاء

  • إضافة واجهة برمجة تطبيقات PreviewView#getBitmap() التي تعرض صورة نقطية للمحتوى المعروض على مساحة المعاينة (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)

الإصدار 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 الإصدار 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

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)

الإصدار 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

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

الإصدار 1.0.0-alpha05 من Camera-Extensions

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 من Camera-View

4 كانون الأول (ديسمبر) 2019

تم إصدار androidx.camera:camera-view:1.0.0-alpha04. يحتوي الإصدار 1.0.0-alpha04 من عرض الكاميرا على عمليات التنفيذ هذه

تغييرات واجهة برمجة التطبيقات

  • يتم توفير فئة 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

إضافات الكاميرا وإصدار عرض الكاميرا 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.

  • مكتبة جديدة لإضافات الكاميرا المستقبلية للوصول إلى التأثيرات على الأجهزة المتوافقة لا تزال هذه المكتبة قيد التطوير.
  • فئة جديدة لعرض الكاميرا لا تزال هذه المكتبة قيد التطوير.