CameraX

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

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

العناصر الإصدار المستقر إصدار محتمل الإصدار التجريبي الإصدار الأولي
camera-camera2 ‫1.6.2 1.7.0-rc01 - -
camera-core ‫1.6.2 1.7.0-rc01 - -
camera-compose ‫1.6.2 1.7.0-rc01 - -
camera-effects ‫1.6.2 1.7.0-rc01 - -
camera-extensions ‫1.6.2 1.7.0-rc01 - -
camera-feature-combination-query - - - 1.5.0-alpha06
camera-feature-combination-query-play-services - - - 1.5.0-alpha06
camera-lifecycle ‫1.6.2 1.7.0-rc01 - -
camera-mlkit-vision ‫1.6.2 1.7.0-rc01 - -
camera-view ‫1.6.2 1.7.0-rc01 - -
camera-viewfinder - - 1.3.0-beta02 1.4.0-alpha07
camera-video ‫1.6.2 1.7.0-rc01 - -
تاريخ آخر تعديل لهذه المكتبة: 21 أكتوبر 2026

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

يتم اختبار CameraX على العديد من الأجهزة في مختبرنا. للاطّلاع على قائمة بالأجهزة المتوفّرة حاليًا في المختبر، يُرجى مراجعة الأجهزة التي تم اختبارها في مختبر CameraX.

تحديد الاعتماديات

لإضافة اعتمادية على CameraX، يجب تضمين مستودع Maven من Google في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.

أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:

Groovy

dependencies {
  // CameraX core library using the camera2 implementation
  def camerax_version = "1.7.0-rc01"
  // 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.7.0-rc01"
    // The following line is optional, as the core library is included indirectly by camera-camera2
    implementation("androidx.camera:camera-core:${camerax_version}")
    implementation("androidx.camera:camera-camera2:${camerax_version}")
    // If you want to additionally use the CameraX Lifecycle library
    implementation("androidx.camera:camera-lifecycle:${camerax_version}")
    // If you want to additionally use the CameraX VideoCapture library
    implementation("androidx.camera:camera-video:${camerax_version}")
    // If you want to additionally use the CameraX View class
    implementation("androidx.camera:camera-view:${camerax_version}")
    // If you want to additionally add CameraX ML Kit Vision Integration
    implementation("androidx.camera:camera-mlkit-vision:${camerax_version}")
    // If you want to additionally use the CameraX Extensions library
    implementation("androidx.camera:camera-extensions:${camerax_version}")
}

الملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء مشكلة جديدة

يُرجى الاطّلاع على مستندات Issue Tracker لمزيد من المعلومات.

الإصدار 1.0 من Camera Viewfinder Compose

الإصدار ‎1.0.0-alpha02

‫12 يونيو 2024

تم طرح androidx.camera:camera-viewfinder-compose:1.0.0-alpha02. يتضمّن الإصدار ‎1.0.0-alpha02 هذه التعديلات.

الإصدار ‎1.0.0-alpha01

‫14 مايو 2024

تم طرح androidx.camera:camera-viewfinder-compose:1.0.0-alpha01. يتضمّن الإصدار ‎1.0.0-alpha01 هذه التعديلات.

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

  • مكتبة جديدة تقدّم هذه المكتبة دالة مركّبة لعدسة الكاميرا الأصلية في Compose، ويمكن استخدامها مع CameraX وCamera2. تتيح الدالة المركّبة Viewfinder استخدام نِسب عرض إلى ارتفاع مختلفة ومعالجة أحداث اللمس.

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

الإصدار ‎1.7.0-rc01

‫21 أكتوبر 2026

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

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

  • تم تحويل UseCaseCamera2Interop وImageCaptureCamera2Interop وSessionConfigCamera2Interop وCameraControlCamera2Interop من واجهات إلى فئات مجرّدة. (If654e)
  • تم إصلاح مشكلة الالتباس في Camera2Interop V2 ‏ (I1bbe5)

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

  • تم إصلاح عطل داخلي في نظام التشغيل SIGSEGV في سلسلة محادثات CameraX OpenGL عندما أصدر SurfaceProcessor إدخال SurfaceTexture تم تجميع SurfaceRequest الخاص به قبل الاكتمال. (I76f73، b/563673593)
  • تم إصلاح تسرُّب في Surface وعطل داخلي في نظام التشغيل OpenGL قد يحدث أثناء تجميع المهملات عند إيقاف تنفيذ CameraEffect أو HandlerThread قبل إغلاق SurfaceOutput الخاص بالتأثير. (Ifcc19، b/558819242)
  • تحسين سلوك ميزة "تحسين الإضاءة المنخفضة": تتّبع ميزتا "تحسين الإضاءة المنخفضة" و"الفلاش" الآن سياسة "الإعداد الأخير هو السائد"، حيث يؤدي تفعيل إحداهما إلى إيقاف الأخرى تلقائيًا بدلاً من رفض الطلب. بالإضافة إلى ذلك، يمكن الآن تشغيل الفلاش أثناء التقاط الصور عندما تكون ميزة "تحسين الإضاءة المنخفضة" مفعَّلة. (Ie583f)
  • تم تحديث تبعية androidx.lifecycle:lifecycle-runtime إلى الإصدار 2.10.0. هذا الإصدار مطلوب لتشغيل عمليات فحص lint المجمّعة لوقت تشغيل مراحل النشاط مع الإصدار 9.5.0-alpha04 من AGP أو الإصدارات الأحدث. (I99bfd، b/556807521)
  • إتاحة الحصول على CameraSelector على الكاميرات المادية من CameraInfo.getPhysicalCameraInfos() وربط UseCases بالكاميرات المادية عند الاستعلام عن CameraInfo باستخدام CameraSelector فعلي، يتم الآن عرض CameraInfo الفعلي بدلاً من CameraInfo المنطقي. (Ibe7f2)
  • تم توضيح OutputOptions.Builder.setLocation Javadoc بأنّه يتم تخزين خطوط العرض والطول فقط في البيانات الوصفية للفيديو. (I77d3b، b/551348846)
  • تم إصلاح خلل في ImageAnalysis حيث يمكن أن يؤدي تغيير تدوير الإخراج ديناميكيًا أو إلغاء ربط حالة الاستخدام إلى تسرُّب موارد Surface/ImageReader. (I25cef)
  • تقرّب الدالة CameraInfo.getIntrinsicZoomRatio() الآن النسبة المعروضة إلى منزلتَين عشريتَين. (Ibe9a8)
  • تم تخفيف قيود التحقّق من HardwareBuffer.isSupported لتنسيق PRIVATE في ImageAnalysis لمنع حالات الفشل السلبية الخاطئة على بعض الأجهزة. (I347a4، b/545866947)
  • تم إصلاح عطل في التجميع في إصدارات JDK الأحدث عند حلّ تعليقات توضيحية من نوع JSpecify تم استيرادها بشكل انتقالي في حقول CameraX الداخلية. (I00bb4، b/543937345)

الإصدار ‎1.7.0-alpha03

‫12 أغسطس 2026

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

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

  • تم إيقاف واجهات برمجة التطبيقات القديمة Camera2Interop APIs (Camera2Interop.Extender وCamera2CameraControl وCamera2CameraInfo وCaptureRequestOptions) نهائيًا لصالح طرق المصنع لأداة الضبط Camera2Interop ودوال الإضافة في لغة Kotlin. (Ib0845، b/529609261)
  • تمت إضافة مجموعات إضافات Kotlin DSL camera2Interop لكل من preview وimageAnalysis وvideoCapture وimageCapture وSessionConfig.Builder، بالإضافة إلى دالة الإضافة CameraControl.applyCamera2InteropAsync. (I51af9، b/529609261)
  • تمت إضافة طرق جديدة لإنشاء أداة ضبط Camera2Interop (forUseCase وforImageCapture وforSessionConfig وforCameraControl) وطرق setInterop / applyInteropAsync المقابلة في Preview.Builder وImageCapture.Builder وImageAnalysis.Builder وVideoCapture.Builder وSessionConfig.Builder وCameraControl. (I0007b، b/529609261)
  • تمت إضافة طرق مساعدة إلى Camera2Interop وسمات إضافة Kotlin المكافئة (CameraInfo.cameraId وCameraInfo.cameraCharacteristics وString.toCameraSelector()) لاسترداد معرّف كاميرا Camera2 وخصائصها من CameraInfo. (I11803، b/529609261)
  • تمت إضافة Preview.setMirrorMode وPreview.getMirrorMode وVideoCapture.setMirrorMode إلى واجهات برمجة التطبيقات العامة، وتمت إزالة التعليق التوضيحي ExperimentalMirrorMode. (I4ed60، b/519794349، b/470629643)
  • تمت إضافة أدوات إنشاء Kotlin DSL‏ preview { ... } وimageCapture { ... } وimageAnalysis { ... } وvideoCapture { ... } لإنشاء UseCases. (I91df9، b/530013719)
  • تم تعديل ImagePlane.buffer ليصبح ByteBuffer غير قابل للإلغاء. (I98593)
  • تم إيقاف دوال الحصول على السمات نهائيًا في SessionConfig.Builder وHighSpeedVideoSessionConfig.Builder وExtensionSessionConfig.Builder في لغة Kotlin DSL لفرض سمات الكتابة فقط. (I2875b، b/534570559)

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

  • تم إصلاح مشكلة كانت تؤدي إلى تعذُّر عرض بث واحد من "النسخة الحصرية" عند ربط حالات استخدام متعددة لـ "Preview" بـ "OverlayEffect". (I7a383، b/532577546، b/532924417)
  • تم إصلاح مشكلة تعذُّر استخدام Recording.pause() وRecording.resume() عند تبديل الكاميرات أثناء تسجيل فيديو مستمر. (I71004، b/532327691، b/367121726)
  • تم إصلاح أعطال طبقة تجريد الأجهزة (HAL) عند استخدام ميزة "الالتقاط الفوري" (ZSL) أثناء التكبير أو التصغير عبر حدود الكاميرا الفعلية على الأجهزة التي تحتوي على كاميرات متعددة. (I1c374، b/527782712، b/514757157)
  • تم إصلاح مشكلة احتمال تعذُّر تسجيل فيديو بتقنية النطاق العالي الديناميكية (HDR) على أجهزة Samsung Galaxy S25 وS26 وFold 7. (Ic0827، b/529618629)

الإصدار 1.7.0-alpha02

‫1 يوليو 2026

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

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

  • تتيح حزمة CameraXViewfinder الآن استخدام الإيماءات المضمّنة للتكبير أو التصغير بإصبعين والنقر للتركيز، وتضيف إمكانية استخدام وميض الشاشة وحالة البث. أصبحت السمة FocusState متاحة الآن للجميع في viewfinder-core للسماح بمراقبة نتائج ميزة "النقر للتركيز". (I66a17، b/522549890)
  • تمت إضافة isAutoRotationEnabled إلى SessionConfig.Builder وHighSpeedVideoSessionConfig.Builder وExtensionSessionConfig.Builder، وتم تقديم دوال مصنع Kotlin DSL لها. يسمح هذا الإعداد بضبط التدوير المناسب تلقائيًا استنادًا إلى أدوات استشعار الجهاز. (I5b4a3، b/510752515)
  • تمت إضافة السمة TransformationMode إلى TransformationInfo لإتاحة استخدام التطبيقات لمسار OpenGL في وضع EMBEDDED. (Id1de1، b/487826941)
  • تمت إضافة isNightModeIndicatorSupported() وgetNightModeIndicator() إلى CameraInfo لتحديد الحالات التي تستوفي فيها الظروف البيئية معايير "الوضع الليلي". (Iae47b، b/499389465)
  • تم عرض ImageAnalysis.OUTPUT_IMAGE_FORMAT_PRIVATE وImageProxy.getHardwareBuffer()‎ كواجهة برمجة تطبيقات علنية لإتاحة ImageAnalysis المستندة إلى وحدة معالجة الرسومات. (I41cb3، b/496022391، b/492934501)
  • تم إيقاف ExtensionsManager#getExtensionEnabledCameraSelector نهائيًا. يُرجى استخدام واجهة ExtensionSessionConfig API الجديدة لتفعيل أوضاع الإضافات. (I2b336، b/473715607)
  • تمت إضافة ميزة تتيح تصميم إطارات الكاميرا بشكل مرئي أثناء تركيب الكاميرا المتزامن. يمكنك الآن تخصيص ما يلي:
  • الزوايا الدائرية: استخدِم setRoundedCornerRatio(float) لتطبيق التقريب العادي (من 0.0 إلى 1.0) على حواف الإطار.
  • الحدود: يمكنك استخدام setBorderWidthRatio(float)‎ وsetBorderColor(int)‎ لإضافة إطار زخرفي بسُمك متّسق (I18a07، b/366349205)
  • تم تعديل CompositionSettings لفرض ترتيب z غير سالب، وتمت إضافة عملية التحقّق إلى ConcurrentCamera.setCompositionSettings لضمان استدعائها بالعدد الصحيح من الإعدادات في وضع التركيب الصالح. (If660d، b/496951658)
  • تمت إضافة getNightModeIndicator()‎ وisNightModeIndicatorAvailable()‎ إلى CameraExtensionsInfo للسماح للتطبيقات بمراقبة ما إذا كانت البيئة الحالية في وضع "صور في الليل" عند استخدام إضافات الكاميرا. (I62bb4، b/499389465)
  • تمت إضافة إمكانية استخدام جودة الفيديو QHD في VideoCapture. (I0ac20، b/501305592)
  • تمت إضافة Recorder.Builder.setTargetAudioChannelCount(int) وRecorder.getTargetAudioChannelCount() للسماح للمطوّرين بضبط عدد صريح للقنوات الصوتية. (I6bee0، b/441895100)
  • تمت إضافة Recorder.Builder.setTargetAudioEncodingBitRate(int) للسماح بضبط معدل نقل البيانات المستهدَف لترميز الصوت. (I29062، b/241151504)
  • تمت إضافة واجهة برمجة التطبيقات ConcurrentCamera.setCompositionSettings للسماح للتطبيقات بتعديل تركيبة الكاميرا الحالية ديناميكيًا بعد ربط مراحل النشاط. بالإضافة إلى ذلك، تتيح واجهة برمجة التطبيقات setZOrder الجديدة في CompositionSettings.Builder التحكّم بدقة في ترتيب عرض بث الكاميرا المتداخل. (I90528، b/473702287)
  • تم تقديم واجهات برمجة تطبيقات للتحكّم الدقيق في تنسيقات الترميز. يمكن للمطوّرين الآن اكتشاف التنسيقات المتوافقة مع الأجهزة باستخدام Recorder.getSupportedVideoMimeTypes() وgetSupportedAudioMimeTypes()، وهما حاليًا في المرحلة التجريبية. يمكن ضبط التنسيقات المفضّلة بوضوح من خلال Recorder.Builder.setVideoMimeType() وsetAudioMimeType(). بالإضافة إلى ذلك، تتيح واجهة برمجة التطبيقات Recorder.getVideoCapabilities(CameraInfo, String) الاستعلام عن الإمكانات الخاصة بالكاميرا، مثل الجودة والنطاقات الديناميكية المتوافقة، لبرنامج ترميز محدّد. (I4620e، b/491319384)
  • تمت إضافة CameraController.setAutoRotationEnabled(boolean) للسماح بإيقاف أداة الاستماع إلى التدوير التلقائي للجهاز. (Ia0c03، b/449573627)
  • تمت إضافة ميزة قفل التعريض التلقائي/توازن اللون الأبيض التلقائي في FocusMeteringAction من خلال واجهة برمجة تطبيقات جديدة باسم setLockingMode. ويسمح هذا أيضًا بتحديث مناطق 3A بدون قفل التركيز، ما يتيح للكاميرا البقاء في وضع التركيز التلقائي المستمر أثناء تحديث منطقة التركيز. (I6416f، b/481624745)

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

  • إزالة شرط compileSdk 37 (If78b4)
  • تم إصلاح مشاكل تحويل CameraXViewfinder في وضع EMBEDDED عند تفعيل مسار OpenGL من خلال CameraX لربط المزيد من UseCases أو معالجة السطح. (I3e637، b/487826941)
  • تم تعديل الاختبارات والأنشطة لاستخدام ExtensionSessionConfig بدلاً من واجهة برمجة التطبيقات getExtensionEnabledCameraSelector التي تم إيقافها نهائيًا. (I765d8، b/473715607)
  • تم إصلاح خطأ في التجميع "لا يمكن الوصول إلى الفئة ListenableFuture". (Ic8cba، b/497571473)
  • تم تحديث compileSdk في Compose إلى المستوى 37 من واجهة برمجة التطبيقات. وهذا يعني أنّه يجب استخدام الإصدار 9.2.0 أو إصدار أحدث من "مكوّن Android الإضافي لـ Gradle" عند استخدام Compose. (Id45cd، b/413674743)

الإصدار 1.7.0-alpha01

‫11 مارس 2026

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

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

  • تم الكشف عن واجهة برمجة التطبيقات CameraController.setSessionConfig(). يتيح ذلك توفير SessionConfig مخصّص لإعدادات UseCase المتقدّمة التي لا يعرضها CameraController مباشرةً. عندما يكون SessionConfig نشطًا، يتم إيقاف طرق الضبط الأخرى على CameraController.(I35cf1،‏ b/448525636)

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

  • يتم نقل المكتبات لاستخدام Java 11. وهذا يعني أنّ الرمز الثانوي الذي يتم إنشاؤه سيكون Java 11 (الإصدار 55 من ملف الفئة) وقد يتطلّب إزالة التجميل اللغوي لاستخدام المكتبة (If4c2a، b/457821470)
  • تم إصلاح خطأ في ImageAnalysis حيث لم يتم تدوير الصور بشكل صحيح عند تفعيل تدوير الصورة الناتجة وكان التدوير النسبي الأولي 0 درجة. (Id46c2، b/487160584)

الإصدار 1.6 من تطبيق "الكاميرا"

الإصدار 1.6.2

‫26 أغسطس 2026

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

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

  • تم إصلاح عطل في التجميع في إصدارات JDK الأحدث عند حلّ تعليقات توضيحية من نوع JSpecify تم استيرادها بشكل انتقالي في حقول CameraX الداخلية. (I00bb4، b/543937345)

الإصدار 1.6.1

‫6 مايو 2026

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

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

  • تم إصلاح خطأ في التجميع "لا يمكن الوصول إلى الفئة ListenableFuture" عند استخدام CameraX 1.6.0. (Ic8cba، b/497571473)

الإصدار 1.6.0

‫25 مارس 2026

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

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

1. نقل البيانات إلى حزمة كاميرا موحّدة عالية الأداء

  • تستخدم واجهة CameraX الآن CameraPipe، وهي حزمة حديثة وعالية الأداء تشغّل كاميرا Pixel. يعمل هذا الانتقال على تبسيط الكفاءة الهندسية وتوفير أساس قابل للتوسّع لتقديم ميزات التصوير الحاسوبي المتقدّمة إلى منظومة المطوّرين المتكاملة.

2. دمج Media3 Muxer

  • تدمج CameraX الآن Media3 Muxer تلقائيًا ضمن واجهة برمجة التطبيقات VideoCapture. توفّر عملية النقل هذه العديد من المزايا:
    • أداء محسَّن: معالجة الفيديوهات ودمجها بكفاءة أكبر
    • المرونة في التعامل مع الأعطال: تم تحسين الحماية من تلف ملفات الفيديو، ما يضمن الحفاظ على البيانات حتى في حال تعطُّل التطبيق أثناء التسجيل.

3. تحسين مجموعة الميزات

4. واجهة برمجة التطبيقات SessionConfig API الثابتة

  • تمت ترقية SessionConfig من واجهة برمجة تطبيقات تجريبية إلى واجهة برمجة تطبيقات عامة ومستقرة بالكامل، بما في ذلك SessionConfig وHighSpeedVideoSessionConfig. يمكن الآن تنفيذ إضافات CameraX باستخدام واجهة برمجة تطبيقات ExtensionSessionConfig جديدة. تم تقديم واجهة برمجة تطبيقات جديدة isSessionConfigSupported تتيح للمطوّرين الاستعلام عمّا إذا كان الجهاز يتيح مجموعة معيّنة من حالات الاستخدام والميزات (مثل النطاق العالي الديناميكية أو التثبيت أو درجات دقة معيّنة أو إضافات CameraX أو العرض البطيء) قبل الربط بمراحل النشاط.

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

  • تم إصلاح عطل يحدث على بعض الأجهزة التي تعمل بنظام التشغيل Android 17 (المستوى 37 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث. عندما تعرض هذه الأجهزة ملفات شخصية جديدة للنطاق الديناميكي (مثل STANDARD_SMPTE_2094_50(ID 8192)) لم تكن معروفة للإصدار 1.5.1 من CameraX والإصدارات الأقدم، كانت المكتبة تفشل في السابق في التعامل مع هذه المعرّفات بشكل صحيح، ما يؤدي إلى ظهور NullPointerException أو IllegalArgumentException أثناء ProcessCameraProvider.bindToLifecycle(). يسمح هذا الإصلاح لـ CameraX بتجاهل ملفات تعريف النطاق الديناميكي غير المعروفة بسلاسة، ما يمنع تعطُّل التطبيق ويحافظ على التوافق مع الإصدارات الأحدث. يُرجى تحديث تبعية CameraX إلى الإصدار 1.5.2 أو 1.6.0 (أو إصدار أحدث) لتجنُّب هذه المشكلة على الأجهزة التي تعرض هذه الملفات الشخصية الجديدة. لمزيد من التفاصيل، يُرجى الاطّلاع على المشكلة 519796838. (Ibd7b5)
  • تقدّم واجهة برمجة التطبيقات لمجموعة الميزات الآن نتائج متّسقة عند استخدام PREVIEW_STABILIZATION مع VideoCapture. يؤدي ذلك إلى إصلاح خطأ تسبّب في ظهور نتائج غير متسقة عندما لم تكن حالة استخدام "المعاينة" نشطة أيضًا. (Ifed82، b/449913903)
  • تم إصلاح مشكلة كانت تؤدي إلى إتاحة ميزات مفضّلة غير متوافقة بشكل غير صحيح. تتم الآن فلترة الميزات بشكل صحيح عندما لا يتم استيفاء حالات الاستخدام المطلوبة. (I38db8، b/449532342)
  • تم إصلاح مشكلة ظهور نتيجة فيديو غير واضحة على هاتف Samsung Galaxy S6. (I612d9، b/235127608)
  • تم إصلاح مشكلة حيث يمكن أن تعرض CameraInfo#isFeatureGroupSupported القيمة "صحيح" بشكل غير صحيح لـ PREVIEW_STABILIZATION إذا تم ضبط SessionConfig في طلب البحث مسبقًا باستخدام ميزات أخرى. (I2c355c، b/437816469)
  • تم استبعاد أحجام مخرجات تنسيق YUV التي تتضمّن مشاكل من جهاز Samsung Z Fold 4. تظهر مشكلة تشويه في الصور التي يتم تلقّيها عند استخدام أحجام الإخراج هذه. (I776bf، b/460322307)
  • تم إصلاح مشكلة متعلّقة بجهاز Samsung A53، حيث يتعذّر أحيانًا التقاط الصور مع تفعيل المصباح اليدوي في حال ربط حالة استخدام VideoCapture. (I0f183، b/458197367)
  • تم إصلاح مشكلة في بعض الأجهزة حيث قد يؤدي استخدام الفلاش مع الكاميرا الفائقة الاتساع إلى التقاط صور منخفضة الإضاءة. (Ib7530، b/444590340)
  • تم تعديل تبعية ExifInterface لتشمل إصلاحًا لتحليل ملفات JPEG باستخدام حشو 0xFF، ما يحلّ مشاكل تعذُّر التقاط الصور على الأجهزة التي يضيف فيها برنامج ترميز JPEG وحدات بايت للتعبئة قبل العلامات. (I0eb49)

الإصدار 1.6.0-rc01

‫25 فبراير 2026

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

الإصدار ‎1.6.0-beta02

‫11 فبراير 2026

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

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

  • تم إصلاح مشكلة ImageCapture OUTPUT_FORMAT_RAW_JPEG في الالتقاط من الذاكرة IllegalArgumentException. (Id4eec، b/479990902)
  • تم نقل البيانات إلى أداة دمج AndroidX Media3. أصلح هذا التحديث مشكلتَين: 1- تلف الفيديو أثناء الانقطاعات غير المتوقعة أو إغلاق التطبيق، و2- الأعطال عند حفظ الفيديوهات في واصفات ملفات الوكيل. (I23b63، b/433649708، b/264812009، b/475750115)

الإصدار ‎1.6.0-beta01

‫28 يناير 2026

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

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

  • تم إصلاح مشكلة النوع الحالي في CameraExtensionsInfo في الإصدار 1.6.0-alpha من CameraX، حيث لا يمكن لعنصر LiveData تلقّي بيانات النوع المعدَّلة. (I2c7a5)
  • تم تعديل تبعية ExifInterface لتشمل إصلاحًا لمشكلة تحليل ملفات JPEG التي تحتوي على مساحة متروكة بقيمة 0xFF، ما يحلّ مشاكل تعذُّر التقاط الصور على الأجهزة التي يضيف فيها برنامج ترميز JPEG وحدات بايت للتعبئة قبل العلامات. (I0eb49)

الإصدار ‎1.6.0-alpha02

‫17 ديسمبر 2025

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

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

  • تمت إضافة ميزة قابلة للتجميع للإشارة إلى ميزة تثبيت الفيديو في إعدادات الجلسة. يمكن للمطوّرين الآن طلب ميزة تثبيت الفيديو كميزة مطلوبة أو مفضّلة، ما يجعلها متوافقة مع الميزات الأخرى التي يمكن تجميعها، مثل UHD_RECORDING وPREVIEW_STABILIZATION. (Ic6757، b/419766630)
  • تمت إضافة ميزات قابلة للتجميع للإشارة إلى جودة تسجيل الفيديو في إعدادات الجلسة. يمكن للمطوّرين الآن طلب جودة معيّنة (مثل UHD أو FHD) كميزة مطلوبة أو مفضّلة، بما يتوافق مع الميزات الأخرى التي يمكن تجميعها، مثل نطاق عالي الديناميكية وعدد اللقطات في الثانية. (Ib5cd3، b/437820285)
  • تمت إضافة إمكانية استخدام كل من CameraEffect وواجهة برمجة التطبيقات لمجموعات الميزات في SessionConfig. (I17f18، b/406370934)
  • تمت إضافة إمكانية استخدام كل من ImageAnalysis وواجهة برمجة التطبيقات لمجموعات الميزات في SessionConfig. (I87833، b/406371720)

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

  • تمت إضافة دالة setter لـ addUseCase في ExtensionSessionConfig.Builder وإضافة دوال getter الناقصة لـ ExtensionSessionConfig. (I71e07، b/453988621)
  • تمت إضافة واجهة برمجة التطبيقات ExtensionsManager.getInstance، وهي نسخة معلّقة من ExtensionsManager.getInstanceAsync (I3a0a9، b/452208792)
  • تم تغيير اسم isFeatureGroupSupported إلى isSessionConfigSupported، وأصبح يتيح استخدام أي نوع من SessionConfig. (I21616، b/448781299)
  • تم تحويل ExtensionsManager إلى تنفيذ Kotlin. (I73091، b/452208792)
  • تمت إضافة CameraProvider#getCameraInfo(CameraSelector, SessionConfig) لاسترداد CameraInfo عندما يمكن أن يؤثر SessionConfig في اختيار الكاميرا. على سبيل المثال، عند استخدام ExtensionSessionConfig. (Ic548c، b/451891648)
  • تم عرض واجهة برمجة التطبيقات ExtensionSessionConfig. يمكن للتطبيقات إنشاء ExtensionSessionConfig واستخدامه لإنشاء جلسة إضافات الآن. (I6354c، b/448524373)
  • لم تعُد واجهة برمجة التطبيقات androidx.camera.video.HighSpeedVideoSessionConfig تجريبية، بل أصبحت الآن واجهة برمجة تطبيقات عامة ومستقرة بالكامل. (I492d4، b/447558239)
  • لم تعُد واجهة برمجة التطبيقات androidx.camera.core.SessionConfig تجريبية، بل أصبحت الآن واجهة برمجة تطبيقات عامة ومستقرة بالكامل. (Idc87a، b/447558437)

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

  • تم إصلاح عطل ناتج عن IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object: على الإصدار 17 من نظام التشغيل Android أو الإصدارات الأحدث. (Ibd7b5، b/463465353)
  • تم استبعاد أحجام مخرجات تنسيق YUV التي تتضمّن مشاكل من جهاز Samsung Z Fold 4. تظهر مشكلة تشويه في الصور التي يتم تلقّيها عند استخدام أحجام الإخراج هذه. (I776bf، b/460322307)
  • تم إصلاح مشكلة عدم تطبيق CaptureRequest.FLASH_MODE عند ضبطه من خلال واجهة برمجة التطبيقات Camera2Interop. (I0004c، b/459608684)
  • تم إصلاح مشكلة متعلّقة بجهاز Samsung A53، حيث يتعذّر أحيانًا التقاط الصور مع تفعيل المصباح اليدوي في حال ربط حالة استخدام VideoCapture. (I0f183، b/458197367)
  • تم إصلاح مشكلة في بعض الأجهزة حيث قد يؤدي استخدام الفلاش مع الكاميرا الفائقة الاتساع إلى التقاط صور منخفضة الإضاءة. (Ib7530، b/444590340)

الإصدار ‎1.6.0-alpha01

‫22 أكتوبر 2025

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

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

  • انتقلت CameraX إلى حزمة كاميرا موحّدة وعالية الأداء، والتي يستخدمها أيضًا تطبيق "كاميرا Pixel". تُعرف هذه الحزمة الجديدة باسم CameraPipe، وهي ثمرة تعاون بين فريقَي CameraX و"كاميرا Pixel". ويضمن ذلك مشاركة جميع التحسينات، ما يفيد مستخدمي CameraX وتطبيق "كاميرا Pixel".

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

  • تمت إضافة واجهات برمجة تطبيقات جديدة لرصد إضافة الكاميرا الديناميكية أو إزالتها. لمزيد من التفاصيل، يمكنك الاطّلاع على واجهة برمجة التطبيقات CameraPresenceListener. (I41ead، b/427182232، b/419441394)

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

  • تقدّم واجهة برمجة التطبيقات لمجموعة الميزات الآن نتائج متّسقة عند استخدام PREVIEW_STABILIZATION مع VideoCapture. يؤدي ذلك إلى إصلاح خلل تسبّب في ظهور نتائج غير متسقة عندما لم تكن حالة استخدام Preview نشطة أيضًا. (Ifed82، b/449913903)
  • تم إصلاح مشكلة كانت تؤدي إلى إتاحة ميزات مفضّلة غير متوافقة بشكل غير صحيح. تتم الآن فلترة الميزات بشكل صحيح عندما لا يتم استيفاء حالات الاستخدام المطلوبة. (I38db8، b/449532342)
  • تم إصلاح مشكلة ظهور نتيجة فيديو غير واضحة على هاتف Samsung Galaxy S6. (I612d9، b/235127608)
  • تم إصلاح مشكلة حيث يمكن أن تعرض CameraInfo#isFeatureGroupSupported القيمة "صحيح" بشكل غير صحيح لـ PREVIEW_STABILIZATION إذا تم ضبط SessionConfig في طلب البحث مسبقًا باستخدام ميزات أخرى. (I2c355c، b/437816469)

الإصدار 1.5 من تطبيق "الكاميرا"

الإصدار 1.5.3

‫28 يناير 2026

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

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

  • تم تحديث اعتمادية ExifInterface إلى الإصدار 1.4.2. يؤدي ذلك إلى إصلاح مشكلة تعذُّر التقاط الصور التي تحدث على الأجهزة التي تنتج صور JPEG مع وحدات بايت إضافية (ومسموح بها) بقيمة 0xFF قبل العلامة. (I16df4)

الإصدار 1.5.2

‫4 ديسمبر 2025

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

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

  • تم إصلاح عطل ناتج عن IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object: على الإصدار 17 من نظام التشغيل Android أو الإصدارات الأحدث. (Ic9184)
  • تم إصلاح خطأ يؤدي إلى نتائج غير متّسقة في واجهة برمجة التطبيقات لمجموعة الميزات عند إضافة ميزة "PREVIEW_STABILIZATION" مع حالة الاستخدام "VideoCapture"، ولكن بدون حالة الاستخدام "Preview". (Ifed82)
  • تم إصلاح مشكلة عدم فلترة الميزات المفضّلة على الرغم من عدم توفّر حالات الاستخدام المطلوبة لتفعيلها. (I38db8)

الإصدار 1.5.1

‫8 أكتوبر 2025

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

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

  • إتاحة استخدام CameraEffect في وضع تركيب الكاميرا المتزامن سيتم تطبيق التأثير على ناتج التركيبة. يُرجى العِلم أنّه سيتم تجاهل السمة mirrorMode في VideoCapture عند ضبط التأثير في وضع دمج الكاميرات المتزامنة. (If3d00، b/425565129)
  • تم إصلاح المشكلة المتمثّلة في عدم تطبيق mirrorMode بشكل صحيح على الكاميرا الثانوية في وضع دمج الكاميرات المتزامنة. (I686cd، b/446430827)
  • إتاحة ربط Preview وImageCapture وVideoCapture معًا في وضع عدم دمج الكاميرات المتزامنة (Ib410a، b/443009871)
  • تم إصلاح مشكلة فقدان UseCases، مثل ImageCapture وVideoCapture، لمعلومات التدوير المستهدَفة في حال إعادة إنشائها. قد يؤدي ذلك إلى ظهور الصور أو الفيديوهات باتجاه غير صحيح إذا تم تغيير إعداد مثل imageCaptureMode بعد تدوير الجهاز. (I477c8، b/444734537)
  • تم إصلاح مشكلة كانت تمنع ميزة "المعاينة" من اختيار درجات دقة بنسبة عرض إلى ارتفاع تبلغ 16:9، وتمنع "VideoCapture" من التسجيل بجودة QUALITY_1080P. حدثت هذه المشكلة عند استخدام إعدادات دقة المعاينة التلقائية أثناء تفعيل ميزة StreamSharing الداخلية (على سبيل المثال، عند ربط أربع حالات استخدام في الوقت نفسه). (I493cb، b/440364875)
  • تم إصلاح مشكلة تعطُّل التطبيق عند تفعيل التأثير بعد إيقاف SurfaceProcessor (I2c450، b/414150174)
  • تم إصلاح خلل في CameraController كان يؤدي إلى حدوث IllegalStateException عندما تختار UseCase أولية الحد الأقصى للدقة، ما يمنع بعد ذلك ربط UseCases الأخرى. (Ifb758، b/440374234)
  • يستبعد أحجام مخرجات YUV_420_888 التي تسبب مشاكل في Nokia 7 Plus والتي ستؤدي إلى حدوث مشكلة الفشل الصامت بدون الإبلاغ عن أي رسائل خطأ. (I3af47، b/436524501)
  • تم إصلاح مشكلة كانت تؤدي إلى عرض CameraInfo#isFeatureGroupSupported للقيمة "صحيح" بشكل غير صحيح لميزة PREVIEW_STABILIZATION. قد يحدث ذلك أحيانًا عند إرسال طلب بحث باستخدام SessionConfig تم ضبطه مسبقًا مع ميزات أخرى. (I2c355، b/437816469)
  • تم تحسين ثبات CameraXViewfinder على مستويات واجهة برمجة التطبيقات القديمة والأجهزة التي بها مشاكل في SurfaceView من خلال ضبط الإعدادات التلقائية على TextureView في مثل هذه السيناريوهات. تُعدّ آلية الاحتياط هذه هي الإعداد التلقائي الجديد، ولكن يمكن إلغاؤها آليًا. (Ieb476، b/437496463)
  • تم إصلاح مشكلة تسرُّب الذاكرة في PreviewView حيث كان من الممكن أن تمنع جمع المهملات من نشاطها. يحدث ذلك إذا وصل SurfaceRequest جديد قبل معالجة الطلب السابق. (I4aa0b،b/443112512)
  • تم إصلاح مشكلة تعذُّر التسجيل بسرعة عالية أو بالحركة البطيئة على أجهزة Huawei P smart وInfinix Hot 40i وRealme C53. (40a668e، b/442984200)

الإصدار 1.5.0

‫10 سبتمبر 2025

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

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

  • التسجيل عالي السرعة والتسجيل البطيء: يمكنك بسهولة دمج تسجيل الفيديو عالي السرعة (120/240 لقطة في الثانية) والتسجيل البطيء بأقل قدر من الرموز البرمجية. لمزيد من التفاصيل، يُرجى الاطّلاع على Recorder#getHighSpeedVideoCapabilities(CameraInfo) وHighSpeedVideoSessionConfig.
  • واجهة برمجة التطبيقات SessionConfig وFeatureGroup: تتيح لك واجهة برمجة التطبيقات SessionConfig الجديدة ضبط جلسة الكاميرا وتفعيل ميزات متعددة معًا بأمان، بما في ذلك HLG (HDR) وUltraHDR و60 لقطة في الثانية وتثبيت المعاينة. يمكنك أيضًا ضبط مجموعة ميزات مفضّلة حسب الأولوية، ما يتيح لـ CameraX تحديد المجموعة المثلى المتوافقة. لمزيد من المعلومات، يُرجى الاطّلاع على SessionConfig.Builder#setPreferredFeatureGroup وSessionConfig.Builder#setRequiredFeatureGroup وCameraInfo#isFeatureGroupSupported(SessionConfig).
  • واجهة برمجة التطبيقات Deterministic Frame Rate API: يمكنك معالجة القيود السابقة في setTargetFrameRate باستخدام CameraInfo.getSupportedFrameRateRanges(sessionConfig) لطلب البحث وSessionConfig.setExpectedFrameRateRange لضبط عدد اللقطات في الثانية بدقة وبشكل متوافق.
  • إضافات الكاميرا: يتوافق تنسيق UltraHDR الآن مع الإضافات. يُرجى التحقّق من "ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats()" وتفعيله في "ImageCapture.Builder.setOutputFormat". تنعكس الآن إمكانات نسبة التكبير/التصغير وتثبيت المعاينة عند تفعيل الإضافات.
  • شدة ضوء المصباح: يمكنك ضبط شدة ضوء المصباح باستخدام CameraControl.setTorchStrengthLevel.
  • وضع "تحسين الإضاءة المنخفضة": يمكنك تفعيل وضع "تحسين الإضاءة المنخفضة" (CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY) من خلال واجهات برمجة التطبيقات التالية: راجِع CameraInfo#isLowLightBoostSupported وCameraInfo#getLowLightBoostState وCameraControl#enableLowLightBoostAsync.
  • تسجيل الفيديو: يتم الآن تشغيل "VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE" في حال عدم توفّر مساحة تخزين كافية أثناء التسجيل. يسمح PendingRecording.withAudioEnabled(boolean initialMuted) بالتحكّم في حالة كتم الصوت الأولية لتسجيل الصوت.
  • التقاط الصور: تمت إضافة إمكانية استخدام تنسيقَي DNG (RAW) وJPEG + DNG (RAW) في "ImageCapture". يُرجى التحقّق من "ImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats()" لمعرفة ما إذا كان يتوافق مع تنسيق RAW. استخدِم واجهات برمجة تطبيقات takePicture المحمّلة بشكل زائد مع عدة OutputFileOptions لالتقاط صور بتنسيق RAW+DNG.
  • تحليل الصور: إتاحة تنسيق NV21 في ImageAnalysis يمكنك تفعيلها من خلال ImageAnalysis.Builder.setOutputImageFormat(OUTPUT_IMAGE_FORMAT_NV21).

الإصدار 1.5.0-rc01

‫13 أغسطس 2025

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

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

  • نقل الحد الأدنى التلقائي لإصدار حزمة تطوير البرامج (SDK) من المستوى 21 إلى المستوى 23 (Ibdfca، b/380448311، b/435705964، b/435705223)
  • تمت إزالة قيود الإخراج بدقة 10 بت في وضع التعرض التلقائي للضوء في ميزة "تحسين الصورة في الإضاءة المنخفضة". يمكن للتطبيقات الآن تفعيل كلتا الميزتَين في الوقت نفسه على الأجهزة المتوافقة. (I5a638)
  • تم حلّ مشكلة كانت تؤدي إلى توقّف الأجهزة التي تتضمّن شرائح تعريف UniSoc عن العمل عند التقاط صورة. حدثت المشكلة عند استخدام VideoCapture وPreview وImageCapture في الوقت نفسه مع ضبط جميع أحداث البث على دقة 1280×720. (Ia00c4، b/380802479)
  • تم إصلاح مشكلة ظهور شاشة سوداء في المعاينة عند عدم ضبط عدد لقطات في الثانية للتسجيل عالي السرعة أو البطيء. (cdf0ff2e9)
  • تحسين معالجة الأخطاء وتسجيلها في getViewportAspectRatioInt (82fca18)

الإصدار ‎1.5.0-beta02

‫16 يوليو 2025

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

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

  • تمت إضافة واجهات برمجة تطبيقات جديدة لضبط مجموعات من الميزات العالية الجودة أو الاستعلام عنها بشكل أكثر سهولة ودقة، لأنّ هذه الميزات قد لا تكون متاحة كمجموعة على جميع الأجهزة. يحتوي SessionConfig الآن على واجهات برمجة تطبيقات جديدة للإشارة إلى مجموعة من الميزات على أنّها مطلوبة أو مفضّلة. تتيح واجهة برمجة التطبيقات CameraInfo.isFeatureGroupSupported معرفة ما إذا كانت مجموعة الميزات متوافقة قبل ربط SessionConfig. يتيح SessionConfig أيضًا ضبط مستمع لمعرفة الميزات التي تم اختيارها في النهاية عند ربط إعدادات الجلسة. (Ie4d60)
  • تمت إضافة واجهتَي برمجة التطبيقات الجديدتَين SessoinConfig.Builder.setFrameRateRange(Range<Integer>) وCameraInfo.getSupportedFrameRateRanges(SessionConfig)، ما يتيح للمطوّرين الاستعلام عن عدد اللقطات في الثانية المضمونة والمتوافقة والمقيّدة بـ SessionConfig معيّن، ثم تطبيق عدد اللقطات في الثانية على SessionConfig. (Ieacf7)
  • تم تقديم واجهة برمجة التطبيقات SessionConfig الجديدة، والتي تتضمّن تجريدًا أفضل لضبط حالات الاستخدام ومَعلمات الجلسة وCameraEffect وViewPort وما إلى ذلك. يؤدي ربط SessionConfig بـ LifecycleOwner إلى فتح جلسة الكاميرا وضبطها باستخدام حالات الاستخدام ومَعلمات الجلسة المحدّدة، وتطبيق CameraEffect وViewPort المحدّدَين. عند تحديث SessionConfig جديد إلى LifecycleOwner نفسه، يمكنك ربط Sessionconfig جديد بدون الحاجة إلى استدعاء إلغاء الربط أو unbindAll أولاً. (Iedfc3)
  • تمت إضافة واجهات برمجة تطبيقات جديدة لتسجيل فيديو عالي السرعة أو بالتصوير البطيء. لمزيد من التفاصيل، يُرجى الاطّلاع على واجهة برمجة التطبيقات HighSpeedVideoSessionConfig. (Ia16f3)

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

  • تم إصلاح مشكلة في واجهة برمجة التطبيقات ImageCaptureCapabilities#getSupportedOutputFormats() التي كانت تُبلغ عن توفّر تنسيقات RAW في بعض الأجهزة التي لا تتوافق معها. (Ibcadb)
  • تم إصلاح مشكلة تسرُّب الذاكرة التي تحدث عند استخدام PreviewView أو تفعيل CameraEffect أو ربط 4 حالات استخدام(StreamSharing) (I87468)
  • تم إصلاح عطل في تسجيل الفيديو بسبب AssertionError: حالة الصوت الداخلي غير صالحة: في وضع عدم النشاط. (I38d4b، b/414259796)
  • تم إصلاح المشكلة التي تحدث عندما يعمل التطبيق على شاشة خارجية ويكون الجهاز في الوضع الأفقي، حيث تصبح المعاينة في PreviewView ممتدة أو جانبية (Ia917a)
  • تم إصلاح المشكلة المتمثّلة في عدم تطبيق إعدادات "تثبيت المعاينة" بشكل صحيح عند مشاركة بث الكاميرا بين "المعاينة" وVideoCapture‏ (I5430e).
  • يعالج CameraXViewfinder الآن بشكل صحيح استبدال السطح في Viewfinder الأساسي. ويشمل ذلك حالات مثل نقل عدسة الكاميرا في EXTERNAL على مستوى واجهة برمجة التطبيقات 28 أو أقل خارج الشاشة أو إذا كان CameraXViewfinder (مع أي ImplementationMode) جزءًا من moveableContentOf(). في الحالات التي يتعذّر فيها إبقاء ViewfinderSurfaceSession الأساسي نشطًا، سيبطل CameraXViewfinder صلاحية SurfaceRequest الحالي في CameraX، ما يسمح لـ CameraX باستخدام Surface الجديد. (I79432)
  • تم إصلاح مشكلة في Android 10/11 حيث يمكن أن يظهر EXTERNAL CameraXViewfinder ممتدًا أو غير صحيح بسبب تطبيق عمليات التحويل (مثل تغيير الحجم أو الترجمة) في وقت مبكر جدًا. ينتظر النظام الآن إنشاء Surface قبل تطبيق هذه التحويلات في مرحلة التنسيق، ما يضمن الحصول على نتائج صحيحة. (Icc77c)
  • تعمل الدالة المركّبة CameraXViewfinder الآن بشكل صحيح مع Pager في Compose. يضمن هذا التغيير إمكانية إعادة ضبط الدالة المركّبة بنجاح من خلال تنفيذ دالة رد الاتصال onReset في AndroidView، ما يتيح تنفيذ كل من EMBEDDED وEXTERNAL. (I0d9be)
  • تم إصلاح تسرُّب في مالك مراحل النشاط يحدث عند إلغاء ربط حالات الاستخدام بمالك مراحل النشاط بدون إيقاف مزوّد الكاميرا.

الإصدار ‎1.5.0-beta01

‫7 مايو 2025

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

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

  • تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 من KGP أو إصدار أحدث (Idb6b5)
  • يمكن الآن استخدام ContentScale و"المحاذاة" في عدسة الكاميرا لتغيير حجم السطح المعروض ووضعه داخل الحاوية، على غرار طريقة عمل androidx.compose.foundation.Image. (Ibcea3)
  • يحتوي TransformationInfo الآن على قيم تلقائية لجميع الوسيطات. سيسمح ذلك بإنشاء عدسات الكاميرا بدون أي TransformationInfo، وسيتم ضبطها تلقائيًا على تدوير المصدر بمقدار 0، وعدم انعكاس المصدر، وعدم اقتصاص المستطيل. (I2b1b2)
  • تمت إضافة LifecycleCameraProvider، وهو موفّر كاميرا يمكن إنشاء مثيل له بإعدادات مختلفة لميزات مثل الوصول إلى كاميرا جهاز افتراضي من خلال ضبطه بسياق مخصّص. (Ia2992)

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

  • تم إصلاح مشكلة توقُّف المعاينة عند استخدام ImageAnalysis مع بث آخر يستخدم TEMPLATE_RECORD على جهاز Samsung SM-E556B. (Ic0e62، b/409478042)
  • تم إصلاح مشكلة توقُّف المعاينة عند استخدام ImageAnalysis مع بث آخر يستخدم TEMPLATE_RECORD على جهاز Samsung SM-M556B. (Ic1a6a، b/395822788)
  • تم إصلاح مشكلة "الوضع الليلي" (NIGHT) في "الإضافات" (AssertError) على أجهزة Pixel التي تعمل بنظام التشغيل Android 15 عند إجراء عمليات متعلّقة بالتكبير أو التصغير. (I27a5d، b/401460276)
  • تم إصلاح مشكلة إحداثيات المربّع المحيط غير الصحيحة في "محلّل حزمة تعلّم الآلة" عند استخدام CameraController. (Iae91b، b/409808510)

الإصدار 1.5.0-alpha06

‫26 فبراير 2025

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

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

  • تمت إضافة CameraInfo.getTorchStrengthLevel وCameraInfo.getMaxTorchStrengthLevel وCameraControl.setTorchStrengthLevel للسماح بتخصيص مستوى سطوع المصباح اليدوي (I00878)
  • تمت إضافة واجهة برمجة تطبيقات جديدة باسم CameraController#setTapToFocusAutoCancelDuration لكي يتمكّن المستخدمون من التحكّم في سلوك الإلغاء التلقائي لأحداث النقر للتركيز في PreviewView. بشكل تلقائي، تلغي CameraX أحداث التركيز بعد 5 ثوانٍ (أي تتم إعادة ضبط تركيز الكاميرا)، وتسمح واجهة برمجة التطبيقات هذه بتعديل هذه المدة أو إيقاف الإلغاء التلقائي تمامًا. (Icf59a)
  • تمت إعادة تسمية FLASH_STATE_READY إلى NOT_FIRED وتم تبسيط أسماء الثوابت الأخرى البالغ عددها FlashState لتسهيل قراءتها. (I8771d)
  • تم عرض واجهة برمجة التطبيقات Low Light Boost API. يمكن للأجهزة التي تعمل بنظام التشغيل Android 15 أو الإصدارات الأحدث توفير ميزة "تحسين الإضاءة المنخفضة". يمكن لهذه الميزة إجراء تعديل تلقائي لسطوع معاينة البث أو الفيديو أو تحليل الصور في ظروف الإضاءة المنخفضة. يمكن للتطبيقات استخدام واجهة برمجة التطبيقات الجديدة لإجراء ما يلي: 1. استخدِم CameraInfo#isLowLightBoostSupported للتحقّق من توفّر الميزة. 2. استخدِم CameraControl#enableLowLightBoostAsync لتفعيل الوضع عندما تكون الأجهزة متوافقة معه. 3- استخدِم CameraInfo#getLowLightBoostState لمراقبة حالة ميزة "تحسين الصورة في الإضاءة المنخفضة". (I937ed)
  • إضافة فئات التوافق للسماح بإجراء طلبات بحث أسرع غير Camera2 في camera-feature-combination-query (Ie97ee)
  • بالنسبة إلى أحداث النقر للتركيز في CameraController، تعرض واجهة برمجة التطبيقات الجديدة getTapToFocusInfoState() الآن موضع النقر المقابل أيضًا من خلال عرض LiveData من فئة TapToFocusInfo، بينما تم إيقاف واجهة برمجة التطبيقات السابقة التي تعرض LiveData<Integer> من فئة getTapToFocusState() نهائيًا لصالح واجهة برمجة التطبيقات الجديدة. (I238d2)

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

  • تم إصلاح مشكلة عدم تطبيق ميزة "تثبيت المعاينة" عند تفعيلها باستخدام الإضافات. (I24ad7)
  • تم إصلاح مشكلة عدم إعادة ضبط حدث حالة التركيز CameraController على TAP_TO_FOCUS_NOT_STARTED عندما تلغي CameraX تلقائيًا حدث تركيز يحدث بعد 5 ثوانٍ تلقائيًا. (I31954)
  • تم إصلاح مشكلة تجمُّد المعاينة عند استخدام ميزة "الالتقاط الفوري" (ZSL) بعد التقاط صور متعددة بسبب عدم توفّر موارد الصور. (Ic3c2a)
  • تم إصلاح المشاكل المتعلّقة بظهور فيديوهات UHD بلون أحمر على بعض الأجهزة عندما يتضمّن المسار OpenGL. (Idcedc)

الإصدار 1.5.0-alpha05

‫15 يناير 2025

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

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

  • يُرجى إضافة VideoCapture.getSelectedQuality() لمعرفة الجودة المحدّدة استنادًا إلى QualitySelector. (I70508، b/204288986)
  • عند استدعاء التقاط صورة باستخدام واجهة برمجة التطبيقات ImageCapture.OnImageCapturedCallback، يمكن الآن استخدام ImageInfo في ImageProxy المعروض لمعرفة ما إذا تم تشغيل الفلاش من خلال واجهة برمجة التطبيقات ImageInfo.getFlashState() الجديدة. (Id2c61، b/380527406)
  • تمت إضافة تنسيق الإخراج OUTPUT_IMAGE_FORMAT_NV21 لـ ImageAnalysis. (I484ab)
  • إزالة التعليق التوضيحي التجريبي من العنصر featurecombinationquery (I4427f)
  • يمكنك ضبط نطاق نسبة التكبير/التصغير المسموح به لـ "CameraControl" حسب الخصائص المتعلّقة بالإضافات عند تفعيل وضع الإضافات. (I85af1)

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

  • تمت ترقية compileSdk إلى 35 لاستخدام واجهة برمجة التطبيقات ذات الصلة بنظام التشغيل Android 15. ستحتاج التطبيقات التي تستخدم مكتبات CameraX أيضًا إلى ترقية إعدادات ضبط compileSdk. (Ic80cd)
  • تستخدم هذه المكتبة الآن تعليقات JSpecify التوضيحية للقيمة الفارغة، وهي من نوع الاستخدام. على مطوّري Kotlin استخدام وسيطة برنامج التجميع التالية لفرض الاستخدام الصحيح: -Xjspecify-annotations=strict (هذا هو الإعداد التلقائي بدءًا من الإصدار 2.1.0 من برنامج تجميع Kotlin). (Idc6c6، b/326456246)

الإصدار 1.5.0-alpha04

‫11 ديسمبر 2024

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

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

  • تم عرض ImageCapture.Builder#setOutputFormat وImageCaptureCapabilities#getSupportedOutputFormats كواجهات برمجة تطبيقات ثابتة (Ieb04a).
  • أضِف VideoCapture.getResolutionInfo() للحصول على معلومات الدقة عندما يكون VideoCapture مرتبطًا بدورة حياة. (Icb478)
  • تم عرض PreviewView.getScreenFlash وPreviewView.setScreenFlashOverlayColor كواجهات برمجة تطبيقات ثابتة. (I74fee)

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

  • تم إصلاح مشكلة تعذُّر التقاط الصور على جهاز Vivo 1610 أثناء التقاط صورة باستخدام الفلاش في الظلام. (I366f4)
  • تم إصلاح مشكلة إيقاف المصباح بشكل غير متوقّع بعد التقاط صورة في هاتف Redmi Note 6 Pro. (I2e0e8، b/377144569)
  • تم إصلاح مشكلة في أجهزة Pixel التي تعمل بنظام التشغيل Android 15، حيث تعذّر على "الوضع الليلي" في "الإضافات" التقاط صور ثابتة إلى أن تركّز الكاميرا على عنصر قريب. (I228d4)
  • تم إصلاح مشكلة تعطُّل التقاط الصور الثابتة عند تفعيل الإضافات وربط VideoCapture معًا. (I5c745)
  • تم تفعيل ميزة التقاط الصور الثابتة بدقة UltraHDR في "الإضافات" إذا كان الجهاز متوافقًا معها. (I48300)
  • تم إصلاح مشكلة توقيت الفلاش عند التقاط الصور باستخدام الفلاش مع استهداف CameraEffect لالتقاط الصور على أجهزة TCL. (I7698c)

الإصدار ‎1.5.0-alpha03

‫30 أكتوبر 2024

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

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

  • إضافة واجهات برمجة تطبيقات لتنسيق الإخراج لملفات RAW وRAW + JPEG ImageCapture، ويتم عرض عملية التحقّق من إمكانات الجهاز في ImageCaptureCapabilities#getSupportedOutputFormats. يُستخدَم الرمز OUTPUT_FORMAT_RAW لالتقاط صورة RAW، وهي بتنسيق Adobe DNG، ويُستخدَم الرمز OUTPUT_FORMAT_RAW_JPEG لالتقاط صور RAW وJPEG في الوقت نفسه. تُستخدَم واجهة برمجة التطبيقات الجديدة ImageCapture#takePicture لالتقاط الصور في الوقت نفسه، ويجب أن توفّر واجهتَي OutputFileOptions، الأولى لصورة RAW والثانية لصورة JPEG. (Ib0f3d)

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

  • تم إصلاح مشكلة المعاينة والفيديو غير المعرَّضَين للإضاءة الكافية على أجهزة TCL عند تفعيل ميزة "VideoCapture". (Id7a64)
  • تم إصلاح المشكلة المتمثّلة في أنّ استدعاء startFocusMetering باستخدام PreviewView.getMeteringPointFactory لا يؤدي إلى الحصول على إحداثيات أداة الاستشعار الصحيحة عند تفعيل تأثير أو عند ربط 4 حالات استخدام (مشاركة البث). (I916c5، b/345993685)
  • تم إصلاح مشكلة عدم بدء الحدث VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE عند تسجيل فيديو وعدم توفّر مساحة تخزين كافية. (I35779، b/356399842)

الإصدار ‎1.5.0-alpha02

‫2 أكتوبر 2024

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

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

  • واجهات برمجة تطبيقات جديدة للاستعلام عن ميزات الكاميرا المتوافقة مع الجهاز على سبيل المثال، التحقّق مما إذا كان من الممكن تفعيل HDR و60 لقطة في الثانية في الوقت نفسه. وتتضمّن هذه المكتبة عنصرَين: camera-feature-combination-query وcamera-feature-combination-query-play-services. هذا إصدار متوافق من واجهة برمجة التطبيقات CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported في Camera2 مع بيانات إضافية توفّرها "خدمات Google Play".

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

  • تم إصلاح مشكلة عدد اللقطات في الثانية المستهدَف البالغ Preview/VideoCapture على الأجهزة ذات المستوى LEGACY. كان يتم دائمًا استبدال عدد اللقطات في الثانية المستهدَف الذي تم ضبطه من خلال واجهة برمجة التطبيقات setTargetFrameRate أو Camera2Interop بالقيمة التي يوفّرها AeFpsRangeLegacyQuirk. من خلال هذا الإصلاح، ستلتزم مكتبة CameraX بالقيمة المحدّدة من خلال واجهة برمجة التطبيقات setTargetFrameRate أو Camera2Interop. (Ie2d32)
  • تمت إضافة وظائف الفلاش/المصباح/3A لالتقاط الصور باستخدام "CameraEffect". يجب أن تتضمّن عمليات التقاط الصور باستخدام CameraEffect الآن عمليات المعالجة نفسها قبل الالتقاط وبعده (مثل تشغيل الفلاش وتقارب 3A وما إلى ذلك عند الاقتضاء) مثل التقاط الصور بدون أي CameraEffect. (I5ff30)
  • تم استبعاد أحجام الإخراج التي تسبّب مشاكل في ImageAnalysis على جهاز Samsung SM-A057G. عندما يستخدم "ImageAnalysis" دقة أكبر من أو تساوي 1920x1440، سيؤدي ذلك إلى حدوث مشكلة في المعاينة السوداء. تم تطبيق ExcludedSupportedSizesQuirk على جهاز SM-A057G لتجنُّب المشكلة. (I63dfe، b/365877975)
  • تم إصلاح مشكلة عدد اللقطات المستهدَف في الثانية في Preview/VideoCapture عند تفعيل آلية مشاركة البث داخليًا لمشاركة بث مع Preview وVideoCapture. (I4fdac)
  • تم تفعيل الحل البديل لإصلاح مشكلة البيانات الوصفية غير الصحيحة لصور JPEG على أجهزة Samsung S10e وS10+‎. بعد تطبيق الإصلاح، يمكن لـ CameraX حفظ صورة JPEG بنجاح، أو يمكن عرض عناصر Bitmap الصحيحة عند استدعاء الدالة ImageProxy.toBitmap() على هذه الأجهزة في حال حدوث مشكلة البيانات الوصفية غير الصحيحة لصورة JPEG. (Iae493، b/356428987)
  • تم إيقاف الإضافات للكاميرا الخلفية في هاتف Samsung A52s التي تحمل رقم التعريف 0، لأنّه قد تحدث أعطال داخلية في نظام التشغيل عند التقاط صور بنطاق عالي الديناميكية (HDR)، وقد يتعذّر ضبط إعدادات جلسات الالتقاط في وضعَي "الخلفية الضبابية" أو "تجميل الوجه". (I03ec9، b/364152642)
  • تم إصلاح مشكلة عدم بدء الحدث VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE عند تسجيل فيديو وعدم توفّر مساحة تخزين كافية. (Ia5b4f، b/356399842)
  • تم إصلاح المشكلة المتمثّلة في تعذُّر محاولة تسجيل الفيديو الثانية على هاتف Oppo A5 (CPH1931). (I181d6)

الإصدار 1.5.0-alpha01

‫4 سبتمبر 2024

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

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

  • تم إصدار عنصر جديد، وهو camera-compose، لمحوّل CameraX Viewfinder Compose Adapter الذي يعرض بث معاينة من SurfaceRequest في CameraX من camera-core. (I8666e)
  • تمت إضافة دالة مركّبة جديدة، وهي CameraXViewfinder، تعمل كدالة مركّبة اصطلاحية تكيّف SurfaceRequest في CameraX مع الدالة المركّبة Viewfinder. (I4770f)

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

  • توفير واجهة برمجة تطبيقات لضبط إعدادات التركيب لتسجيل الفيديو من كاميرتَين متزامنتَين وتشمل الإعدادات قيمة ألفا للدمج، والإزاحة في إحداثيات x وy، ومقياس عرض وارتفاع نافذة عرض إطار الكاميرا. يتم تحديد الإزاحة والعرض والارتفاع في إحداثيات الجهاز التي تم تطبيعها. (Ia2b8a)
  • تم عرض CameraProvider.getCameraInfo لتكون واجهة برمجة تطبيقات رسمية. (I901cd)
  • تمت إضافة واجهة برمجة التطبيقات PendingRecording.withAudioEnabled(boolean initialMuted) للتحكّم في حالة كتم الصوت الأولية. (I635c3، b/354829267)

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

  • تم إصلاح مشكلة التعطُّل عند استدعاء bindToLifecycle باستخدام LifecycleOwner تم تدميره. (I6e6d8)
  • تم إصلاح مشكلة ظهور شاشة سوداء في المعاينة في الكاميرا الأمامية أثناء الربط مع VideoCapture على جهاز Motorola Edge 20 Fusion. (I1fe88)
  • تم تحسين إعدادات رصد إيماءات التكبير في "PreviewView" لتحسين السلاسة. (I04ffc)

الإصدار 1.4 من تطبيق "الكاميرا"

الإصدار 1.4.2

‫26 مارس 2025

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

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

  • تم إصلاح مشكلة تجمُّد المعاينة عند استخدام ImageAnalysis مع بث آخر يستخدم TEMPLATE_RECORD على Samsung Galaxy M55. (Ic1a6a، b/395822788)

الإصدار 1.4.1

‫11 ديسمبر 2024

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

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

  • تم إصلاح مشكلة في أجهزة Pixel التي تعمل بنظام التشغيل Android 15، حيث تعذّر على "الوضع الليلي" في "الإضافات" التقاط صور ثابتة إلى أن تركّز الكاميرا على عنصر قريب. (I228d4)
  • تم إصلاح مشكلة تعطُّل ImageCapture#takePicture عند تفعيل الإضافات وربط VideoCapture معًا. (I5c745)

الإصدار 1.4.0

‫30 أكتوبر 2024

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

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

يقدّم الإصدار 1.4.0 من CameraX تحديثات رائعة. ويمكن تلخيصها كالتالي:

الميزة الرئيسية: فيديو 10 بت بنطاق HDR:

  • التقِط صورًا وفيديوهات مذهلة بتقنية النطاق العالي الديناميكية (HDR) بسهولة.
  • يتيح ترميز HLG وHEVC ‏10 بت.
  • استمتِع بمعاينة فيديو 10 بت بنطاق عالي الديناميكية (HDR) واستعلم عن إمكانات الجهاز.
  • تعمل مع صور UltraHDR وفيديوهات HDR على مجموعة متزايدة من الأجهزة.

ميزات رائعة أخرى:

  • إضافات Kotlin: تمت إضافة دالّتَي التعليق takePicture وawaitInstance.
  • التأثيرات في الوقت الفعلي: يمكنك تطبيق تأثيرات مثل العلامات المائية وتمييز العناصر.
  • واجهة CameraController API: عناصر تحكّم جديدة لضبط إعدادات تسجيل الفيديو
  • تثبيت المعاينة: يمكنك الاستعلام عن إمكانات الجهاز وتفعيل ميزة التثبيت.
  • تحسينات على VideoCapture: تحكّم أكثر دقة في الجودة والوصول إلى درجات دقة أعلى
  • دمج إضافات CameraX: دمج سلس مع ميزات "VideoCapture" وميزات "ImageCapture" الجديدة
  • واجهة Shutter Sound API: تتيح لك التحقّق بسهولة من متطلبات صوت الالتقاط حسب المنطقة.
  • وميض الشاشة: تم تحسين الصور في الإضاءة المنخفضة للكاميرات الأمامية.
  • واجهات برمجة التطبيقات الخاصة بالبيانات الوصفية لإضافات الكاميرا: واجهات برمجة تطبيقات داعمة لضبط قوة الإضافات والحصول على إشعار بوضع الإضافات الحالي في ExtensionMode#AUTO يمكنك العثور على المزيد من إصلاحات الأخطاء في إشعارات الإصدار التجريبي والإصدار المرشّح.

الإصدار 1.4.0-rc04

‫16 أكتوبر 2024

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

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

  • تم إصلاح المشكلة المتمثّلة في أنّ استدعاء startFocusMetering باستخدام PreviewView.getMeteringPointFactory لا يؤدي إلى الحصول على إحداثيات أداة الاستشعار الصحيحة عند تفعيل تأثير أو عند ربط 4 حالات استخدام (مشاركة البث). (I916c5، b/345993685)

الإصدار ‎1.4.0-rc03

‫2 أكتوبر 2024

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

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

  • تمت إضافة وظائف الفلاش/المصباح/3A لالتقاط الصور باستخدام "CameraEffect". يجب أن تتضمّن عمليات التقاط الصور باستخدام CameraEffect الآن عمليات المعالجة نفسها قبل الالتقاط وبعده (مثل تشغيل الفلاش وتقارب 3A وما إلى ذلك عند الاقتضاء) مثل التقاط الصور بدون أي CameraEffect. (I5ff30)
  • تم تحسين سلاسة ميزة "التكبير أو التصغير بإصبعين" في PreviewView (I04ffc)
  • فصل ميزة "دقة 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. ظهرت المشكلة بعد ترقية AGP إلى الإصدار 8.5.1 وتفعيل ميزة إزالة البيانات غير الضرورية، وهي ناتجة عن مشكلة في تحويل Camera2OutputConfigImpl في وضع الإصدار. (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" على بعض الأجهزة. (مثلاً، ‎4000x3000 على هاتف Samsung A32 5G). (Ie3ed3، b/337336152)
  • تم إصلاح عطل يحدث عند التقاط صورة باستخدام ميزة "المعاينة"، وتم ربط ImageCapture وVideoCapture(UHD) على هاتف Pixel 4XL API29. (I5b288)
  • دعم الأجهزة الافتراضية: سيحتفظ السياق الذي تم تمريره إلى ProcessCameraProvider برقم تعريف الجهاز لضمان عمله في بيئة الأجهزة الافتراضية. (I5ba48)

الإصدار ‎1.4.0-alpha05

‫17 أبريل 2024

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

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

  • تم تحويل ProcessCameraProvider إلى تنفيذ Kotlin. (I46d4f)
  • تمت إضافة دوال تعليق ImageCapture.takePicture للسماح باستدعائها بطريقة Kotlin الاصطلاحية. (I920be)

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

  • إضافة واجهات برمجة تطبيقات لتنسيق الإخراج إلى ImageCapture، وإضافة طريقة getSupportedOutputFormats إلى ImageCaptureCapabilities لطلب البحث عن إمكانات الجهاز قيمة تنسيق الإخراج التلقائية هي OUTPUT_FORMAT_JPEG، والتي تلتقط صورًا بنطاق عادي ديناميكية (SDR) بتنسيق JPEG. عندما يتيح الجهاز دقة HDR الفائقة ويتم ضبط تنسيق الإخراج على OUTPUT_FORMAT_JPEG_ULTRA_HDR، ستلتقط CameraX صورًا مضغوطة بدقة HDR الفائقة باستخدام تنسيق الصورة JPEG/R. يتوافق هذا التنسيق مع تنسيق SDR JPEG القديم ويتيح عرض المحتوى بتقنية النطاق العالي الديناميكية (HDR). وهذا يعني أنّ الصور تظهر بسلاسة على التطبيقات أو الأجهزة القديمة بتنسيق JPEG عادي، بينما تظهر بتقنية النطاق العالي الديناميكية (HDR) على التطبيقات والأجهزة التي تم تحديثها لتتوافق بشكل كامل مع هذا التنسيق. (I5de50)
  • إضافة PhysicalCameraInfo في CameraInfo لطلب معلومات الكاميرا المادية وإضافة دالة setter/getter لمعرّف الكاميرا المادية في CameraSelector (Ic5b90)
  • استبدِل CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED بـ ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. تظل قيمة الثابت كما هي. هذا لدمج جميع الثوابت في مكان واحد. (I890bb)
  • تتيح واجهة برمجة التطبيقات الجديدة RetryPolicy للمطوّرين تخصيص سلوك إعادة المحاولة لتهيئة CameraX. (I36dd2)
  • تفعيل إنشاء عنصر ImageCaptureLatencyEstimate للمساعدة في قابلية الاختبار (Iaba99)
  • أضِف ImageAnalysis#COORDINATE_SYSTEM_SENSOR. عند استخدام هذه السمة، تعرض السمة MlKitAnalyzer الإحداثيات في نظام إحداثيات أداة استشعار الكاميرا. (I3ec61)
  • تم عرض واجهة برمجة التطبيقات الخاصة بالبيانات الوصفية للإضافات. تسمح واجهتا CameraExtensionsInfo وCameraExtensionsControl الجديدتان للتطبيقات بمراقبة إعدادات قوة الإضافة وضبطها. يمكن للتطبيقات الحصول على مثيل CameraExtensionsInfo أو CameraExtensionsControl من خلال طريقتَي ExtensionsManager#getCameraExtensionsInfo() أو ExtensionsManager#getCameraExtensionsControl() اللتين تمت إضافتهما حديثًا. (I28e1a)
  • تمت إضافة ProcessCameraProvider.awaitInstance، وهو إصدار معلّق من ProcessCameraProvider.getInstance (Ib22b9)
  • أضِف واجهة برمجة تطبيقات PreviewView#getSensorToViewTransform(). تمثّل المصفوفة عملية التحويل من إحداثيات أداة استشعار الكاميرا إلى إحداثيات PreviewView. يمكن استخدام هذه السمة لتحويل الإحداثيات من UseCase إلى آخر. على سبيل المثال، تحويل إحداثيات العناصر التي تم رصدها في ImageAnalysis إلى تراكب PreviewView. (I947ab)
  • جعل واجهة برمجة التطبيقات camera-viewfinder-core أكثر عمومية بحيث يمكن استخدامها من قِبل camera-viewfinder وcamera-viewfinder-compose. (I1e295)
  • أضِف دالة getSurface إلى ViewfinderSurfaceRequest. (I781a0)
  • استخدِم camera-viewfinder-core في camera-viewfinder وأوقِف نهائيًا ViewfinderSurfaceRequest وCameraViewfinder. (I6198c)
  • تمت إضافة ZoomGestureDetector الذي يفسّر إيماءات تغيير الحجم التي تم ضبطها خصيصًا لنشاط التصغير أو التكبير بإصبعين. (Ifafbf)

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

  • تم إصلاح مشكلة اختيار دقة ImageAnalysis المرتبطة بإعداد الدقة المستهدَفة التلقائية للمحلّل: تم الاحتفاظ بالدقة المستهدَفة بشكل غير صحيح على أنّها 640x480 حتى إذا ضبطت التطبيقات إعدادًا مختلفًا للدقة التلقائية للمحلّل. إذا واجهت التطبيقات هذه المشكلة (1.3.0 ~ 1.3.2) وتعذّرت ترقيتها لاستخدام الإصدارات الأحدث التي تحتوي على الحلّ، يمكن حلّ هذه المشكلة من خلال ضبط ResolutionSelector مباشرةً باستخدام الدقة المفضّلة وAspectRatioStrategy مطابقة لـ ImageAnalysis UseCase. (I81f72، b/330091012)
  • تم إصلاح مشكلة تعذُّر تنفيذ طلب takePicture في قائمة الانتظار في حال تعذُّر تنفيذ الطلب الحالي. (Ie0801)
  • تطبيق عملية التحقّق من بيانات JPEG غير الصالحة على أجهزة Vivo X60 وX60 Pro يمكن أن يؤدي ذلك إلى حلّ مشكلة الصور الكبيرة بشكل غير طبيعي على هذه الأجهزة. (I82247، b/288828159)
  • تم إصلاح مشكلة البيانات الوصفية غير الصحيحة لصور JPEG على أجهزة Samsung A24. من خلال هذا الإصلاح، يمكن لـ CameraX حفظ صورة JPEG بنجاح، أو يمكن عرض عناصر Bitmap الصحيحة عند استدعاء دالة ImageProxy.toBitmap() على أجهزة Samsung A24. (I8d6eb، b/309005680)
  • تطبيق عملية التحقّق من بيانات JPEG غير الصالحة على جميع أجهزة Samsung إذا كانت الصورة الملتقَطة أكبر من 10 ميغابايت يمكن أن يؤدي ذلك إلى حلّ مشكلة الصور الكبيرة بشكل غير طبيعي على أجهزة Samsung. (Ic2a65، b/288828159)
  • تمت إزالة ميزة "ImageAnalysis" من إضافات CameraX لأنّ عمليات تنفيذ الإضافات في العديد من المصنّعين الأصليين للأجهزة لا تعمل بشكل جيد مع ميزة "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)
  • تمت إضافة ميزة "وميض الشاشة" في CameraX لالتقاط الصور بالكاميرا الأمامية. ستتولى CameraX معالجة واجهة برمجة التطبيقات من جهة إطار العمل ومزامنة التوقيت مع تغييرات واجهة المستخدم في التطبيق حسب الحاجة (على سبيل المثال، مشغّل الالتقاط المُسبَق للتعرّض التلقائي بعد تغيير لون/سطوع شاشة التطبيق). ستحتاج التطبيقات فقط إلى إضافة عمليات تنفيذ واجهة المستخدم في واجهة ScreenFlashUiControl المقدَّمة إلى CameraX. (I8ae84)
  • تمت إضافة ميزة "وميض الشاشة" من جهة واجهة المستخدم في CameraX. ستتمكّن التطبيقات من الحصول على تنفيذ أساسي لـ "ImageCapture.ScreenFlashUiControl" من "PreviewView" أو "ScreenFlashView" المُضاف حديثًا، ما سيؤدي إلى إضافة عرض تراكُب أحادي اللون وزيادة سطوع الشاشة إلى أقصى حد أثناء التقاط الصور باستخدام وميض الشاشة. (I1810e)

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

  • إتاحة ميزات الإضافات الجديدة(مرحلة ما بعد العرض ومستوى تقدّم عملية الالتقاط): تمت إضافة واجهات برمجة تطبيقات ImageCapture#getImageCaptureCapabilities() للتطبيقات من أجل الاستعلام عن إمكانات مرحلة ما بعد العرض ومستوى تقدّم عملية الالتقاط. يمكن للتطبيقات تفعيل ميزة "العرض اللاحق" باستخدام ImageCapture.Builder#setPostviewEnabled(). يمكن اختيار حجم العرض بعد النقر باستخدام ImageCapture.Builder#setPostviewResolutionSelector(). عند استدعاء takePicture()، يمكن تنفيذ onPostviewBitmapAvailable وonCaptureProcessProgressed في OnImageSavedCallback أو OnImageCapturedCallback للحصول على إشعار تقدّم المعالجة والعرض اللاحق إذا كان ذلك متاحًا. (I5cd88)
  • واجهات برمجة تطبيقات لحساب تحويل الإحداثيات من أداة الاستشعار إلى المخزن المؤقت الحالي، مع علامة تشير إلى ما إذا كان السطح يحتوي على معلومات اتجاه الكاميرا (I59096)
  • إتاحة واجهة برمجة التطبيقات لطلب البحث عن PreviewCapabitlity في الإصدار الأولي UseCase (Ie5b6c)
  • تمت إضافة واجهات برمجة تطبيقات لإتاحة المزيد من مستويات الجودة في "VideoCapture". يمكن استخدام Recorder.Builder#setVideoCapabilitiesSource(int) مع VIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES لإنشاء مثيل Recorder يتيح استخدام سمات أكثر من VIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE. من حالات الاستخدام الشائعة عندما يسعى التطبيق إلى تسجيل فيديو بدقة فائقة كلما أمكن ذلك، ولكن لا يتضمّن CamcorderProfile في الجهاز إعدادات الدقة الفائقة، على الرغم من أنّ برنامج الترميز قادر على تسجيل فيديو بدقة فائقة. (Iedbe2، b/263961771)
  • إضافة دالة getter/setter لتنسيق الناتج ImageAnalysis إلى CameraController (I9a96c، b/308240643)

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

  • من الكاميرا 1.3.1: تم تحسين أداء ProcessCameraProvider#bindToLifecycle(). يتمثّل التغيير الرئيسي في تحسين عملية تحديد مجموعات المقاسات الأنسب لـ "UseCases". تختلف النتائج المثلى استنادًا إلى مجموعات UseCase المحدّدة وعدد أحجام الإخراج المتوافقة مع أجهزة الاختبار. (I454f2)
  • السماح باستخدام "VideoCapture" عندما تكون الإضافات مفعَّلة (I91f32)
  • تم إصلاح مشكلة التقاط صور JPEG كبيرة الحجم على أجهزة Samsung من السلسلتَين A71 وM51. تحتوي صور JPEG التي تم التقاطها على بيانات حشو زائدة من الأصفار في قسم بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن تكون الصور الملتقَطة بحجم ملف كبير جدًا. ستتم إزالة بيانات المساحة المتروكة الزائدة التي تحتوي على أصفار لكي تصبح أحجام ملفات الصور الملتقَطة عادية. (I01afc، b/288828159)
  • إيقاف ميزة ImageAnalysis على أجهزة Pixel لتجنُّب الخطأ الذي يعرض عن طريق الخطأ الأحجام غير الفارغة المتوافقة مع ImageAnalysis (I7ec31)
  • تم إصلاح مشكلة في الأداء حيث زاد تحميل وحدة المعالجة المركزية واستهلاك الطاقة عند تفعيل الإضافات. (Ibdccb)
  • تمت إضافة Snapdragon 480 إلى CameraUseInconsistentTimebaseQuirk. يؤدي ذلك إلى حلّ مشكلة في Android 12 على الأجهزة التي تستخدم شريحة التعريف هذه، حيث يتم تعويض الصوت في التسجيلات بمقدار الوقت الذي يكون فيه الجهاز في حالة تعليق. (I58010)

الإصدار 1.4.0-alpha02

‫18 أكتوبر 2023

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

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

  • أعِد تسمية واجهة برمجة التطبيقات إلى setCameraOpenRetryMaxTimeoutInMillisWhileResuming وأعِد تسمية الوسيطة. (I72370)
  • إضافة واجهات برمجة تطبيقات للاستعلام عن إمكانات الجهاز وتفعيل ميزة تثبيت الفيديو/المعاينة (I87544)
  • توفير واجهة برمجة تطبيقات لتخصيص الحد الأقصى لمهلة إعادة محاولة فتح الكاميرا (I0c642)
  • تم إصدار ProcessCameraProvider.shutdownAsync كواجهة برمجة تطبيقات عامة للاختبار من أجل السماح باستخدام موفّر الكاميرا في العملية في الحزم الاختبارية التي قد تحتاج إلى إعداد CameraX بطرق مختلفة بين الاختبارات. (I9eca7)
  • إضافة واجهات برمجة تطبيقات لضبط النطاق الديناميكي لالتقاط الفيديو وعدد اللقطات في الثانية ووضع المرآة (Ifb8f7)
  • إيقاف OutputSize نهائيًا واستبداله بـ ResolutionSelector توفّر واجهة برمجة التطبيقات ResolutionSelector طريقة أكثر شمولاً لاختيار درجات الدقة، وهي متوافقة مع واجهة برمجة التطبيقات camera-core. (I93abd، b/286801438)

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

  • تم إصلاح مشكلة ظهور معاينة سوداء على هاتف Samsung Galaxy S23 Ultra 5G عند تفعيل ميزة "الخلفية الضبابية" أو "تجميل الوجه" في الإضافات مع استخدام ميزة "ImageAnalysis" في الكاميرا الخلفية. (I2e8b1)
  • تم إصلاح مشاكل المعاينة الثابتة وVideoCapture الممتدة على Moto E5 Play. (73dce2)

الإصدار 1.4.0-alpha01

‫20 سبتمبر 2023

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

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

  • إضافة واجهة برمجة تطبيقات جديدة للوصول إلى معلومات سعة الصوت أثناء التسجيل (Id4925)

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

  • تحسين ثبات الإضافات من خلال التأكّد من بدء أحداث الإعداد وإلغاء الإعداد بالترتيب الصحيح (Ib3b8e)
  • تم إصلاح مشكلة تعذُّر ضبط جلسة الالتقاط بسبب تجاوز مجموعة الأسطح المتوافقة نتيجة إضافة سطح متكرّر إضافي داخليًا. (Id718c)
  • تم إصلاح مشكلة التقاط صور JPEG كبيرة الحجم على جهاز Vivo S16. تحتوي صور JPEG التي تم التقاطها على بيانات حشو زائدة من الأصفار في قسم بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن تكون الصور الملتقَطة ذات حجم ملف كبير. ستتم إزالة بيانات المساحة المتروكة الزائدة التي تحتوي على أصفار لكي تصبح أحجام ملفات الصور الملتقَطة عادية. (I79505، b/299069235)
  • تم إصلاح المشكلة المتمثّلة في تعذُّر ربط ImageAnalysis مع ImageCapture و"المعاينة" عند تفعيل بعض أوضاع الإضافة على بعض الأجهزة. سيؤدي هذا الإصلاح إلى عرض القيمة الصحيحة عندما تطلب التطبيقات معلومات عن مدى توفّر ImageAnalysis من خلال ExtensionsManager#isImageAnalysisSupported(). (I7d538)
  • يُرجى تعديل JavaDoc لمطابقة السلوك. بدلاً من الإكمال فورًا، تنتظر #setZoomRatio و#setLinearZoom و#enableTorch حتى تصبح الكاميرا جاهزة. تمت أيضًا إضافة معلومات حول كيفية الحصول على الحد الأقصى لمجال الرؤية باستخدام واجهة برمجة التطبيقات #takePicture. (I23588)

الإصدار 1.3

الإصدار 1.3.4

‫12 يونيو 2024

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

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

  • تم إصلاح المشكلة المتمثّلة في عرض getZoomRatio لقيمة منخفضة بشكل غير صحيح عند تطبيق نسبة تكبير متزايدة. (I4aa0d، b/317543616)
  • تم إصلاح مشكلة عدم استخدام ميزة "التقاط صورة ثابتة" أو "النقر للتركيز" لقيم وضع التثبيت أو عدد اللقطات في الثانية للطلب المتكرر، ما قد يؤدي إلى إعادة إنشاء جلسة الالتقاط والتسبب في مشاكل في وقت الاستجابة أو تجميد المعاينة في بعض الأجهزة. (I7dc0b)
  • تم إصلاح المشكلة المتمثّلة في ضبط عدد اللقطات في الثانية على قيمة أقل عند استدعاء setTargetFrameRate باستخدام FRAME_RATE_RANGE_UNSPECIFIED. (I78c61)

الإصدار 1.3.3

‫17 أبريل 2024

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

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

  • تم إصلاح مشكلة اختيار دقة ImageAnalysis المرتبطة بإعداد الدقة المستهدَفة التلقائية للمحلّل: تم الاحتفاظ بالدقة المستهدَفة بشكل غير صحيح على أنّها 640x480 حتى إذا ضبطت التطبيقات إعدادًا مختلفًا للدقة التلقائية للمحلّل. إذا واجهت التطبيقات هذه المشكلة (الإصدارات من 1.3.0 إلى 1.3.2) وتعذّرت ترقيتها لاستخدام الإصدارات الأحدث التي تحتوي على الحلّ، يمكن حلّ هذه المشكلة من خلال ضبط ResolutionSelector مباشرةً باستخدام درجة الدقة المفضّلة وAspectRatioStrategy مطابقة لحالة الاستخدام ImageAnalysis. (I81f72، b/330091012)

الإصدار 1.3.2

‫6 آذار (مارس) 2024

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

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

  • تم إصلاح مشكلة في البيانات الوصفية لملفات JPEG على أجهزة Samsung A24. تحفظ مكتبة CameraX الآن الصور بدقة، وتُرجع الدالة ImageProxy.toBitmap() كائنات Bitmap صحيحة. (I8d6eb، b/309005680)
  • تمت إزالة خيار الدقة 9280x6944 على أجهزة Redmi Note 9 Pro بسبب مشاكل. (Ia23da)

الإصدار 1.3.1

‫13 ديسمبر 2023

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

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

تم تحسين أداء "ProcessCameraProvider#bindToLifecycle()". يتمثّل التغيير الرئيسي في تحسين عملية تحديد مجموعات المقاسات الأنسب لـ "UseCases". تختلف النتائج المثلى استنادًا إلى مجموعات UseCase المحدّدة وعدد أحجام الإخراج المتوافقة مع أجهزة الاختبار. (I454f2)

في ما يلي بعض النتائج المرجعية لسيناريوهات مختلفة:

  • ‫UseCases: Preview + ImageCapture + ImageAnalysis + VideoCapture

    • ‫Google Pixel 7: من 430 ملي ثانية إلى 60 ملي ثانية تقريبًا
    • ‫Samsung Galaxy S23 Ultra: من 540 ملي ثانية إلى 45 ملي ثانية تقريبًا
    • ‫Samsung A53 5G: من 115 ملي ثانية إلى 70 ملي ثانية تقريبًا
  • ثلاثة UseCases: Preview + ImageCapture + ImageAnalysis

    • ‫Google Pixel 7: من 9 إلى 7 ملّي ثانية تقريبًا
    • ‫Samsung Galaxy S23 Ultra: من 6 إلى 5 ملي ثانية تقريبًا
    • ‫Samsung A53 5G: من 32 ملي ثانية إلى 12 ملي ثانية تقريبًا
  • تمت إضافة Snapdragon 480 إلى CameraUseInconsistentTimebaseQuirk. يؤدي ذلك إلى حلّ مشكلة في Android 12 على الأجهزة التي تستخدم شريحة التعريف هذه، حيث يتم تعويض الصوت في التسجيلات بمقدار الوقت الذي يكون فيه الجهاز في حالة تعليق. (I58010)

الإصدار 1.3.0

‫18 أكتوبر 2023

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

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

الإصدار 1.3.0-rc02

‫20 سبتمبر 2023

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

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

  • تحسين ثبات الإضافات من خلال التأكّد من بدء أحداث الإعداد وإلغاء الإعداد بالترتيب الصحيح تم حلّ بعض مشاكل المعاينة السوداء عند تبديل أوضاع الإضافات أو تبديل الكاميرات. (Iddaac)
  • تم إصلاح المشكلة المتمثّلة في تعذُّر ربط ImageAnalysis مع ImageCapture و"المعاينة" عند تفعيل بعض أوضاع الإضافة على بعض الأجهزة. سيؤدي الإصلاح إلى عرض القيمة الصحيحة عندما تطلب التطبيقات توفّر ImageAnalysis عبر ExtensionsManager#isImageAnalysisSupported(). (I7d538)
  • تم إصلاح مشكلة عدم مزامنة الصوت والفيديو المسجَّلين عند تفعيل وضع المرآة على جهاز Xiaomi Poco X3 NFC. (I20b4c)

الإصدار 1.3.0-rc01

‫23 أغسطس 2023

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

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

  • تمت إضافة PendingRecording.asPersistentRecording للسماح بمواصلة التسجيل أثناء إعادة ربط جهاز VideoCapture المتصل به "المسجّلة الذكية". (I517c6)

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

  • تم إصلاح عطل يحدث عند مشاركة بث مع كل من VideoCapture و"المعاينة". تم أيضًا إصلاح مشكلة الشاشة السوداء على الأجهزة القديمة عند تفعيل ميزة مشاركة البث.
  • تم إصلاح مشكلة التقاط صور JPEG كبيرة الحجم على أجهزة Samsung S7 (SM-G930T وSM-G930V). تحتوي صور JPEG التي تم التقاطها على بيانات حشو زائدة من الأصفار في قسم بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن تكون الصور الملتقَطة ذات حجم ملف كبير. ستتم إزالة بيانات المساحة المتروكة الزائدة التي تحتوي على أصفار لكي تصبح أحجام ملفات الصور الملتقَطة عادية. (I407b0، b/288828159)
  • تم إصلاح مشكلة التقاط صور JPEG كبيرة الحجم على أجهزة Samsung S22 ‏ (SM-S901B وSM-S901B/DS) وS22+‎ ‏ (SM-S906B). تحتوي صور JPEG التي تم التقاطها على بيانات حشو زائدة من الأصفار في قسم بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن يكون حجم ملف الصور الملتقَطة كبيرًا، أي حوالي 13 ميغابايت على جهاز S22 SM-S901B/DS. ستتم إزالة بيانات المساحة المتروكة الزائدة التي تحتوي على أصفار لكي تصبح أحجام ملفات الصور الملتقَطة عادية. (I73be9، b/288828159)
  • تم إصلاح مشكلة التقاط صور JPEG كبيرة الحجم على أجهزة Samsung من السلسلة A5 وA52 وA70 وA72. تحتوي صور JPEG التي تم التقاطها على بيانات حشو زائدة من الأصفار في قسم بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن يكون حجم الصور الملتقَطة كبيرًا جدًا (مثلاً حوالي 32 ميغابايت أو حتى 96 ميغابايت). ستتم إزالة بيانات الحشو الزائدة التي تحتوي على أصفار لكي تصبح أحجام ملفات الصور الملتقَطة عادية. (I97c4d، b/288828159)
  • تم إصلاح العطل الداخلي في نظام التشغيل عند التقاط صور مع تفعيل الإضافات (I698f5)

الإصدار ‎1.3.0-beta02

‏26 تموز (يوليو) 2023

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

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

  • استخدام المصباح اليدوي كفلاش في طرازات Pixel 4 و5 لتحسين جودة التقاط الصور في الإضاءة المنخفضة (I56ff5، b/280221967)
  • تم إصلاح مشكلة التقاط صور JPEG كبيرة الحجم على أجهزة Samsung من السلسلة A5 (2017). تحتوي صور JPEG التي تم التقاطها على بيانات حشو زائدة من الأصفار في قسم بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن يكون حجم ملف الصور الملتقَطة حوالي 32 ميغابايت. ستتم إزالة بيانات المساحة المتروكة الزائدة التي تحتوي على أصفار لجعل الصور الملتقَطة ذات أحجام ملفات صور عادية. (I29837، b/288828159)
  • تم إصلاح مشكلة عدم بدء إعادة المحاولة بشكل صحيح في حال تعذُّر الالتقاط في الأجهزة التي بها مشاكل والمذكورة في CaptureFailedRetryQuirk. (I7b589)

الإصدار ‎1.3.0-beta01

‫21 حزيران (يونيو) 2023

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

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

  • تمت إعادة تسمية الدالة ResolutionSelector.Builder#setHighResolutionEnabledFlag(int) إلى setAllowedResolutionMode وإعادة تسمية الثوابت ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON إلى PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE. (If84e8)
  • تمت إزالة واجهات برمجة التطبيقات المتوقفة نهائيًا ImageAnalysis.setTargetRotationDegrees(int) وImageCapture.setTargetRotationDegrees(int) وVideoCapture.setTargetRotationDegrees(int). (Id8e77)
  • تمثّل الفئة DynamicRange النطاق الديناميكي للصور. يمكن استخدام هذا الخيار لتحديد تنسيقات النطاق العالي الديناميكية كناتج من VideoCapture إلى VideoCapture.Builder#setDynamicRange(). (Ib0377)
  • تمت إضافة واجهة برمجة تطبيقات isImageAnalysisSupported إلى ExtensionsManager يمكن للتطبيقات من خلالها تحديد ما إذا كان يمكن ربط حالة استخدام ImageAnalysis مع "المعاينة" وImageCapture عند تفعيل "الإضافات". (I1bc63)
  • يمكن استخدام فئة VideoCapabilities الجديدة التي تم الحصول عليها من Recorder للاستعلام عن النطاقات الديناميكية ودرجات الجودة المتوافقة لتسجيل الفيديو على الجهاز. سيتم إيقاف الدالتين getSupportedQualities() وisQualitySupported() في QualitySelector نهائيًا. يُرجى استخدام الطريقتَين getSupportedQualities() وisQualitySupported() في VideoCapabilities بدلاً من ذلك. (I04014)
  • تمت إعادة تسمية CameraController#setVideoCaptureTargetQuality() إلى setVideoCaptureQualitySelector، وهي تأخذ الوسيطة QualitySelector التي توفّر مرونة أكبر في إعداد جودة الفيديو. يتم تغيير CameraController#getVideoCaptureTargetQuality() إلى getVideoCaptureQualitySelector وفقًا لذلك. (I520ed)
  • تمت إزالة التعليق التوضيحي التجريبي لميزات الفيديو. أصبحت ميزات الفيديو مستقرة الآن. (I1a113)

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

  • استخدِم الكشاف كفلاش في طُرز Samsung SM-A320 لتحسين السرعة وجودة الصورة الملتقَطة في الإضاءة المنخفضة. (I6a022، b/286190938)
  • إضافة دعم لتنسيق ImageFormat.JPEG في ImageProxy.toBitmap() إذا تعذّر فك ترميز مصفوفة بايت JPEG، سيتم عرض UnsupportedOperationException. (I81958، b/282057603)

الإصدار 1.3.0-alpha07

‫24 مايو 2023

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

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

  • تتيح واجهة برمجة التطبيقات VideoCapture.Builder# setTargetFrameRate(Range) الجديدة التقاط تسجيلات الفيديو بمعدّلات عدد اللقطات في الثانية الأخرى غير المعدّل التلقائي للجهاز. يمكن الاستعلام عن عدد اللقطات في الثانية المتاحة للتسجيلات من خلال واجهة برمجة التطبيقات CameraInfo#getSupportedFrameRates() الجديدة.

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

  • تمت إعادة تسمية الثوابت ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ON إلى ALLOWED_RESOLUTIONS_NORMAL/SLOW وإعادة تسمية اسم دالة أداة الإنشاء setHighResolutionEnabledFlag إلى setAllowedResolutionMode. (Iae817)
  • تعرض الدالة CameraInfo#getSupportedFrameRateRanges() الآن Set بدلاً من List لتمثيل النطاقات غير المرتبة بشكل أفضل. (I02f43)
  • يجب إضافة مستمع للأخطاء إلى CameraEffect لمعالجة الأخطاء غير القابلة للإصلاح (Ice471)
  • إضافة طريقة وضع تصميم عامة في ResolutionInfo لتحسين إمكانية الاختبار (If6d1c)
  • تم توفير واجهة برمجة التطبيقات UseCase.snapToSurfaceRotation(int) لاستبدال استخدام setTargetRotationDegrees وإيقاف واجهات برمجة التطبيقات ImageAnalysis.setTargetRotationDegrees(int) وImageCapture.setTargetRotationDegrees(int) وVideoCapture.setTargetRotationDegrees(int) نهائيًا. (Ia9010)
  • تمت إضافة واجهتَي برمجة التطبيقات الجديدتَين Preview#getTargetFrameRate وPreview.Builder#setTargetFrameRate لضبط عدد اللقطات المستهدَف في الثانية واسترداده لحالة استخدام "المعاينة" (If4f22)
  • ستكتمل الآن دالة VideoRecordEvent.Finalize برمز الخطأ ERROR_RECORDING_GARBAGE_COLLECTED عند إيقاف عنصر Recording بسبب تجميع المهملات. (Iba974)

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

  • تم إصلاح NullPointerException عندما تكون أحجام المخرجات المخزّنة مؤقتًا في StreamConfigurationMapCompat فارغة. (Idf124، b/282025204)
  • تم حلّ المشكلة المتمثّلة في أنّ Preview.setSurfaceProvider(null) لا يوقف المعاينة مؤقتًا في "الإضافات" (Ia903e)
  • تم إصلاح مشكلة ظهور الخطأ ConcurrentModificationException أثناء فتح الكاميرا عندما يكون VideoCapture مرتبطًا. (Ic8ac4)

الإصدار 1.3.0-alpha06

‫19 أبريل 2023

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

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

  • "الكاميرا المتزامنة" هي ميزة جديدة تم تقديمها في Android 11، وتتيح البث المتزامن من أجهزة الكاميرا، على سبيل المثال، تتيح للجهاز تشغيل الكاميرتَين الأمامية والخلفية في الوقت نفسه. لا تتيح مكتبة CameraX حاليًا سوى استخدام كاميرتَين متزامنتَين، ما يسمح بتشغيل كاميرتَين في الوقت نفسه، مع ربط حالتَي استخدام {@link UseCase} كحدّ أقصى لكلّ منهما. الحد الأقصى للدقة هو 720p أو 1440p، ويمكنك الاطّلاع على مزيد من التفاصيل في الرابط التالي: CameraManager#getConcurrentCameraIds()‎
  • نقدّم لك واجهة برمجة التطبيقات الجديدة ResolutionSelector التي تغطي الميزات التالية:
    • يمكن للتطبيقات تحديد استراتيجيات نسبة العرض إلى الارتفاع والدقة لاختيار أفضل دقة تناسب احتياجاتها.
    • يتم التعبير عن جميع مَعلمات الحجم ونسبة العرض إلى الارتفاع في إحداثيات أداة استشعار الكاميرا.
    • يمكن للتطبيقات تنفيذ فلتر دقة مخصّص لترتيب الأحجام المتوافقة بالترتيب المطلوب.
    • يمكن للتطبيقات أيضًا تفعيل ميزة الالتقاط بدقة عالية للحصول على صور بدقة أعلى. ومع ذلك، يُرجى العِلم أنّ استخدام دقة عالية قد يؤدي إلى إبطاء أوقات الالتقاط.
    • تمت إضافة واجهات برمجة تطبيقات النسخ المتطابق VideoCapture. لا يتم تلقائيًا قلب الفيديوهات التي يتم تسجيلها باستخدام "VideoCapture". ومع ذلك، يتم عرض معاينة الكاميرا بشكل معكوس على الكاميرا الأمامية تلقائيًا. VideoCapture تتيح واجهات برمجة التطبيقات الخاصة بالانعكاس محاذاة معاينة الكاميرا عند استخدام الكاميرا الأمامية. هناك ثلاثة MirrorMode وOFF وON وON_FRONT_ONLY. للمحاذاة مع معاينة الكاميرا، ننصح باستخدام ON_FRONT_ONLY، ما يعني أنّ ميزة "المرآة" غير مفعَّلة للكاميرا الخلفية ولكنّها مفعَّلة للكاميرا الأمامية.

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

  • تم عرض واجهة برمجة تطبيقات جديدة لـ ResolutionSelector. يمكن للتطبيقات تحديد استراتيجيات نسبة العرض إلى الارتفاع والدقة باستخدام قواعد احتياطية أو فلتر دقة مخصّص للحصول على النتائج المطلوبة. يمكن للتطبيقات تحديد علامة لتفعيل ميزة التسجيل بدقة عالية. سيسمح ذلك لواجهة CameraX باختيار درجات دقة أعلى عند التقاط الصور أو الفيديوهات. ومع ذلك، يُرجى العلم أنّ استخدام دقة عالية قد يؤدي إلى بطء أوقات الالتقاط. (Ibed95)
  • يمكن الآن الاستعلام عن نطاقات عدد اللقطات في الثانية التي تتيحها خوارزمية التعريض التلقائي من خلال CameraInfo#getSupportedFrameRateRanges(). (Iaa67f)
  • دمج أسماء جميع طرق عدد اللقطات في الثانية في استخدام "FrameRate". تصحيح خطأ 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 يوسّع Closable وإخفاء الدالة الإنشائية العامة لـ SurfaceOutput.Event. (I60ea8)
  • تمت إضافة Recording.mute لكتم صوت تسجيل قيد المعالجة أو إعادة الصوت إليه بشكل ديناميكي. سيحتوي RecordingStats على AudioStats.AUDIO_STATE_MUTED عندما يتم كتم صوت التسجيل قيد المعالجة بشكل صريح. (Ie17fc)
  • تم جعل مَعلمة #setEffects() غير فارغة. إضافة واجهة برمجة تطبيقات #clearEffects() لمحو المؤثرات على التطبيق استدعاء #clearEffects() لإزالة التأثيرات. (I4b4d9)
  • إضافة طريقة وضع تصميم ثانية لـ ViewfinderSurfaceRequest.Builder من أجل استخدام أداة إنشاء لطريقة وضع تصميم النسخ (I621a7)

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

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

الإصدار 1.3.0-alpha05

‫22 مارس 2023

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

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

  • تمت إضافة واجهات برمجة تطبيقات لتدوير المفاتيح عددها VideoCapture، بما في ذلك 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 على UseCase‏ VideoCapture، وسيتم تطبيق المؤثرات التي تستهدف PREVIEW|VIDEO_CAPTURE على بث مشترك قبل النسخ إلى "المعاينة" وبث VideoCapture. (Iee6f3)

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

  • من الكاميرا 1.2.2: تم إصلاح المشكلة المتمثّلة في عدم عمل إضافات CameraX بشكل صحيح عند تفعيل ProGuard على بعض الأجهزة، مثل Pixel ‏ (I90aa2)
  • تم إصلاح خطأ في PreviewView يتسبّب في تشويه المعاينة عند تدوير الشاشة إذا كان التطبيق يتعامل مع اتجاه الشاشة بنفسه. يحدث ذلك على أجهزة معيّنة فقط. ويمكن إعادة إنتاجها على هواتف Pixel a4 وPixel 5 وPixel 6a. (I14340، b/223488673)

الإصدار 1.3.0-alpha04

‫22 فبراير 2023

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

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

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

  • في السابق، عند ربط "المعاينة والتقاط الفيديو وتحليل الصور" على مستوى جهاز الكاميرا FULL والإصدارات الأقدم، أو ربط "المعاينة والتقاط الفيديو والتقاط الصور" على مستوى الجهاز LEGACY، كانت واجهة CameraX تعرض الخطأ IllegalArgumentException.
  • السلوك الجديد هو أنّ عمليات الربط ستعمل بدون ظهور استثناءات. بدلاً من ذلك، تستخدم CameraX واجهة OpenGL لنسخ بث مشترك إلى كل من Preview وVideoCapture.
  • قد يلاحظ التطبيق زيادة في وقت الاستجابة واستهلاك الطاقة، وذلك بسبب تكلفة نسخة المخزن المؤقت.

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

  • إضافة واجهة برمجة تطبيقات لتحويل ImageProxy إلى Bitmap تنسيق ImageProxy المتوافق هو ImageFormat.YUV_420_888 وPixelFormat.RGBA_8888. إذا كان التنسيق غير صالح، سيتم عرض IllegalArgumentException. (Ic7110)
  • تمت إضافة CoroutineCameraViewfinder لإتاحة ضبط عدسة الكاميرا باستخدام دوال التعليق في Kotlin. (I657bc)
  • يُرجى إضافة طريقة وضع تصميم عامة جديدة لـ "ViewfinderSurfaceRequest". ويوفّر هذا الخيار المرونة عندما يتعذّر على المستخدم تقديم CameraCharacteristics. (Ie6549)

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

  • تم إصلاح مشكلة تعطُّل الإضافات التي تحدث على بعض أجهزة Samsung عند إيقاف التطبيق مؤقتًا أو استئنافه بسرعة كبيرة (Iaca26)

الإصدار 1.3.0-alpha03

‫25 يناير 2023

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

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

  • تمت إضافة CameraInfo.getIntrinsicZoomRatio لتوفير معلومات عن زاوية العرض بالنسبة إلى الكاميرا التلقائية. (Ib300c)
  • تمت إضافة السمة CameraInfo.getLensFacing لتقديم معلومات عن اتجاه العدسة. تمت إضافة CameraSelector#LENS_FACING_EXTERNAL كميزة تجريبية لاختيار الكاميرات الخارجية. (Icaf3e)
  • إضافة #setEffect() إلى CameraController للسماح بإضافة تأثيرات إلى مخرجات الكاميرا (I1d21f)
  • أضِف طريقة invalidate() إلى SurfaceRequest. يمكن لموفّر مساحة العرض إرسال إشعار بأنّ مساحة العرض التي تم توفيرها سابقًا لم تعُد صالحة. (Idc649)
  • أضِف واجهة برمجة تطبيقات ImageProcessor. هذه الواجهة مخصّصة لإدخال تأثيرات المعالجة اللاحقة في مسار ImageCapture. (I575c6)
  • تمت إضافة واجهة برمجة التطبيقات Recorder.Builder.setAspectRatio() التي يمكن دمجها مع QualitySelector لإتاحة المزيد من درجات دقة الفيديو. (I8a082)
  • تمت إضافة Recorder.Builder#setTargetVideoEncodingBitRate لضبط ترميز الفيديو المستهدَف BitRate وRecorder#getTargetVideoEncodingBitRate للحصول على معدل نقل البيانات لترميز الفيديو المستهدَف. (I5984d)

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

  • تم إصلاح مشكلة تعذُّر تنفيذ ImageCapture عندما لا تكون هناك وحدة فلاش ويكون وضع الفلاش مفعَّلاً. (I9e8b4، b/263391112)
  • تم إصلاح مشكلة تلف صور JPEG في حال كتابة بيانات الموقع الجغرافي بتنسيق Exif على بعض أجهزة Samsung التي تعمل بنظام التشغيل Android 12. (Ib7086، b/263747161، b/263289024)
  • عند ضبط المصباح/التكبير قبل اكتمال إعداد الكاميرا، مثلاً عند استدعاء CameraController#enableTorch، يتم تخزين الإجراء المعلّق مؤقتًا وإرساله بعد اكتمال الإعداد. (I11e92، b/264157663)

الإصدار 1.3.0-alpha02

‫7 ديسمبر 2022

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

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

  • إضافة واجهة برمجة تطبيقات جديدة لتطبيق تأثير المعالجة اللاحقة على مخرجات المعاينة (Ic17d5)
  • تمت إعادة تسمية OutputOptions.getDurationLimit إلى OutputOptions.getDurationLimitMillis وOutputOptions.setDurationLimit إلى OutputOptions.setDurationLimitMillis. (I91f0c)
  • أضِف فئة AudioConfig للتعامل مع الإعدادات ذات الصلة بالصوت أثناء تسجيل الفيديو. تم نقل التعليق التوضيحي @RequiresPermission من دوال startRecording إلى AudioConfig لتجنُّب طلبات الحصول على إذن غير ضرورية في الحالات التي لا يكون فيها الصوت مطلوبًا. (I28755)
  • إزالة فئات البيانات الوصفية وOnVideoSavedCallback وOutputFileOptions وOutputFileResults التي لم تعُد مستخدَمة بعد تطبيق واجهة برمجة التطبيقات الجديدة لالتقاط الفيديو (I38cd8)
  • تطبيق واجهة برمجة التطبيقات الجديدة لتسجيل الفيديو تم استبدال الطريقتَين getVideoCaptureTargetSize وsetVideoCaptureTargetSize بالطريقتَين getVideoCaptureTargetQuality وsetVideoCaptureTargetQuality على التوالي، لأنّ setTargetResolution لم يعُد متاحًا. (I2a1d5)

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

  • إزالة واجهة برمجة التطبيقات core.VideoCapture التي تم إيقافها نهائيًا (I531e0)
  • تم إصلاح مشكلة عدم استدعاء دالة الاستدعاء onError عند التقاط الصور بدون إذن التخزين.(I936db، b/244807669)
  • تحسين جودة إضافات الكاميرا وموثوقيتها تم إيقاف إضافات الكاميرا على أجهزة Motorola التي تستخدم الإصدار 1.1.0 من إضافات الكاميرا والإصدارات الأقدم بسبب مشاكل في ميزة "الخلفية الضبابية" والتقاط الصور وعدم استئناف المعاينة. (Id3ce3)
  • تم إصلاح عطل داخلي في نظام التشغيل عند تفعيل ميزة اقتصاص الفيديو من خلال ViewPort على الأجهزة القديمة. (I16b8a، b/251357665)

الإصدار ‎1.3.0-alpha01

‫9 نوفمبر 2022

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

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

  • تم نشر "Camera-viewfinder" رسميًا. يوفّر Camera-viewfinder تطبيقًا مصغّرًا أساسيًا لعدسة الكاميرا يمكنه عرض خلاصة الكاميرا في Camera2. يُرجى الاطّلاع على الرمز النموذجي للحصول على مثال.

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

  • تمت إضافة السمة OutputOptions.setDurationLimit للسماح بضبط الحدّ الأقصى لمدة الفيديو. سيتم إنهاء التسجيل تلقائيًا عند تجاوز الحد الأقصى المحدّد للمدة. (I902a0)
  • تمت إضافة حالة الخطأ "AudioStats.AUDIO_STATE_SOURCE_ERROR" في الصوت أثناء تسجيل الفيديو. يتم إرسال هذا الحدث عند تعذُّر إعداد مصدر الصوت أو حدوث خطأ ما. (I37410)

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

  • تمت إضافة ميزة تتيح لبعض الأجهزة التي تواجه مشاكل إعادة محاولة الالتقاط مرة واحدة عند حدوث أخطاء في الالتقاط. (Id4795)
  • تم إصلاح مشكلة الشاشة السوداء في تنفيذ PreviewView SurfaceView على ViewPager2. كجزء من عملية الإصلاح، سيعيد "PreviewView" استخدام "SurfaceView" إذا لم يتم تغيير درجة الدقة المطلوبة. (Ib3f27)
  • إتاحة اقتصاص الفيديو (ميزة WYSIWYG) عند استخدام واجهة برمجة التطبيقات ViewPort أو CameraController (Ifbba8، b/201085351)
  • تم إصلاح مشكلة تعذُّر تسجيل الفيديو الذي تم التقاطه بالكاميرا الأمامية على هاتف Huawei P40 lite. (I87c57، b/250807400)

الإصدار 1.2

الإصدار 1.2.3

‫24 مايو 2023

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

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

  • تم إصلاح مشكلة عدم عمل ميزة "VideoCapture" مع الكاميرا الأمامية على بعض الأجهزة. على سبيل المثال، على هاتف Samsung Galaxy S23 وXiaomi 2107113SG. (Ibec7e، b/270656244)

الإصدار 1.2.2

‫22 مارس 2023

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

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

  • تم إصلاح المشكلة المتمثّلة في عدم عمل إضافات CameraX بشكل صحيح عند تفعيل ProGuard على بعض الأجهزة، مثل Pixel ‏ (I90aa2)

الإصدار 1.2.1

‫25 يناير 2023

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

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

  • تم إصلاح مشكلة تلف صور JPEG في حال كتابة بيانات الموقع الجغرافي بتنسيق Exif على بعض أجهزة Samsung التي تعمل بنظام التشغيل Android 12. (b/263289024)

الإصدار 1.2.0

‫7 ديسمبر 2022

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

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

  • مكتبة جديدة: camera-mlkit-vision يمكنك دمج CameraX بسهولة مع العديد من ميزات MLKit، بما في ذلك مسح الرمز الشريطي ضوئيًا والتعرّف على الوجوه والتعرّف على النص وما إلى ذلك. تمت إضافة MLKitAnalyzer كواجهات برمجة تطبيقات جديدة.
  • واجهة برمجة تطبيقات تجريبية جديدة لالتقاط الصور بدون تأخير تعمل هذه الميزة على تحسين مسار الالتقاط لتقليل وقت الاستجابة مع الحفاظ على جودة الصورة. عند ضبط وضع الالتقاط على CAPTURE_MODE_ZERO_SHUTTER_LAG، من المتوقّع تقليل وقت الاستجابة بين النقر على زر الغالق والتقاط الصورة، مقارنةً بأوضاع الالتقاط الأخرى. على الأجهزة التي لا تتوافق مع ZERO_SHUTTER_LAG، سيتم استخدام CAPTURE_MODE_MINIMIZE_LATENCY.
  • إيقاف android.camera.core.VideoCapture نهائيًا
  • تمت إضافة setStreamUseCase() كواجهة برمجة تطبيقات Camera2Interop علنية.
  • تمت إضافة متطلبات مستوى واجهة برمجة التطبيقات لـ "setOutputImageRotationEnabled".
  • تمت إعادة تسمية "ImageAnalysis.Analyzer#getTargetResolutionOverride()" إلى "ImageAnalysis.Analyzer#getDefaultTargetResolution()".
  • تمت إضافة واجهة برمجة تطبيقات لضبط البيانات الوصفية للموقع الجغرافي في الفيديو المحفوظ.
  • تم إصلاح مشكلة انخفاض معدّل عرض الإطارات عند استخدام حالات استخدام VideoCapture والمعاينة بنسبة عرض إلى ارتفاع 16:9
  • تم إصلاح مشكلة المعاينة السوداء التي تحدث عند تفعيل إضافة BOKEH على بعض أجهزة Samsung وتبديل المستخدم للكاميرات.
  • تم إصلاح مشكلة تمدّد Preview/VideoCapture على أجهزة Samsung J7 Prime (SM-G610M) وJ7 (SM-J710MN) التي تعمل بمستوى واجهة برمجة التطبيقات 27.
  • تم إيقاف الحل البديل لقلب منطقة التركيز التلقائي أفقيًا في الكاميرات الأمامية على أجهزة Samsung التي تعمل بنظام التشغيل Android T بعد حلّ المشكلة

الإصدار ‎1.2.0-rc01

‫24 أكتوبر 2022

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

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

  • إضافة واجهة برمجة التطبيقات "setStreamUseCase" لـ "OutputConfiguration" يمكن للمستخدم تحديد حالة استخدام البث لجلسة البث، وتجاوز المنطق الداخلي لـ CameraX لاختيار حالة استخدام البث من أجل تحسينها وفقًا لاحتياجاته. (Ib1a95)

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

  • تم إصلاح مشكلة تمدّد Preview/VideoCapture على أجهزة Samsung J7 Prime (SM-G610M) وJ7 (SM-J710MN) التي تعمل بمستوى واجهة برمجة التطبيقات 27. تؤدي درجة الدقة 1920x1080 إلى تمديد صور Preview/VideoCapture. تمت إضافة حل بديل لعدم اختيار درجة الدقة 1920x1080 في "المعاينة" أو "VideoCapture" لتجنُّب مشكلة تمديد الصورة. (I0e04e)
  • تم إصلاح مشكلة انخفاض معدّل عرض الإطارات عند استخدام حالات استخدام VideoCapture و"المعاينة" بنسبة عرض إلى ارتفاع 16:9 على بعض أجهزة Huawei. (If8c88، b/223643510)
  • تم إصلاح مشكلة تعذُّر فتح الكاميرا عندما لا يتم ضبط SurfaceProvider في "المعاينة". كجزء من عملية الإصلاح، لن يتم ضبط ميزة "المعاينة" بدون ضبط SurfaceProvider في جلسة التقاط الكاميرا. (I99681)

الإصدار ‎1.2.0-beta02

‫21 سبتمبر 2022

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

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

  • إضافة متطلبات مستوى واجهة برمجة التطبيقات لـ setOutputImageRotationEnabled (I26e3e، b/240993561)

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

  • تم إيقاف الحل البديل لقلب منطقة التركيز التلقائي أفقيًا في الكاميرات الأمامية على أجهزة Samsung Android T بعد حلّ المشكلة. (I05f69)
  • تم إصلاح مشكلة المعاينة السوداء التي تحدث عند تفعيل إضافة "BOKEH" على بعض أجهزة Samsung وتبديل المستخدم للكاميرات. (If6168)

الإصدار ‎1.2.0-beta01

‫24 أغسطس 2022

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

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

  • مكتبة جديدة: camera-mlkit-vision يمكنك دمج CameraX بسهولة مع العديد من ميزات MLKit، بما في ذلك مسح الرمز الشريطي ضوئيًا والتعرّف على الوجوه والتعرّف على النص وما إلى ذلك. يُرجى الاطّلاع على الرمز النموذجي هنا.
  • واجهة برمجة تطبيقات تجريبية جديدة لالتقاط الصور بدون تأخير تعمل هذه الميزة على تحسين مسار الالتقاط لتقليل وقت الاستجابة مع الحفاظ على جودة الصورة. عند ضبط وضع الالتقاط على CAPTURE_MODE_ZERO_SHUTTER_LAG، من المتوقّع تقليل وقت الاستجابة بين النقر على زر الغالق والتقاط الصورة، مقارنةً بأوضاع الالتقاط الأخرى. على الأجهزة التي لا تتيح استخدام ZERO_SHUTTER_LAG، سيتم الرجوع إلى CAPTURE_MODE_MINIMIZE_LATENCY.
  • تم جعل ImageAnalysis.Analyzer وMLKitAnalyzer واجهتَي برمجة تطبيقات رسميتَين.
  • تم عرض واجهة برمجة التطبيقات لضبط البيانات الوصفية للموقع الجغرافي في الفيديو المحفوظ.
  • تمّت إعادة تسمية ImageAnalysis.Analyzer#getTargetResolutionOverride() إلى ImageAnalysis.Analyzer#getDefaultTargetResolution().

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

  • تم إصلاح مشكلة التقاط الصور في Alps k61v1_basic_ref. تحتوي صور JPEG التي تم التقاطها من HAL على بيانات وصفية غير صحيحة لـ Exif. لا تحتوي بيانات Exif الوصفية على العلامة 0xffd9 أو 0xffda لكي يتمكّن ExifInterface من تحليل السمات بشكل صحيح. التقاط الصور بتنسيق YUV ثم ضغطها إلى صور JPEG لحلّ هذه المشكلة (I45abb)

الإصدار 1.2.0-alpha04

‫27 يوليو 2022

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

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

  • تمّت إعادة تسمية ImageAnalysis.Analyzer#getTargetResolutionOverride() إلى ImageAnalysis.Analyzer#getDefaultTargetResolution(). تم أيضًا تغيير السلوك بحيث يمكن استبدال القيمة التي تعرضها هذه الطريقة بقيمة ImageAnalysis#setTargetResolution(). (If1d36)
  • تم عرض واجهة برمجة التطبيقات لضبط البيانات الوصفية للموقع الجغرافي في الفيديو المحفوظ. يمكن ضبط عنصر android.location.Location من خلال واجهة برمجة التطبيقات الجديدة androidx.camera.video.OutputOptions.Builder.setLocation(Location). (I313a0، b/204197544)

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

  • تم إصلاح مشكلة التقاط صورة باستخدام معاينة غير مرتبطة (Ie70b6، b/235119898)
  • تم إصلاح عطل في Recorder عند محاولة التسجيل عندما يكون مصدر الصوت غير متاح. (I9f652)

الإصدار ‎1.2.0-alpha03

‫29 يونيو 2022

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

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

  • تمت إزالة التعليق التوضيحي التجريبي لـ ImageAnalysis.Analyzer وMLKitAnalyzer. (I0ff22)

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

  • تمت إضافة مهلة تلقائية للتركيز التلقائي تبلغ 5000 ملي ثانية، والتي ستكمل جزء التركيز التلقائي باستخدام isFocusSuccessful false إذا لم يتم إلغاء FocusMeteringAction ولم يتم تقارب جزء التركيز التلقائي في المدة. (Ibc2e3)
  • تم إصلاح مشكلة التقاط صورة باستخدام معاينة غير مرتبطة (I1d3a2، b/235119898)
  • تم تفعيل تنفيذ الإضافات المتقدّمة وتحديث إصدار واجهة إضافات دعم CameraX إلى 1.2 (I92256)

الإصدار ‎1.2.0-alpha02

‫1 يونيو 2022

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

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

  • إتاحة واجهة برمجة التطبيقات CameraX Zero-Shutter Lag API كواجهة تجريبية

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

  • أضِف وضع التقاط جديدًا CAPTURE_MODE_ZERO_SHUTTER_LAG في ImageCapture وأضِف isZslSupported في CameraInfo للاستعلام عن إمكانات الجهاز. يهدف وضع "CAPTURE_MODE_ZERO_SHUTTER_LAG" إلى توفير الحد الأدنى من وقت الاستجابة لالتقاط الصور الفوري. ويتم تنفيذها استنادًا إلى مخزن مؤقت دائري يخزّن مؤقتًا نتائج الالتقاط الوسيطة لإعادة معالجتها لاحقًا عندما يضغط المستخدم على الأزرار لالتقاط الصور. إذا كان {@link VideoCapture} مرتبطًا أو كان وضع الفلاش غير مفعَّل أو كانت إضافة المصنّع الأصلي للجهاز مفعَّلة، سيتم إيقاف هذا الوضع تلقائيًا. (I9ae74)
  • إضافة طريقة ImageAnalysis.getBackgroundExecutor() (Icc945)

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

  • تم إصلاح مشكلة إيقاف طريقة ImageCapture takePicture للمصباح اليدوي على الأجهزة التي تم الإبلاغ عنها. (Ib5eb5، b/228272227)
  • تم إصلاح خطأ يتعلّق بعدم معالجة AssertionError عند الحصول على السمة CONTROL_ZOOM_RATIO_RANGE.(/Ia248a، b/231701345)

الإصدار ‎1.2.0-alpha01

‫18 مايو 2022

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

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

  • تم إطلاق مكتبة camera-mlkit-vision الجديدة

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

  • تم إصلاح مشكلة تعذُّر تسجيل فيديو بدقة فائقة (UHD) على جهاز QualitySelector عند تفعيل استراتيجية احتياطية. تحدث المشكلة عندما يكون VideoCapture مرتبطًا بـ ImageCapture و"المعاينة" على جهاز كاميرا بمستوى أجهزة FULL أو أعلى. تؤدي استراتيجية الاحتياطية "QualitySelector" إلى حصول "VideoCapture" على دقة FHD بشكل غير صحيح. تتوفّر دقة UHD في هذه الحالة، لذا يجب استخدامها. (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

  • تم طرح الإصدار التجريبي الأول من مكتبات View وExtension وVideo Capture. بدءًا من الإصدار 1.1.0-beta01، ستستخدم جميع مكتبات CameraX رقم الإصدار نفسه. سيساعد ذلك المطوّرين في تتبُّع الإصدارات بسهولة أكبر وتقليل تعقيد مصفوفات التوافق مع الإصدارات الكبيرة.
  • تم تقديم واجهات برمجة تطبيقات وميزات جديدة متاحة للجميع، بما في ذلك:
  • أضِف مكتبة camera-video الرسمية لإتاحة حالات استخدام التقاط الفيديو.
  • إمكانية تحويل YUV إلى RGB والتدوير (ImageAnalysis.Builder.setOutputImageRotationEnabled وsetOutputImageFormat)
  • يتيح وضع النوافذ المتعددة من خلال السماح لتطبيقات CameraX باستئناف استخدام الكاميرا عندما يقاطع تطبيق آخر استخدامها ويعود التركيز إليها.
  • يضمن عمل CameraX بشكل جيد في الأجهزة القابلة للطي من خلال إصلاح بعض مشاكل المعاينة.
  • تمت إضافة واجهة برمجة تطبيقات CameraState سيتم عرضها من خلال CameraInfo.
  • تمت إضافة واجهة برمجة التطبيقات ProcessCameraProvider.getAvailableCameraInfos() لاسترداد المعلومات مباشرةً حول الكاميرات المتاحة
  • تنسيق الإخراج JPEG لـ "ImageCapture#OnImageCapturedCallback" عند تفعيل الإضافات
  • تمت إضافة واجهة برمجة التطبيقات isFocusMeteringSupported في CameraInfo، والتي تتيح للتطبيقات التحقّق مما إذا كان FocusMeteringAction المحدّد متوافقًا مع الكاميرا الحالية أم لا.
  • تم عرض واجهة برمجة التطبيقات getResolutionInfo لتوفير معلومات الدقة لكل من "المعاينة" وImageCapture وImageAnalysis.
  • تمت إضافة واجهة برمجة تطبيقات جديدة ImageCapture.Builder#setJpegQuality للسماح بتغيير جودة ضغط صور JPEG الناتجة عند التقاط الصور.
  • تمت إضافة CameraSelector#filter إلى واجهة برمجة التطبيقات العامة لفلترة قائمة CameraInfos استنادًا إلى CameraSelector.
  • تمت إضافة Camera2CameraControl.clearCaptureRequestOptions لمحو خيارات طلب الالتقاط الحالية.
  • تمت إضافة واجهة برمجة تطبيقات تجريبية لاستخدام CameraController مع مكتبات معالجة الصور الخارجية، مثل MLKit
  • تمت إضافة واجهة برمجة التطبيقات التجريبية CameraInfo#getCameraSelector() التي تعرض CameraSelector فريدًا للكاميرا
  • تمت ترقية العديد من واجهات برمجة التطبيقات التجريبية إلى واجهات برمجة تطبيقات عامة رسمية
  • تم استبدال التعليق التوضيحي @Experimental بـ @RequiresOptIn في واجهات برمجة التطبيقات التجريبية. لاستدعاء واجهات برمجة التطبيقات التجريبية، استخدِم androidx.annotation.OptIn بدلاً من androidx.annotation.experimental.UseExperimental التي تم إيقافها نهائيًا.
  • تمت ترقية واجهات برمجة التطبيقات التجريبية التالية إلى واجهات برمجة تطبيقات رسمية: CameraXConfig.Builder#setAvailableCamerasLimiter() وCameraXConfig.Builder#setMinimumLoggingLevel() وCameraXconfig.Builder#setSchedulerHandler() وCameraXConfig#getAvailableCamerasLimiter() وCameraXConfig#getMinimumLoggingLevel() وCameraXConfig#getCameraExecutor() وCameraXConfig#getSchedulerHandler()،
  • واجهتا برمجة تطبيقات (@ExperimentalCameraFilter)
  • واجهات برمجة التطبيقات التجريبية لتعويض درجة الإضاءة
  • تمت ترقية واجهة برمجة التطبيقات التجريبية UseCaseGroup لكل من camera-core وcamera-lifecycle وcamera-video. تمت إضافة ViewPort#getLayoutDirection وViewPort.Builder#setLayoutDirection وViewPort.Builder#setScaleType لتخصيص إطار العرض.
  • تمت ترقية ExperimentalUseCaseGroupLifecycle إلى واجهات برمجة تطبيقات عامة رسمية.
  • التغييرات على واجهات برمجة التطبيقات الحالية
  • Renamed MediaStoreOutputOptions.getCollection من أجل MediaStoreOutputOptions.getCollectionUri .
  • تمت إعادة تسمية ActiveRecording إلى "تسجيل" لتقليل الإسهاب.
  • تم تغيير واجهة برمجة التطبيقات الخاصة بإنشاء QualitySelector إلى واجهة برمجة تطبيقات مستندة إلى القوائم

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

  • تم إصلاح مشكلة YuvToJpegProcessor EOFException عند تفعيل وضع الإضافة وضبط وضع ImageCapture#CAPTURE_MODE_MAX_QUALITY.
  • تم إصلاح مشكلة تعذُّر ضبط برنامج الترميز بسبب إغلاق تسجيل الفيديو
  • تم إصلاح مشكلة تمدُّد نسبة العرض إلى الارتفاع في المعاينة أو الفيديو عند التسجيل بدقة FHD
  • تم إصلاح مشكلة عدم مزامنة الصوت/الفيديو بعد الإيقاف المؤقت والاستئناف على بعض الأجهزة
  • تم إصلاح المشكلة المتمثّلة في تشغيل الفلاش أثناء النقر للتركيز (startFocusAndMetering) عندما يكون وضع الفلاش مضبوطًا على "تلقائي" أو "تشغيل دائمًا" في بيئة منخفضة الإضاءة.

الإصدار 1.1.0-rc02

‫1 يونيو 2022

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

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

  • تم حلّ المشكلة "NullPointerException" في ‎ImageCapture.takePicture(). (I92366، b/230454568، b/229766155)
  • تم إصلاح خطأ يتعلّق بعدم معالجة AssertionError عند الحصول على السمة CONTROL_ZOOM_RATIO_RANGE. (Ia248a، b/231701345)

الإصدار 1.1.0-rc01

‫11 مايو 2022

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

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

  • إصدار أول نسخة مرشحة للإصدار من camera-video وcamera-view وcamera-extension

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

  • تم إصلاح مشكلة عدم إصدار برنامج ترميز الفيديو عند إلغاء ربط VideoCapture<Recorder>، ما يؤدي إلى تعذُّر استخدامات 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 (updateApi) بسبب نقل البيانات من test-coroutines-lib (I3366d)

الإصدار ‎1.1.0-beta02

‫23 فبراير 2022

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

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

  • إضافة إمكانية تحديد رقم تعريف الكاميرا الفعلية من خلال Camera2Interop (I5aed8)

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

  • تم حلّ مشكلة تمدّد المعاينة على جهاز Oppo Find N ‏ (I7d004)
  • تم إصلاح مشكلة في هاتف Galaxy J7 Prime تؤدي إلى تشويه المعاينة. (I4c500)
  • استخدِم معدّل نقل بيانات متوافقًا للعثور على برنامج ترميز الفيديو. (d969052)

الإصدار ‎1.1.0-beta01

‫26 يناير 2022

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

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

  • بدءًا من الإصدار 1.1.0-beta01، ستستخدم جميع مكتبات CameraX رقم الإصدار نفسه. سيساعد ذلك المطوّرين في تتبُّع الإصدارات بسهولة أكبر وتقليل تعقيد مصفوفة توافق الإصدارات الكبيرة.

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

  • تمت إضافة Camera2CameraControl.clearCaptureRequestOptions لمسح خيارات طلب الالتقاط الحالية. (Ifa07d)

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

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

الإصدار ‎1.1.0-alpha12

‫15 ديسمبر 2021

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

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

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

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

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

الإصدار 1.1.0-alpha11

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

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

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

  • تمت إضافة CameraSelector#filter إلى واجهة برمجة التطبيقات العلنية لفلترة قائمة CameraInfos استنادًا إلى 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 إلى Preview. (I9ff1e)

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

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

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

  • تم إصلاح المشكلة المتمثّلة في تشغيل الفلاش أثناء النقر للتركيز (startFocusAndMetering) عندما يكون وضع الفلاش تلقائيًا أو قيد التشغيل دائمًا في بيئة منخفضة الإضاءة. (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 كأول إصدار أولي رسمي من Video. هناك عدّة مشاكل معروفة سيتم إصلاحها في الإصدارات اللاحقة.

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

  • تمّت إضافة التعليق التوضيحي @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)
  • تم حلّ المشكلة التي تؤدي إلى توقّف المعاينة لفترة من الوقت عند التقاط الصور في حال ربط VideoCapture وImageCapture وPreview. (I56197، b/193864120)
  • يسمح هذا الإعداد لـ ImageAnalysis باختيار دقة أكبر من 1080p. يمكن لجهاز بمستوى LIMITED أو أعلى أن يتيح دقة بحجم RECORD لحالة الاستخدام ImageAnalysis عندما تكون مرتبطة بحالتَي الاستخدام Preview وImageCapture. في المقابل، يجب أن تكون درجة الدقة المحدّدة لـ ImageCapture هي نفسها درجة الدقة المحدّدة لـ RECORD. لاختيار درجة دقة بحجم RECORD بنجاح لـ ImageAnalysis، يجب ضبط درجة دقة مستهدَفة بحجم RECORD على كل من ImageCapture وImageAnalysis. يشير ذلك إلى أنّ التطبيق يفهم بوضوح المفاضلة ويفضّل أن تكون دقة ImageAnalysis أكبر بدلاً من أن تكون دقة ImageCapture هي MAXIMUM. للاطّلاع على تعريفات RECORD وMAXIMUM ومزيد من التفاصيل، يُرجى الانتقال إلى https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. يشير حجم RECORD إلى أقصى دقة تسجيل تتيحها الكاميرا، وفقًا لما يحدّده CamcorderProfile. يشير الحجم الأقصى إلى الحد الأقصى لدرجة دقة الإخراج في جهاز الكاميرا لهذا التنسيق أو الهدف من StreamConfigurationMap.getOutputSizes(int). (I1ee97، b/192911449)
  • أضِف معلومات Exif إلى الصورة التي تم التقاطها. (I01ff0، b/193342619)
  • في ImageCapture، يمكنك عرض معرّف الموارد المنتظم (URI) للصورة المحفوظة إذا كان موقع الحفظ هو "ملف". (Ib5b49، b/149241379)
  • تم إصلاح مشكلة التقاط صور مظلمة باستخدام الفلاش على العديد من الأجهزة. (I4e510)

الإصدار ‎1.1.0-alpha07

‫21 يوليو 2021

تم إصدار "androidx.camera:camera-camera2:1.1.0-alpha07" و"androidx.camera:camera-core:1.1.0-alpha07" و"androidx.camera:camera-lifecycle:1.1.0-alpha07". يتضمّن الإصدار 1.1.0-alpha07 هذه التعديلات.

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

  • تم إصلاح مشكلة في هاتف Samsung Galaxy Note 5 حيث تتوقف الكاميرا عن العمل بعد التقاط صور باستخدام الفلاش في الوضع التلقائي أو وضع التشغيل في بيئة مظلمة (If6871)
  • تم إصلاح مشكلة YuvToJpegProcessor EOFException عند تفعيل وضع الإضافة وضبط وضع ImageCapture#CAPTURE_MODE_MAX_QUALITY. (I538bd، b/192017012)

الإصدار 1.1.0-alpha06

‫30 يونيو 2021

تم إصدار "androidx.camera:camera-camera2:1.1.0-alpha06" و"androidx.camera:camera-core:1.1.0-alpha06" و"androidx.camera:camera-lifecycle:1.1.0-alpha06". يتضمّن الإصدار 1.1.0-alpha06 هذه التعديلات.

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

  • الترويج لواجهات برمجة التطبيقات التجريبية لتعويض درجة الإضاءة في camera-core (I08ee8)
  • تمت إضافة واجهة برمجة التطبيقات isFocusMeteringSupported في CameraInfo التي تسمح للتطبيقات بالتحقّق مما إذا كان FocusMeteringAction المحدّد متوافقًا مع الكاميرا الحالية أم لا. (Ib45ae، b/188606490)
  • تم عرض واجهة برمجة التطبيقات getResolutionInfo لتوفير معلومات الدقة لكل من Preview وImageCapture وImageAnalysis. (I2b613، b/188600718)
  • تمت ترقية واجهات برمجة التطبيقات التجريبية التالية إلى واجهات برمجة تطبيقات رسمية: CameraXConfig.Builder#setAvailableCamerasLimiter()‎ و CameraXConfig.Builder#setMinimumLoggingLevel()‎ و CameraXconfig.Builder#setSchedulerHandler()‎ و CameraXConfig#getAvailableCamerasLimiter()‎ و CameraXConfig#getMinimumLoggingLevel()‎ و CameraXConfig#getCameraExecutor()‎ و CameraXConfig#getSchedulerHandler()‎. (I2ade2)
  • تم عرض واجهة CameraProvider لتوفير إمكانية الوصول إلى مجموعة من الكاميرات. (I1a7b1)
  • الترويج لواجهة برمجة التطبيقات UseCaseGroup التجريبية لكل من camera-core وcamera-lifecycle وcamera-video تمت إضافة ViewPort#getLayoutDirection وViewPort.Builder#setLayoutDirection وViewPort.Builder#setScaleType لتخصيص إطار العرض. (I7cee8)

الإصدار ‎1.1.0-alpha05

‫2 يونيو 2021

تم إصدار "androidx.camera:camera-camera2:1.1.0-alpha05" و"androidx.camera:camera-core:1.1.0-alpha05" و"androidx.camera:camera-lifecycle:1.1.0-alpha05". يتضمّن الإصدار 1.1.0-alpha05 هذه التعديلات.

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

  • تمت إزالة صف واحد (Camera2CameraFilter). نقترح اختيار الكاميرا من خلال CameraFilter واسترداد CameraCharacteristics أو غيرها من المعلومات ذات الصلة بـ Camera2 من خلال Camera2CameraInfo إذا لزم الأمر. (Ib887c)
  • أصبحت واجهات برمجة التطبيقات ExperimentalCameraFilter الآن خارج المرحلة التجريبية وأصبحت واجهات برمجة تطبيقات رسمية. ويمكن استخدامها بدون OptIn مع تعليقات توضيحية. (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 هذه التعديلات.

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

  • تم إصلاح مشكلة تسرُّب الذاكرة الناتجة عن وصول سلاسل محادثات متعددة إلى المجموعة نفسها في الوقت نفسه. قد يؤدي تسرّب الذاكرة إلى الاحتفاظ بـ Activity أو Fragment من خلال مثيل Preview. (I7b4b8)
  • تم استبدال التعليق التوضيحي @Experimental بـ @RequiresOptIn في واجهات برمجة التطبيقات التجريبية. لاستدعاء واجهات برمجة التطبيقات التجريبية، استخدِم androidx.annotation.OptIn بدلاً من androidx.annotation.experimental.UseExperimental التي تم إيقافها نهائيًا. (Iff226)
  • تم إصلاح مشكلة التقاط صور باهتة على هاتف Samsung Galaxy S7 عند استخدام ميزة ImageCapture مع تفعيل الفلاش أو ضبطه على الوضع التلقائي. (I30001)
  • تمت إضافة واجهة برمجة تطبيقات CameraState التي سيتم عرضها من خلال CameraInfo. (I75392)

الإصدار ‎1.1.0-alpha03

‫24 مارس 2021

تم إصدار "androidx.camera:camera-camera2:1.1.0-alpha03" و"androidx.camera:camera-core:1.1.0-alpha03" و"androidx.camera:camera-lifecycle:1.1.0-alpha03". يتضمّن الإصدار 1.1.0-alpha03 هذه التعديلات.

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

  • تنسيق الإخراج JPEG لـ "ImageCapture#OnImageCapturedCallback" عند تفعيل أوضاع "الإضافات" (I0d7b1)
  • تم إصلاح مشكلة تعذُّر الإعداد على أجهزة UMIDIGI BISON ‏ (I57d9e، b/180818665)
  • تم إصلاح مشكلة تمدّد المعاينة في PreviewView على أجهزة Samsung A3. (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 عند استخدام ميزة ImageCapture مع تفعيل الفلاش أو ضبطه على الوضع التلقائي. (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 بشكل ديناميكي. (I45cf3)
  • تمت إعادة تسمية Camera2CameraInfo#fromCameraInfo إلى ‎ #from. (Ia2bd6)
  • تمت إضافة واجهة برمجة تطبيقات تجريبية setAvailableCamerasLimiter إلى CameraXConfig للسماح للتطبيقات بتحسين وقت استجابة الإعداد من خلال تجنُّب إعداد الكاميرات غير المستخدَمة. (I6cf88)
  • تمت إضافة الطريقة التجريبية CameraXConfig.Builder#setMinimumLoggingLevel() للسماح بضبط الحد الأدنى لمستوى التسجيل في سجلّات CameraX. في حال عدم ضبطه، يتم ضبطه تلقائيًا على Log#DEBUG. (Ic3245)

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

  • تم تضمين حل بديل لبيانات الصور التالفة المتقطعة في ملفات JPEG على الكاميرا الخلفية SM-G930V. (I5aca5، b/159831206)
  • تم إصلاح المشكلة المتمثّلة في عدم الحصول على نتائج عند التقاط الصور في حال تفعيل الفلاش دائمًا أو تفعيله في بيئة مظلمة على أجهزة Samsung SM-A716. (If98b2، b/172036589)
  • تم إصلاح المشكلة المتمثّلة في تعذُّر إيقاف المعاينة من خلال طلب Preview.setSurfaceProvider(null). (I3ac18)
  • تم إصلاح مشكلة الاتجاه عند التقاط صور بنسبة عرض إلى ارتفاع 4:3 على بعض الأجهزة. (I0e3fb، b/171492111)

الإصدار ‎1.0.0-beta12 من Camera Camera2 وCore وLifecycle

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

تم إصدار "androidx.camera:camera-camera2:1.0.0-beta12" و"androidx.camera:camera-core:1.0.0-beta12" و"androidx.camera:camera-lifecycle:1.0.0-beta12". يتضمّن الإصدار 1.0.0-beta12 هذه التعديلات.

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

  • تم إيقاف الفلاش التلقائي على أجهزة Samsung A3 لإصلاح العطل عند التقاط صورة باستخدام وضع التعريض التلقائي للفلاش على أجهزة Samsung A3. (Ia5fe3، b/157535165)
  • تم إصلاح مشكلة تمدُّد المعاينة على أجهزة Nexus 4 التي تعمل بنظام التشغيل Android L (مستويَي واجهة برمجة التطبيقات 21 و22). (I4d407، b/158749159)
  • لم يعُد تنفيذ الصنف الأساسي OnImageCapturedCallback#onCaptureSuccess يغلق الصورة. وذلك لمنع حدوث سلوك غير متوقَّع للمطوّرين. يجب ألا يعتمد المطوّرون على super.onCaptureSuccess لإغلاق الصورة. (Ifbf9c)
  • تم إيقاف صيغة androidx من التعليق التوضيحي Experimental نهائيًا لتوفير التكافؤ مع Kotlin. تم استبداله بالتعليق التوضيحي RequiresOptIn، وتم تعديل أداة linter التي تواجه Java لتتوافق مع كل من التعليق التوضيحي الجديد في Kotlin ومتغيّر androidx الجديد. (I52495، b/151331381)

الإصدار 1.0.0-beta11 من Camera-Camera2

‫14 أكتوبر 2020

تم طرح androidx.camera:camera-camera2:1.0.0-beta11. يتضمّن الإصدار 1.0.0-beta11 هذه التعديلات.

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

  • يتيح هذا الإصدار استخدام واجهة برمجة تطبيقات Android 11 CONTROL_ZOOM_RATIO للتكبير على أجهزة Android 11 أو الإصدارات الأحدث التي تحتوي على CONTROL_ZOOM_RATIO_RANGE صالح. (I62cc6)

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

  • تم إصلاح مشكلة NumberFormatException التي حدثت عندما يكون معرّف الكاميرا غير صحيح. (Ib2228)
  • تم تحسين وقت استجابة إعداد CameraX و bindToLifecycle (I61dc5)
  • لا يتطلّب إنشاء UseCases إكمال عملية إعداد CameraX. يتم ضبط جميع الإعدادات الخاصة بالتنفيذ على UseCase بعد ربطها بمثيل Camera، وهو ProcessCameraProvider.bindToLifecycle() لواجهة برمجة التطبيقات العامة. (Ia5411)
  • ستعرض الدالة <UseCase>.getTargetRotation() القيمة Surface.ROTATION_0 إذا تم استدعاؤها قبل إرفاقها بمثيل Camera، ما لم يتم ضبط targetRotation على Builder أو UseCase. (I80fcd)

الإصدار 1.0.0-beta11 من Camera-Core

‫14 أكتوبر 2020

تم طرح androidx.camera:camera-core:1.0.0-beta11. يتضمّن الإصدار 1.0.0-beta11 هذه التعديلات.

الميزات الجديدة - تتيح هذه الميزة استخدام واجهة برمجة تطبيقات Android 11 CONTROL_ZOOM_RATIO للتكبير على أجهزة Android 11 أو الإصدارات الأحدث التي تحتوي على CONTROL_ZOOM_RATIO_RANGE صالح. (I62cc6)

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

  • تم إصلاح مشكلة NumberFormatException التي حدثت عندما كان معرّف الكاميرا غير صحيح. (Ib2228)
  • لا يتطلّب إنشاء UseCases إكمال عملية إعداد CameraX. يتم ضبط جميع الإعدادات الخاصة بالتنفيذ على UseCase بعد ربطها بمثيل Camera، وهو ProcessCameraProvider.bindToLifecycle() لواجهة برمجة التطبيقات العامة. (Ia5411)
  • ستعرض الدالة <UseCase>.getTargetRotation() القيمة Surface.ROTATION_0 إذا تم استدعاؤها قبل إرفاقها بمثيل Camera، ما لم يتم ضبط targetRotation على Builder أو UseCase. (I80fcd)

الإصدار ‎1.0.0-beta10 من Camera-Core

‫23 سبتمبر 2020

تم طرح androidx.camera:camera-core:1.0.0-beta10. يتضمّن الإصدار 1.0.0-beta10 هذه التعديلات.

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

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

الإصدار ‎1.0.0-beta10 من Camera-Camera2

‫23 سبتمبر 2020

تم طرح androidx.camera:camera-camera2:1.0.0-beta10. يتضمّن الإصدار 1.0.0-beta10 هذه التعديلات.

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

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

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

تم طرح androidx.camera:camera-camera2:1.0.0-beta09. يتضمّن الإصدار 1.0.0-beta09 هذه التعديلات.

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

  • بدلاً من توفير طرق ثابتة، تأخذ Camera2CameraInfo مثيل CameraInfo عند إنشائها لاسترداد المعلومات ذات الصلة بـ Camera2 منها. (I5b844)

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

  • تم إصلاح مشكلة نسبة العرض إلى الارتفاع المستهدَفة على الأجهزة اللوحية. يجب اختيار حجم 16:9 عندما تكون نسبة العرض إلى الارتفاع المستهدَفة مضبوطة على AspectRatio.RATIO_16_9. (Ib7fcf، b/151969438)
  • يجب عرض InitializationException ليتمكّن التطبيق من معالجة خطأ AssertionError الذي حدث عند إنشاء CameraCharacteristics. (I89c8c، b/160524721)
  • تمت إضافة واجهات تجريبية لـ ExposureCompensation‏ (If96c7)

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

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

تم طرح androidx.camera:camera-core:1.0.0-beta09. يتضمّن الإصدار 1.0.0-beta09 هذه التعديلات.

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

  • تم إصلاح الخطأ الذي تسبَّب في وضع علامة على إطار العرض بأنّه غير فارغ في UseCaseGroup. يجب أن يتمكّن المطوّرون من إنشاء إطار عرض بدون ضبطه. (Ie3d2e)
  • تمت إضافة واجهات تجريبية لـ ExposureCompensation (If96c7)
  • السماح بتدوير الهدف عشوائيًا في "المعاينة" يتم احتساب معلومات التحويل وإرجاعها إلى المستخدم بشكل فوري من خلال دالة استدعاء جديدة من النوع TranformationInfoListener. (I21470)

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

  • تم إصلاح مشكلة عدم إيقاف الفلاش على بعض الأجهزة، والتي تحدث عند ضبط وضع الفلاش على FLASH_MODE_ON لالتقاط صورة، ثم تغييره إلى FLASH_MODE_OFF عند تشغيل الفلاش. تظهر المشكلة كما لو كان وضع المصباح مفعَّلاً. (Ib4451، b/162568128)
  • تم فرض استخدام TextureView على PreviewView في حال تفعيل تأثير الإضافة، وإذا كان تنفيذ مكتبة المورّد يتطلّب إجراء عملية خاصة على مساحة العرض الناتجة. (I0c3cc)
  • تم إصلاح تسرُّب النشاط/الجزء عند تمرير سياق النشاط/الجزء إلى ProcessCameraProvider.getInstance(Context).

المشاكل المعروفة

  • عند ضبط ViewPort، قد يكون مستطيل الاقتصاص في ImageCapture غير صحيح على الأجهزة التي تدوّر مخزن الصور المؤقت في HAL. سيتم حلّ هذه المشكلة في الإصدار التالي.

الإصدار ‎1.0.0-beta08 من Camera-Camera2

‫19 أغسطس 2020

تم طرح androidx.camera:camera-camera2:1.0.0-beta08. يتضمّن الإصدار 1.0.0-beta08 هذه التعديلات.

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

  • تم تحسين bindToLifecycle ليعمل بسرعة على سلسلة التعليمات الرئيسية. (I1d57e)
  • يستخدم DisplayOrientedMeteringPointFactory مثيل CameraInfo بدلاً من CameraSelector، لذا هناك ربط مباشر بالكاميرا التي سينشئ المصنع نقاطًا لها. جميع الفئات التي تستخدم DisplayOrientedMeteringPointFactory تستخدم أيضًا مثيل CameraInfo بدلاً من CameraSelector. (I400c1)
  • تم إصلاح مشكلة تجميع حجم نسبة العرض إلى الارتفاع للدقة التلقائية، حيث يتم اختيار حجم mod16 بنسبة 16:9 (864x480) عندما يكون إعداد الدقة المستهدفة 2016x1080 وهناك حجم آخر بنسبة 16:9 (1920x1080) متاح. (I53167، b/159363774)
  • تم إصلاح مشكلة CameraControl التي تمنع عمله بسبب حالة السباق (I2279f، b/152333890، b/160714166)

الإصدار 1.0.0-beta08 من Camera-Core

‫19 أغسطس 2020

تم طرح androidx.camera:camera-core:1.0.0-beta08. يتضمّن الإصدار 1.0.0-beta08 هذه التعديلات.

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

  • تستخدم الدالة DisplayOrientedMeteringPointFactory مثيل CameraInfo بدلاً من CameraSelector، لذا هناك ربط مباشر بالكاميرا التي ستنشئ الدالة نقاطًا لها. جميع الفئات التي تستخدم DisplayOrientedMeteringPointFactory تستخدم أيضًا مثيل CameraInfo بدلاً من CameraSelector. (I400c1)

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

  • بالنسبة إلى التقاط الصور، يمكنك استبدال علامة "القلب أفقيًا" في البيانات الوصفية استنادًا إلى اتجاه الكاميرا. (I28499)
  • من المفترض ألا يتعطّل الإعداد بعد الآن عند استخدام Context لا يعرض عنصر Application من Context.getApplicationContext(). (I3d3c9، b/160817073)

الإصدار 1.0.0-beta07 من Camera-Camera2

‫22 يوليو 2020

تم طرح androidx.camera:camera-camera2:1.0.0-beta07. يتضمّن الإصدار 1.0.0-beta07 هذه التعديلات.

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

  • تم إصلاح مشكلة تمدّد المعاينة على جهاز 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)

الإصدار ‎1.0.0-beta06 من Camera-Camera2

‫24 يونيو 2020

تم طرح androidx.camera:camera-camera2:1.0.0-beta06. يتضمّن الإصدار 1.0.0-beta06 هذه التعديلات.

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

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

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

  • تم إصلاح المشكلة المتمثّلة في تعذُّر تركيز startFocusAndMetering بنجاح على Samsung Galaxy S7. (If3be7، b/159039233)
  • تم إصلاح مشكلة عدم إمكانية إغلاق الكاميرا بعد الخروج من التطبيق. (I7a7b3)
  • تم إصلاح مشكلة توقُّف المعاينة عند تبديل الكاميرا بشكل متكرر عند استخدام تنفيذ SurfaceView في PreviewView‏ (I920ce)
  • ستفشل الدالة CameraControl#startFocusAndMetering إذا لم يتمكّن أي من عناصر MeteringPoint المحدّدة من إنشاء مستطيلات قياس صالحة. (Id53ce)

الإصدار ‎1.0.0-beta06 من Camera-Core

‫24 يونيو 2020

تم طرح androidx.camera:camera-core:1.0.0-beta06. يتضمّن الإصدار 1.0.0-beta06 هذه التعديلات.

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

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

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

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

الإصدار ‎1.0.0-beta05 من Camera-Camera2

‫10 يونيو 2020

تم طرح androidx.camera:camera-camera2:1.0.0-beta05. يتضمّن الإصدار 1.0.0-beta05 هذه التعديلات.

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

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

الإصدار ‎1.0.0-beta05 من Camera-Core

‫10 يونيو 2020

تم طرح androidx.camera:camera-core:1.0.0-beta05. يتضمّن الإصدار 1.0.0-beta05 هذه التعديلات.

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

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

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

  • تم تعديل مستندات javadocs لكل من setTargetResolution وsetTargetRotation. (Iae16f)

الإصدار ‎1.0.0-beta04 من Camera-Camera2

‫27 مايو 2020

تم طرح androidx.camera:camera-camera2:1.0.0-beta04. يتضمّن الإصدار 1.0.0-beta04 هذه التعديلات.

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

  • تم السماح للتطبيقات بضبط أي مَعلمات لطلبات التقاط الصور في Camera2 من خلال Camera2Interop بدون حدوث عطل. يُرجى العِلم أنّه في حال حدوث مشاكل نتيجة إلغاء المَعلمات، لا يمكن ضمان الثبات والسلوك عند إلغاء المَعلمات باستخدام Camera2Interop. (Ibe5a1، b/149103700)
  • تم إصلاح مشكلة الإعداد التلقائي عند استخدام تطبيق على جهاز يستخدم لغة زائفة. (I3bef3، b/154767663)
  • تم تحويل سجلّ الأخطاء المتعلّق بحالة الاستخدام المنفصلة إلى سجلّ تصحيح الأخطاء في Camera2CameraImpl. (I1a565، b/154422490)
  • تم إصلاح المشكلة المتمثّلة في التقاط صورة داكنة جدًا في بعض الأحيان على الرغم من تشغيل الفلاش. (I5d9fa، b/149729613)
  • تم إصلاح الخطأ الذي كان يمنع إرجاع المخزن المؤقت في ImageProxy من ImageCapture (I0c455، b/153249512)
  • تم إصلاح المشاكل التي تحدث عند ربط ImageCapture فقط: (1) تعذُّر التقاط الصور باستخدام MAX_QUALITY، و(2) إنشاء جودة صورة سيئة بسبب عدم عمل التعريض التلقائي. (I17782، b/145326998)
  • تم تحسين موثوقية إعادة فتح الكاميرا عندما يتم فصل CameraX من خلال عملية أخرى أو مسار رمز يسرق الكاميرا (I1fbc3، b/153714651)

الإصدار ‎1.0.0-beta04 من Camera-Core

‫27 مايو 2020

تم طرح androidx.camera:camera-core:1.0.0-beta04. يتضمّن الإصدار 1.0.0-beta04 هذه التعديلات.

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

  • تضيف واجهة برمجة تطبيقات تجريبية، وهي CameraXConfig.Builder#setSchedulerHandler()، لضبط المعالج المستخدَم داخليًا من خلال حزمة كاميرا CameraX. من المفترض أن تتيح واجهة برمجة التطبيقات الجديدة هذه مع CameraXConfig.Builder#setCameraExecutor() التحكّم الكامل في سلاسل المحادثات التي تستخدمها حزمة كاميرا CameraX. (I7bf32، b/121160431)

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

  • يتم إصلاح العطل في ImageAnalysis حيث يتم الوصول إلى ImageProxy بعد إغلاق ImageReaderProxy. يؤدي ذلك أيضًا إلى إغلاق جميع ImageProxy التي تلقّاها Analyzer قبل إغلاق ImageReaderProxy. (I4b299، b/145956416، b/154155377، b/156357269)
  • تمّت إزالة المَعلمة CameraInfo من PreviewView#createSurfaceProvider()، وتستردّها PreviewView الآن داخليًا من SurfaceRequest. (If18f0، b/154652477)
  • تم إصلاح مشكلة الإعداد التلقائي عند استخدام تطبيق على جهاز يستخدم لغة زائفة. (I3bef3، b/154767663)
  • تم إصلاح المشكلة المتمثّلة في التقاط صورة داكنة جدًا في بعض الأحيان على الرغم من تشغيل الفلاش. (I5d9fa، b/149729613)
  • تم إصلاح مشكلة في ImageAnalysis حيث أدّت الطلبات المتعدّدة إلى 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)

الإصدار ‎1.0.0-beta03 من Camera-Camera2

نيسان (أبريل) 2020

تم طرح androidx.camera:camera-camera2:1.0.0-beta03. يتضمّن الإصدار 1.0.0-beta03 هذه التعديلات.

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

  • إصلاحات لدعم إصدار camera-core

الإصدار ‎1.0.0-beta03 من Camera-Core

نيسان (أبريل) 2020

تم طرح androidx.camera:camera-core:1.0.0-beta03. يتضمّن الإصدار 1.0.0-beta03 هذه التعديلات.

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

  • تم إصلاح مشكلة تراجُع الأداء من الإصدار beta03 حيث يؤدي استدعاء bindToLifecycle() بدون UseCase إلى حدوث استثناء. وقد منع ذلك استرداد Camera بدون ربط UseCase.

الإصدار 1.0.0-beta02 من Camera-Camera2

‫1 أبريل 2020

تم طرح androidx.camera:camera-camera2:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.

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

  • تم إصلاح ImageInfo.getRotationDegrees() من ImageProxy الذي تم إنشاؤه بواسطة ImageCapture ليتطابق مع قيمة دوران اتجاه EXIF. (Id4281، b/150802561)
  • لم يعُد الترتيب الصريح لتبعيات CameraX ضمن build.gradle مطلوبًا لاستخدام عملية التنفيذ التلقائية لـ CameraX/Camera2. في الحالات التي يكون فيها تعريف التبعيات الصارمة مطلوبًا، يمكن الآن تضمين جميع تبعيات CameraX في ملف الإصدار. (I46e88)
  • تم إصلاح مشكلة IllegalArgumentException التي تحدث على الأجهزة التي يقلّ حجم شاشتها عن 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() أكثر من مرة.

الإصدار ‎1.0.0-beta01 من Camera-Camera2

‫26 فبراير 2020

تم طرح androidx.camera:camera-camera2:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.

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

  • تمت إعادة تسمية SurfaceRequest.setSurface(Surface) إلى SurfaceRequest.provideSurface(Surface)، و SurfaceRequest.setWillNotComplete() إلى SurfaceRequest.willNotProvideSurface(). (I224fe)
  • تم إصلاح مشكلة عدم صحة نسبة العرض إلى الارتفاع للصورة المحفوظة بعد تغيير قيمة التدوير المستهدَفة باستخدام ImageCapture.setTargetRotation(). (I474ea، b/148763432)
  • تم إصلاح عملية إعداد نُسخ التطبيق مع تفعيل ProGuard من خلال الاحتفاظ بالعلامة التي تضبط موفّر CameraXConfig التلقائي. (I2d6c1)

الإصدار ‎1.0.0-beta01 من Camera-Core

‫26 فبراير 2020

تم طرح androidx.camera:camera-core:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.

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

  • تم استبدال ListenableFuture في SurfaceRequest.provideSurface() بـ Executor وCallback. يؤدي ذلك إلى تبسيط واجهة برمجة التطبيقات من خلال عدم الحاجة إلى معالجة الاستثناءات في provideSurface() وفرض عدم إلغاء طلب معاودة الاتصال في provideSurface(). يساعد ذلك في منع تعطُّل الأجهزة القديمة بسبب إصدار الأسطح قبل الأوان. يُستخدم الكائن SurfaceRequest.Result الآن لتتبُّع كيفية استخدام SurfaceRequest لـ Surface المقدَّم. (I7854b)
  • تمت إعادة تسمية SurfaceRequest.setSurface(Surface) إلى SurfaceRequest.provideSurface(Surface) وSurfaceRequest.setWillNotComplete() إلى SurfaceRequest.willNotProvideSurface(). (I224fe)

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

  • تم إصلاح مشكلة عدم صحة نسبة العرض إلى الارتفاع للصورة المحفوظة بعد تغيير قيمة التدوير المستهدَفة باستخدام ImageCapture.setTargetRotation(). (I474ea، b/148763432)
  • تم إصلاح عملية إعداد نُسخ التطبيق مع تفعيل ProGuard من خلال الاحتفاظ بالعلامة التي تضبط موفّر CameraXConfig التلقائي. (I2d6c1)
  • تم تعديل مستندات واجهات برمجة التطبيقات الخاصة بوضع الفلاش لتشمل القيم المحتملة. (I4a3ec)

الإصدار ‎1.0.0-alpha10 من Camera-Camera2

‫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 من Camera-Core

‫10 فبراير 2020

تم طرح androidx.camera:camera-core:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.

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

  • تم تعديل "ImageCapture" للسماح بحفظ الصور في "Uri" و"OutputStream". تم دمج طرق takePicture المتعدّدة في طريقة واحدة. تم تعديل التطبيق التجريبي لاستخدام Uri كمثال أساسي. (Ia3bec)
  • تم تغيير اسم "Preview.PreviewSurfaceProvider" إلى "Preview.SurfaceProvider". لم تعُد واجهات برمجة التطبيقات SurfaceProvider تتطلّب من المطوّرين إنشاء ListenableFuture خاصة بهم، وأصبح توفير Surface يتم الآن من خلال عنصر SurfaceRequest جديد. تمت إزالة الطريقة Preview.getPreviewSurfaceProvider() بسبب احتمال إساءة استخدامها عند إقران Preview بفئات أخرى مثل PreviewView. (I20105)
  • تمت إضافة getTargetRotation() وgetTargetName() إلى Preview. (Iceee7)
  • تمت إضافة "getTargetRotation()" و"getBackpressureStrategy()" و"getImageQueueDepth()" في "ImageAnalysis". (I9d6d9)
  • تمّت إضافة getTargetRotation() وgetCaptureMode() في ImageCapture() (I5bc17)
  • تم الآن استبدال الوسيطات التي تم تمريرها سابقًا في ImageCapture.OnImageSavedCallback.onError() وImageCapture.OnImageCapturedCallback.onError() بوسيطة واحدة ImageCaptureException، والتي لا تزال تحتوي على جميع المعلومات التي تم تمريرها سابقًا.
  • تمت إزالة وسيطة الملف التي تم تمريرها سابقًا في ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2)
  • تم الآن وضع علامة "نهائي" على الصفَّين Preview وImageCapture. (I2500b)
  • تم تعديل واجهة برمجة التطبيقات، حيث تم دمج الطرق getZoomRatio() وgetMaxZoomRatio() وgetMinZoomRatio() وgetLinearZoom() من CameraInfo في getZoomState() التي تعرض مثيل ZoomState. (Ib19fe)
  • تمت إزالة حقلَي واجهة برمجة التطبيقات OPTION_TARGET_CLASS وOPTION_TARGET_NAME من CameraXConfig لأنّهما مخصّصان للاستخدام الداخلي في المكتبة فقط. تمت إزالة الدالة الإنشائية لـ "CameraXConfig.Builder". (I96912)
  • تمت إزالة الشرط الذي يفرض على التطبيق تمديد Application لتهيئة CameraX. سيتم الآن إعداد CameraX باستخدام إعدادات Camera2 التلقائية طالما أنّ العنصر camera-camera2 مضمّن في build.gradle التطبيق. (I58ff5) (b/146923574)

الإصدار ‎1.0.0-alpha09 من Camera-Camera2

‫22 يناير 2020

تم طرح androidx.camera:camera-camera2:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.

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

  • تمت إضافة مسار التشغيل التفاعلي لـ Camera2 من أجل استخراج معرّف كاميرا Camera2. يمكنك استخراج معرّف الكاميرا من CameraInfo باستخدام Camera2CameraInfo.extractCameraId(). توضّح عيّنة التعليمات البرمجية التالية كيفية استخدام هذه الميزة:

    Camera camera = provider.bindToLifecycle(...);
    String cameraId =
        Camera2CameraInfo.extractCameraId(camera.getCameraInfo());
    

    تتطلّب الفئة Camera2CameraInfo استخدام markerClass من النوع ExperimentalCamera2Interop.

الإصدار 1.0.0-alpha09 من Camera-Core

‫22 يناير 2020

تم طرح androidx.camera:camera-core:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.

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

  • تمت إعادة تسمية المَعلمة SurfaceOrientedMeteringPointFactory useCaseForSurface إلى useCaseForAspectRatio وتمت توسعة المستندات المرجعية.
  • تم استبدال طرق FocusMeteringAction.Builder.from() بالدوال الإنشائية FocusMeteringAction.Builder().
  • تمت إزالة "DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)". يجب أن تستخدم التطبيقات الدالة الإنشائية التي تأخذ مَعلمة Display وتمرّرها في العرض الحالي.
  • تحسينات Javadoc لواجهات برمجة التطبيقات الخاصة بالتركيز والقياس في ما يتعلّق بـ MeteringMode وعلامات 3A واستخدام مَعلمة Display
  • تم توسيع المستندات المرجعية لـ setZoomRatio وsetLinearZoom.

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

  • تم إصلاح المشاكل التي تحدث عند إغلاق الكاميرات ثم فتحها، ما يؤدي إلى تعذُّر التحقّق من "الشرط الأساسي".
  • تم إصلاح ConcurrentModificationException قد يحدث عند استخدام واجهات برمجة التطبيقات الخاصة بالفلاش والتكبير/التصغير.
  • تم إصلاح المشكلة المتعلقة باختيار درجات دقة أقرب إلى درجة الدقة المطلوبة عندما يكون حجم أبعاد mod16 متاحًا.
  • startFocusMetering and cancelFocusMetering APIs now behave as documented, with correct timing and potentially returning errors when they occur.
  • تم إصلاح المشكلة التي تحدث عند طلب دقة مستهدَفة معيّنة مع نسبة عرض إلى ارتفاع للاقتصاص على جهاز لا يتيح هذه الأحجام. الآن، سيتم اختيار حجم غير مقتطع بدقة كافية لربط الطلب الأصلي عندما يكون متاحًا.

الإصدار ‎1.0.0-alpha08 من Camera-Camera2

‫18 ديسمبر 2019

تم طرح androidx.camera:camera-camera2:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.

المشاكل المعروفة

  • لا تعمل بعض خيارات طلبات الالتقاط في Camera2 عند استخدام إمكانية التشغيل التفاعلي في Camera2. إذا كان الخيار المطلوب غير متاح، سيتعذّر بدء الجلسة وقد يحدث خطأ مثل: 09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination

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

  • تم إصلاح مشكلة ظهور شاشة سوداء في المعاينة بعد تدوير الكاميرا أو تبديلها في المستويَين 21 و22 من واجهة برمجة التطبيقات.

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

  • ميزة تجريبية: تمت إضافة مسار تشغيل متبادل لواجهة Camera2 من أجل استخراج معرّف الكاميرا.

الإصدار ‎1.0.0-alpha08 من Camera-Core

‫18 ديسمبر 2019

تم طرح androidx.camera:camera-core:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.

المشاكل المعروفة

  • قد تظهر معاينة نسبة العرض إلى الارتفاع بشكل غير صحيح في التطبيقات التي تستخدم PreviewView أو CameraView. يحدث ذلك بعد الإيقاف المؤقت أو الاستئناف على بعض الأجهزة التي تتضمّن ميزات كاملة، مثل Pixel2.

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

  • تم تعديل المستندات الخاصة بـ FocusMeteringAction وCameraControl.
  • تم تنفيذ TorchControl لـ enableTorch() وgetTorchState().

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

  • تم إخفاء IntDefs ونقل ثوابت IntDef خارج تعريف IntDef.
  • تم نقل "rotationDegrees" من الصف "OnImageCaptureCallback" إلى "ImageInfo".
  • تم نقل "rotationDegrees" من الصف "Analyzer" إلى "ImageInfo".

الإصدار ‎1.0.0-alpha07 من Camera-Camera2

‫4 ديسمبر 2019

تم طرح androidx.camera:camera-camera2:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 من camera-camera2 هذه التعديلات

  • أصبح "Camera2Config" متاحًا الآن للاستخدام مع إعداد وضبط تنفيذ مستند إلى Camera2 لمكتبة CameraX. تتوفّر المزيد من التفاصيل حول كيفية استخدام هذه الميزة في عملية الإعداد في قسم camera-core ضمن ملاحظات الإصدار.
  • تم الآن وضع علامة "تجريبية" على وظيفة التشغيل التفاعلي لـ Camera2 ونقلها إلى حزمة منفصلة، وهي androidx.camera.camera2.interop.

الإصدار ‎1.0.0-alpha07 من Camera-Core

‫4 ديسمبر 2019

تم طرح androidx.camera:camera-core:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 من camera-core هذه التعديلات

يُرجى العِلم أنّ هناك بعض التغييرات الجوهرية في إصدار Alpha هذا بينما نستعد لإصدار Beta. ننصحك بمراجعة التغييرات ومشاركة أي ملاحظات لديك في مجموعة CameraX على Google. بالنسبة إلى المطوّرين الذين يستخدمون CameraX في التطبيقات المتوفّرة على "متجر Google 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)
    
  • تمت إزالة فئات "Config" لحالات الاستخدام. بدلاً من ذلك، يمكنك إنشاء حالات الاستخدام مباشرةً، وضبط الخيارات في كل أداة إنشاء حالات استخدام. على سبيل المثال:

    preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()
    
  • تم تعديل حالة استخدام "المعاينة" لقبول مساحة عرض تم إنشاؤها وإدارتها بواسطة التطبيق لضمان اتّباع أفضل ممارسات Android. ننصحك بشدة باستخدام فئة العرض PreviewView المتوفّرة في حزمة camera-view.

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • يُرجى الاطّلاع على المستندات الخاصة بإرفاق مساحة عرض يديرها التطبيق. في هذه الحالات، يدير التطبيق مراحل نشاط السطح.

  • ملاحظة مهمة: يجب أن يستدعي تنفيذ طريقة ImageAnalysis Analyzer الدالة image.close() على الصور التي تم تلقّيها عند الانتهاء من استخدامها. وإلا، قد لا يتم تلقّي صور جديدة أو قد تتوقف الكاميرا، وذلك حسب إعداد الضغط الخلفي. يُرجى الرجوع إلى المستندات المرجعية للحصول على التفاصيل.

  • تم تغيير ImageAnalysis ImageReaderMode الآن إلى استراتيجية الضغط العكسي intdef.

  • تم وضع علامة "تجريبي" على "ImageProxy.getImage()". يجب أن تضيف التطبيقات تعليقات توضيحية على الاستخدام، على سبيل المثال من خلال @androidx.camera.core.ExperimentalGetImage

  • تمت إزالة شرط التعليق التوضيحي "UIThread" لـ "Analyzer".

  • تمت إضافة الدالة ImageAnalysis.clearAnalyzer() لإزالة محلّل.

  • تمت إعادة تسمية المستمعين الذين لديهم أكثر من طريقة واحدة إلى "رد الاتصال":

    • ‫"ImageCapture.OnImageCapturedListener" أصبح الآن "ImageCapture.OnImageCapturedCallback"
    • ‫"ImageCapture.OnImageSavedListener" أصبح الآن "ImageCapture.OnImageSavedCallback"
    • ‫"VideoCapture.OnVideoSavedListener" أصبح الآن "VideoCapture.OnVideoSavedCallback"
  • تم تغيير Enums إلى IntDef

  • تمت إضافة عناصر التحكّم في التكبير/التصغير:

    • CameraControl.setLinearZoom()
    • CameraControl.setZoomRatio()
    • CameraInfo.getLinearZoom()
    • CameraInfo.getMaxZoomRatio()
    • CameraInfo.getZoomRatio()
  • تمت إضافة CameraInfo.hasFlashUnit() لتحديد ما إذا كان جهاز الفلاش/المصباح متوفّرًا.

  • تمّت إزالة "CameraInfo.isFlashAvailable()". يحلّ المصباح محلّ وظيفة الفلاش. يمكنك الاطّلاع على مزيد من التفاصيل في المستندات المرجعية.

  • يتم استبدال حقول ImageCapture.Metadata بدوال استرداد القيمة get/set/is.

  • تعرض startFocusMetering وcancelFocusMetering الآن ListenableFutures التي تمثّل العملية غير المتزامنة للمكالمة.

  • تعمل MeteringPoints الآن كمقابض لإجراءات القياس، ويتم إنتاجها بواسطة المصانع. يجب أن تستخدم التطبيقات المصانع الحالية بدلاً من المصانع المخصّصة.

المشاكل التي تم إصلاحها

  • تم إصلاح المشكلة التي كانت تحدث عند التقاط صورة بعد استئناف التسجيل (بعد أن كان هناك صور في انتظار اكتمال التقاطها قبل الإيقاف المؤقت).
  • مشكلة معروفة: تعمل السمة CameraControl.enableTorch()، ولكنّ السمة ListenableFuture<Void> التي يتم عرضها تكون دائمًا complete(success) في المستقبل، حتى في حال عدم توفّر وحدة فلاش. ستعمل الإصدارات المستقبلية على إصلاح هذا السلوك النهائي: عندما لا تكون هناك وحدة فلاش، يفشل enableTorch(true) على الفور (لن يتم إرسال الطلب إلى CaptureSession)، ويظل TorchState غير مفعَّل.
  • مشكلة معروفة: تبدأ الدالتان startFocusAndMetering وcancelFocusAndMetering قياس التركيز وتلغيانه، ولكنّهما تعرضان نتيجة completed (success) مستقبلية فورية لا تمثّل السلوك الموثَّق. الحقل FocusMeteringResult من ListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering() هو نتيجة مزيفة isFocusSuccessful() وتكون دائمًا "false"، وتختلف عن السلوك المقصود والموثَّق.
  • مشكلة معروفة: يتم تطوير مصنع نقاط قياس للاستخدام مع أحداث اللمس في 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) إلى setTargetAspectRatioCustom(Rational aspectRatio) في ImageCapture. عند ضبط هذه السمة، يتم اقتصاص مخرجات ImageCapture وفقًا لذلك.

واجهات برمجة التطبيقات الخاصة بالمنفّذ

  • تقبل الدوال التالية مَعلمة منفّذ، ما يسمح للتطبيق بالتحكّم في المنفّذ الذي تعمل عليه الدالة.
    • واجهة برمجة تطبيقات Preview.setOnPreviewOutputUpdateListener() إذا لم يكن المنفّذ متوفّرًا لهذه الدالة، يتم تنفيذها في سلسلة التعليمات الرئيسية.
    • Preview.setOnPreviewOutputUpdateListener
    • FocusMeteringAction.Builder.setAutoFocusCallback
    • ImageAnalysis.setAnalyzer
    • ImageCapture.takePicture
    • CameraView.takePicture
    • CameraView.startRecording
    • VideoCapture.startRecording

تمت إضافة CameraInfo مع واجهتَي برمجة التطبيقات "التحقّق من توفّر الفلاش" و"دوران أداة الاستشعار"

  • تمت إضافة CameraInfo وطريقة getCameraInfo، ما يسمح للتطبيقات بالتحقّق من توفّر CameraInfo مواجِه للعدسة ومن توفّر فلاش في تلك الكاميرا. على سبيل المثال:

    try {
        CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing);
        LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable();
        flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE);
    } catch (CameraInfoUnavailableException e) {
        Log.w(TAG, "Cannot get flash available information", e);
        flashToggle.setVisibility(View.VISIBLE);
    }
    
  • تمت إضافة CameraInfo.getSensorRotationDegrees(). وتوفّر اتجاه أداة استشعار الكاميرا بالنسبة إلى الاتجاه الطبيعي للجهاز، أو لتسهيل الأمر، بالنسبة إلى الاتجاه الذي يحدّده دوران السطح (الذي يصف الاتجاه بالنسبة إلى الاتجاه الطبيعي).

تغييرات في واجهة برمجة التطبيقات وإصلاح الأخطاء

  • نِسب العرض إلى الارتفاع: لكل حالة استخدام، يجب أن تستدعي التطبيقات إما setTargetResolution() أو setTargetAspectRatio() فقط. ويؤدي استدعاء كليهما في أداة الإنشاء نفسها إلى ظهور خطأ.
    • ننصح بشكل عام باستخدام setTargetAspectRatio() استنادًا إلى تصميم واجهة المستخدم في التطبيق. تستند الحلول المحدّدة إلى حالة الاستخدام. على سبيل المثال، تكون المعاينة قريبة من درجات دقة الشاشة، وتوفّر ميزة التقاط الصور لقطات ثابتة عالية الدقة. يمكنك الاطّلاع على جدول الحلول التلقائية لمزيد من المعلومات.
    • استخدِم setTargetResolution() في حالات أكثر تحديدًا، مثلاً عندما يكون الحد الأدنى (لتوفير العمليات الحسابية) أو الحد الأقصى للدقة (لمعالجة التفاصيل) مطلوبًا.
  • ‫Executor API: تمت إزالة طلب setCallbackHandler() من واجهات برمجة التطبيقات لإعداد حالات الاستخدام. بدلاً من ذلك، يمكن للتطبيقات ضبط المنفِّذ كمَعلمة في واجهات برمجة تطبيقات أخرى مختلفة تضبط دالة رد اتصال.
  • تم تعديل التعليقات التوضيحية الفارغة لدوال مختلفة.
  • تم إصلاح مشكلة كانت تؤدي إلى ظهور الخطأ java.lang.IllegalStateException at Camera$StateCallback.onError عند فتح الكاميرا.
  • تم إصلاح مشكلة اختيار درجات دقة صغيرة جدًا (أقل من 640×480) عندما يطلب التطبيق درجات دقة أكبر أو تلقائية، ما يؤدي إلى ظهور صورة معاينة ضبابية أو غير واضحة. ويمكن للتطبيقات التي تحتاج تحديدًا إلى درجات دقة أقل أن تطلبها صراحةً.
  • تم إصلاح مشكلة ظهور شاشة سوداء في الكاميرا (تعذّر تشغيل الكاميرا) بعد العودة من إجراء أدى إلى تشغيل تطبيق كاميرا آخر.
  • تم إصلاح خطأ كان يؤدي إلى ظهور رسالة الخطأ التالية عند بدء تشغيل التطبيقات أو إيقافها بشكل متكرر: 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();

    • تمت إضافة واجهات برمجة تطبيقات لفئات Metering Point Factory التي تساعد في تحويل إحداثيات النقر إلى إحداثيات أداة الاستشعار، استنادًا إلى فئات العرض:

      MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView); MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);

  • يجب فرض استدعاء الطرق التالية في سلسلة واجهة المستخدم الرئيسية، مع عرض IllegalStateException في حال عدم استدعائها. ستسمح الإصدارات المستقبلية بالاستخدام في سلاسل محادثات أخرى وضمان التسلسل.

    • CameraX.bindToLifecycle()
    • CameraX.unbind()
    • CameraX.unbindAll()
    • ImageAnalysis.setAnalyzer()
    • ImageAnalysis.getAnalyzer()
    • ImageAnalysis.removeAnalyzer()
    • Preview.removePreviewOutputListener()
    • Preview.getOnPreviewOutputUpdateListener()
    • Preview.setOnPreviewOutputUpdateListener()
  • تقبل الآن إعدادات الضبط المختلفة مَعلمات فارغة، وقد تعرض دوال getter المقابلة قيمة فارغة.

  • تم إصلاح المشكلة التي تحدث عند الاختبار على المحاكيات التي لا تتوافق مع إعدادات التركيز التلقائي/التعرّض التلقائي/توازن اللون الأبيض التلقائي.

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

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

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

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

  • تمت إزالة اختبار Camera2Inititalizer لأنّ تغطيته كانت غير واضحة أو مضلِّلة.

الإصدار 1.0.0-alpha04 من Camera-Camera2 وCamera-Core

‫7 أغسطس 2019

تم طرح androidx.camera:camera-camera2:1.0.0-alpha04 وandroidx.camera:camera-core:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 هذه التعديلات.

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

تغييرات على اختيار نسبة العرض إلى الارتفاع ودرجة الدقة

هدف CameraX هو بدء جلسة الكاميرا بنجاح. وهذا يعني أنّ CameraX يقدّم تنازلات بشأن الدقة/نسب العرض إلى الارتفاع استنادًا إلى إمكانات الجهاز، وذلك لبدء جلسة التقاط كهدف أول، وبالتالي قد لا يتم تنفيذ الطلبات الدقيقة. قد يرجع ذلك إلى:

  • الأجهزة التي لا تتوافق مع درجة الدقة المطلوبة
  • مشاكل التوافق، مثل الأجهزة القديمة التي يجب استخدام درجات دقة معيّنة لتشغيلها بشكل صحيح
  • على بعض الأجهزة، لا تتوفّر بعض التنسيقات إلا بنسب عرض إلى ارتفاع معيّنة
  • يشير هذا الخيار إلى تفضيل "أقرب mod16" لترميز JPEG أو ترميز الفيديو. يمكنك الاطّلاع على CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP

على الرغم من أنّ CameraX تنشئ الجلسة وتديرها، يجب دائمًا التحقّق من أحجام الصور التي يتم عرضها في مخرجات حالة الاستخدام في الرمز البرمجي وضبطها وفقًا لذلك.

تم إجراء بعض التغييرات على إعدادات درجات الدقة ونِسب العرض إلى الارتفاع، وذلك بهدف جعل واجهة برمجة التطبيقات أكثر وضوحًا:

  • أصبحت حالة استخدام المعاينة الآن تُعتبر ذات نسبة عرض إلى ارتفاع تلقائية تبلغ 4:3 في حال عدم ضبط أي نسبة.
  • عندما تأخذ مكتبة CameraX في الاعتبار داخليًا التغييرات في درجات الدقة ونِسب العرض إلى الارتفاع المطلوبة استنادًا إلى إمكانات الجهاز، فإنّها تحاول أولاً الحفاظ على نسبة العرض إلى الارتفاع نفسها (على النحو المحدّد في أي من طلبات setTargetAspectRatio أو setTargetResolution)
  • يتم اعتبار نسخة "أقرب 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
  • تم إصلاح المشكلة التي تحدث عند إلغاء ربط المعاينة بعد تفعيل الإضافات وبدء تشغيلها
  • يتم الآن نشر عناصر الإصدار الخاصة بـ camera-view وcamera-extensions كإصدارات أولية

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

  • تم إصلاح عطل في Input/Output Surface غير المضبوط عند الفتح/الإغلاق السريع أو الربط/إلغاء الربط
  • الانتقال إلى عمليات التنفيذ الجديدة في Futures
  • اختبار الإصلاحات لإجراء اختبار أكثر قوة
  • يعرض اختبار الدمج الأساسي الآن وقت التقاط الصور
  • تم تطوير فئة توافق داخلية لـ Executors
  • يتم الانتظار حتى تكتمل عملية التقاط الصور السابقة في تطبيق اختبار التوقيت، وتم تحسين الثبات

الإضافات

  • تمت إضافة عمليات التحقّق من الإصدارات
  • تغطية اختبار إضافية - عمليات معاودة الاتصال لأحداث الإضافات
  • تحسينات على الصور والبيانات الوصفية المتوافقة داخليًا
  • إصلاحات في تبديل الوضع في تطبيق الاختبار

الإصدار 1.0.0-alpha02 من Camera-Camera2 وCamera-Core

‫5 يونيو 2019

تم طرح androidx.camera:camera-core:1.0.0-alpha02 وandroidx.camera:camera-camera2:1.0.0-alpha02. يتضمّن الإصدار 1.0.0-alpha02 هذه التعديلات.

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

  • تم إصلاح مشكلة القسمة على صفر عند استخدام المحاكي
  • تم إصلاح خطأ NullPointerException/Surface Abandoned الذي يحدث على بعض الأجهزة عند التقاط الصور بسرعة أثناء إلغاء ربط حالات الاستخدام وإعادة ربطها بسرعة.
  • تم إصلاح مشكلة داخلية لضمان أن تؤثر تعديلات طلبات التسجيل في جميع مساحات العرض بشكل متّسق
  • تحسينات على الثبات عند إعادة تشغيل حالات الاستخدام في نُسخ التطبيق الجديدة
  • تغييرات في البنية الداخلية استعدادًا لإتاحة المنفّذين في واجهة برمجة التطبيقات
  • توضيحات إضافية في Javadoc حول فئة CameraX وإدارة مراحل النشاط
  • تمت إضافة اختبار قياس حالة التطبيق لاختبار أداء Antelope
  • إزالة الحاجة إلى "-keepattributes Signature" في إعدادات Proguard للتطبيق

‫Camera-Camera2 وCamera-Core 1.0.0-alpha01

‫7 مايو 2019

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

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

‫14 أكتوبر 2020

تم طرح androidx.camera:camera-lifecycle:1.0.0-beta11. يتضمّن الإصدار 1.0.0-beta11 هذه التعديلات.

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

  • ستعرض الدالة <UseCase>.getTargetRotation() القيمة Surface.ROTATION_0 إذا تم استدعاؤها قبل إرفاقها بمثيل Camera، ما لم يتم ضبط targetRotation على Builder أو UseCase. (I80fcd)

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

‫23 سبتمبر 2020

تم طرح androidx.camera:camera-lifecycle:1.0.0-beta10. يتضمّن الإصدار 1.0.0-beta10 هذه التعديلات.

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

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

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

تم طرح androidx.camera:camera-lifecycle:1.0.0-beta09. يتضمّن الإصدار 1.0.0-beta09 هذه التعديلات.

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

‫19 أغسطس 2020

تم طرح androidx.camera:camera-lifecycle:1.0.0-beta08. يتضمّن الإصدار 1.0.0-beta08 هذه التعديلات.

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

  • من المفترض ألا يتعطّل الإعداد بعد الآن عند استخدام Context لا يعرض عنصر Application من Context.getApplicationContext(). (I3d3c9، b/160817073)

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

‫22 يوليو 2020

تم طرح androidx.camera:camera-lifecycle:1.0.0-beta07. يتضمّن الإصدار 1.0.0-beta07 هذه التعديلات.

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

‫24 يونيو 2020

تم طرح androidx.camera:camera-lifecycle:1.0.0-beta06. يتضمّن الإصدار 1.0.0-beta06 هذه التعديلات.

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

  • يمكن الآن ضبط CameraX باستخدام ProcessCameraProvider#configureInstance()‎ قبل طلب ProcessCameraProvider#getInstance()‎. يتيح ذلك تخصيص CameraXConfig بدون الحاجة إلى تنفيذ CameraXConfig.Provider في فئة التطبيق. (Ia1a8d)

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

‫10 يونيو 2020

تم طرح androidx.camera:camera-lifecycle:1.0.0-beta05. يتضمّن الإصدار 1.0.0-beta05 هذه التعديلات.

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

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

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

‫27 مايو 2020

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

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

نيسان (أبريل) 2020

تم طرح androidx.camera:camera-lifecycle:1.0.0-beta03. يتضمّن الإصدار 1.0.0-beta03 هذه التعديلات.

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

  • تم إصلاح مشكلة تراجُع الأداء من الإصدار beta03 حيث يؤدي استدعاء bindToLifecycle() بدون UseCase إلى حدوث استثناء. وقد منع ذلك استرداد Camera بدون ربط UseCase.
  • إصلاحات لدعم إصدار camera-core

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

‫26 فبراير 2020

تم طرح androidx.camera:camera-lifecycle:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.

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

  • تم تعديل المستندات للإشارة إلى أنّه عند الحصول على ProcessCameraProvider أثناء الإعداد، يتم استخدام إعدادات تلقائية وأنّ تمديد Application هو أمر اختياري. (I5e395)

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

‫1 أبريل 2020

تم طرح androidx.camera:camera-lifecycle:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.

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

  • تم تعديل هذا الإصدار لإتاحة إصلاح الأخطاء في عناصر camera-camera2:1.0.0-beta02 وcamera-core:1.0.0-beta02.

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

‫10 فبراير 2020

تم طرح androidx.camera:camera-lifecycle:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.

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

  • تمت إضافة التعليق التوضيحي @MainThread إلى طرق BindToLifecycle وunbind وunbindAll. (I990d2)

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

‫22 يناير 2020

تم طرح androidx.camera:camera-lifecycle:1.0.0-alpha03. يتضمّن الإصدار 1.0.0-alpha03 هذه التعديلات.

التحديثات

  • إصلاحات وتحديثات متنوّعة لدعم تغييرات Camera Core وCamera2

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

‫18 ديسمبر 2019

تم طرح androidx.camera:camera-lifecycle:1.0.0-alpha02. يتضمّن الإصدار 1.0.0-alpha02 هذه التعديلات.

التغييرات في التبعيات

  • تم تعديلها لاستخدام androidx.camera:camera-core:1.0.0-alpha08.

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

‫4 ديسمبر 2019

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

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

  • تمت إضافة عنصر camera-lifecycle، ما يوفّر واجهة LifeCycleCameraProvider، وتنفيذًا يُسمى ProcessCameraProvider يوفّر العديد من وظائف فئة CameraX السابقة في النواة ويتم الحصول عليه من خلال طريقة getInstance().
  • يجب أن تتضمّن التطبيقات مكتبة camera-lifecycle لاستخدام 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)
  • تعديل ملفات واجهة برمجة التطبيقات لملف camera-extensions (If683a، b/161377155)

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

  • عدم السماح للتطبيق بتفعيل أوضاع الإضافة عند ربط VideoCapture لا تتوافق إضافات CameraX إلا مع ImageCapture وPreview. لا يمكن استخدام VideoCapture حاليًا. إذا ربط التطبيق VideoCapture وفعّل أي وضع إضافة، سيتم عرض IllegalArgumentException. (I0d87b)
  • لم يعُد CameraSelector#filter يعرض IllegalArgumentException عندما تكون مجموعة النتائج فارغة. (I27804)
  • تمت إعادة تسمية واجهة برمجة التطبيقات ExtensionsManager#getInstance لتصبح getInstanceAsync لأنّها تعرض ListenableFuture. يمكن أن تشير اللاحقة Async في اسم الدالة بوضوح إلى أنّها دالة غير متزامنة. (I279d2)
  • إزالة مَعلمة درجة الدقة من واجهة برمجة التطبيقات "ExtensionsManager#getEstimatedCaptureLatencyRange" لأنّ المستخدمين لا يمكنهم معرفة الأحجام المتوافقة مع حالة استخدام "ImageCapture" ولا يمكنهم التمييز بين ما إذا كانت معلومات وقت الاستجابة التي تم عرضها تخصّ الحد الأقصى لحجم ناتج الالتقاط أو مَعلمة درجة دقة الإدخال. (I74bb2)
  • نقل مَعلمة CameraProvider لدوال ExtensionsManager إلى واجهة برمجة التطبيقات getInstance() بهذه الطريقة، لن يحتاج المستخدمون إلى إدخال المَعلمة CameraProvider في كل مرة يستدعون فيها دوال ExtensionsManager. (Ic7e48)

الإصدار ‎1.0.0-alpha31

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

تم طرح androidx.camera:camera-extensions:1.0.0-alpha31 وandroidx.camera:camera-view:1.0.0-alpha31. يتضمّن الإصدار 1.0.0-alpha31 هذه التعديلات.

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

  • تمت إضافة CameraSelector#filter إلى واجهة برمجة التطبيقات العلنية لفلترة قائمة CameraInfos استنادًا إلى CameraSelector. (I105d0)

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

  • تم إصلاح عطل يحدث عند التبديل بين وضعَي الإضافات بسرعة على أجهزة معيّنة. (Iebbef)

الإصدار 1.0.0-alpha30

‫13 أكتوبر 2021

تم طرح androidx.camera:camera-extensions:1.0.0-alpha30 وandroidx.camera:camera-view:1.0.0-alpha30. يتضمّن الإصدار 1.0.0-alpha30 هذه التعديلات.

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

  • تمت إضافة التعليق التوضيحي ‎ @RequiresApi(21) إلى جميع فئات CameraX وتم إسقاط minSdkVersion من AndroidManifest.xml. سيسمح ذلك بدمج camera-core بسهولة في التطبيقات التي تتضمّن minSdkVersion أقل من 21، ولكنها تريد استخدام مسارات الرموز البرمجية بشكل مشروط والتي تعتمد على واجهة برمجة التطبيقات 21 والإصدارات الأحدث. بالنسبة إلى أي تطبيق يتضمّن الإصدار 21 من حزمة minSdkVersion أو الإصدارات الأعلى، لا يتطلّب هذا التغيير اتّخاذ أي إجراء. (Ie7f2e، b/200599470)

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

  • تم إصلاح مشكلة AbstractMethodError التي تحدث عند تفعيل proguard. (Iae468، b/201177844)

الإصدار ‎1.0.0-alpha29

‫29 سبتمبر 2021

تم طرح androidx.camera:camera-extensions:1.0.0-alpha29 وandroidx.camera:camera-view:1.0.0-alpha29. يتضمّن الإصدار 1.0.0-alpha29 هذه التعديلات.

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

  • تمت إزالة التعليق التوضيحي ExperimentalUseCaseGroup لأنّ واجهات برمجة التطبيقات لم تعُد تجريبية. (I01ef5)
  • إزالة RotationProvider#removeAllListeners(). يُرجى استخدام RotationProvider#removeListener(...) بدلاً من هذه السياسة. (Id9d4a)
  • تم تعديل فئة RotationReceiver: تم تغيير set/clear Listener إلى add/remove/removeAll، وتمت إزالة صيغة setListener التي تستخدم سلسلة التعليمات الرئيسية تلقائيًا، وتمت إضافة تعليقات توضيحية للطرق. (Ib1669)

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

  • تمت إعادة تسمية ExtensionMode#BEAUTY إلى FACE_RETOUCH لتقديم ما يتم تنفيذه من خلال وضع الإضافة بشكل صحيح. (I61f54، b/198515274)
  • تم إصلاح مشكلة إغلاق الكاميرا بشكل غير متوقّع عند استخدام عدة عناصر من CameraController وPreviewView في نشاط واحد. (Ibfd18، b/197539358)

الإصدار 1.0.0-alpha28

‫18 أغسطس 2021

تم طرح androidx.camera:camera-extensions:1.0.0-alpha28 وandroidx.camera:camera-view:1.0.0-alpha28. يتضمّن الإصدار 1.0.0-alpha28 هذه التعديلات.

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

  • تمت إزالة التعليق التوضيحي ExperimentalUseCaseGroupLifecycle لأنّ واجهات برمجة التطبيقات لم تعُد تجريبية. (I17b85)
  • تمت إعادة تصميم RotationListener وإعادة تسميته إلى RotationProvider. وتواصل تقديم الميزة نفسها باستخدام واجهة برمجة تطبيقات مختلفة قليلاً. (Idffc5)
  • إعادة تسمية TAP_TO_FOCUS_UNSUCCESSFUL إلى TAP_TO_FOCUS_NOT_FOCUSED وTAP_TO_FOCUS_SUCCESSFUL إلى TAP_TO_FOCUS_FOCUSED تم جعل OutputSize نهائيًا (I099fa)

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

  • تمت إزالة فئات <EffectName><UseCase>Extender المتوقفة نهائيًا وExtensionsErrorListener وواجهات برمجة التطبيقات ذات الصلة في ExtensionsManager. (I3b8c3)

الإصدار 1.0.0-alpha27

‫21 يوليو 2021

تم طرح androidx.camera:camera-extensions:1.0.0-alpha27 وandroidx.camera:camera-view:1.0.0-alpha27. يتضمّن الإصدار 1.0.0-alpha27 هذه التعديلات.

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

  • تمت ترقية واجهة برمجة التطبيقات viewport API من مرحلة تجريبية. أزِل التعليق التوضيحي التجريبي لواجهة برمجة التطبيقات. (I717ea)
  • تم تغيير اسم CoordinateTransform#getTransform إلى CoordinateTransform#transform وتعديل JavaDoc ‏ (I864ae)

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

  • تم إصلاح مشكلة تمدّد وضع "PreviewView PERFORMANCE" عند استخدامه مع واجهة مستخدم Compose. (Ie1137، b/183864890)

الإصدار ‎1.0.0-alpha26

‫30 يونيو 2021

تم طرح androidx.camera:camera-extensions:1.0.0-alpha26 وandroidx.camera:camera-view:1.0.0-alpha26. يتضمّن الإصدار 1.0.0-alpha26 هذه التعديلات.

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

  • إضافة طريقة جديدة CameraController#getTapToFocusState() تعرض أحدث نتيجة لميزة "النقر للتركيز" (Iaccb0)
  • إضافة المزيد من ميزات الكاميرا الأساسية إلى CameraController: دوال getter/setter لنسبة العرض إلى الارتفاع المستهدَفة والدقة المستهدَفة ووضع الالتقاط وCameraControl والمنفّذين المخصّصين (Iea8f2)
  • أضِف فئة RotationReceiver التي تتلقّى تغييرات تدوير السطح. يمكن استخدام هذه السمة لضبط التدوير المستهدَف عندما يكون الجهاز في الوضع العمودي أو الوضع الأفقي الثابت. (Ib278f)
  • تم عرض واجهات برمجة تطبيقات عامة جديدة من النوع getEstimatedCaptureLatencyRange في فئة ExtensionsManager. (I6a8ec)
  • تم إيقاف ExtensionsErrorListener نهائيًا. حاليًا، لا تُستخدَم هذه الواجهة إلا لمراقبة ما إذا كانت ميزة "المعاينة" أو "التقاط الصور" غير متوفّرة عند تفعيل أوضاع الإضافة. ستضيف CameraX تلقائيًا Preview أو ImageCapture إضافية لتعمل وظائف الإضافة بشكل جيد. بعد ذلك، لن يتم الإبلاغ عن أي خطأ من خلال هذه الواجهة. (I47d9e)
  • تم عرض واجهات برمجة التطبيقات العامة الجديدة ExtensionsManager getInstance وisExtensionAvailable وgetExtensionEnabledCameraSelector، وتم إيقاف فئات <EffectName><UseCase>Extender القديمة وواجهات برمجة التطبيقات ذات الصلة نهائيًا. (I329e6)

الإصدار ‎1.0.0-alpha25

‫2 يونيو 2021

تم طرح androidx.camera:camera-extensions:1.0.0-alpha25 وandroidx.camera:camera-view:1.0.0-alpha25. يتضمّن الإصدار 1.0.0-alpha25 هذه التعديلات.

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

  • خرجت واجهات برمجة التطبيقات ExperimentalCameraFilter الآن من المرحلة التجريبية وأصبحت واجهات برمجة تطبيقات رسمية. ويمكن استخدامها بدون OptIn مع تعليقات توضيحية. (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 وCamera 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 بعد الآن إلى ترقية camera-core وcamera-camera2 وcamera-lifecycle تلقائيًا إلى أحدث عناصر الإصدار 1.1.0 من خلال حلّ التبعيات في Gradle، على الرغم من أنّ camera-view لا يزال متوافقًا مع هذه العناصر إذا تم ضبطها صراحةً لاستخدام الإصدار 1.1.0. (Ic8fa1، b/181599852)
  • تم إصلاح مشكلة تمدّد المعاينة في PreviewView على أجهزة Samsung A3. (Iacb30، b/180121821)
  • تم إصلاح المشكلة المتمثّلة في تعذُّر ضبط أداة اختيار الكاميرا قبل إعداد الكاميرا. (Ic8bd0)

الإصدار 1.0.0-alpha22 من Camera Extensions & View

‫24 فبراير 2021

تم طرح androidx.camera:camera-extensions:1.0.0-alpha22 وandroidx.camera:camera-view:1.0.0-alpha22. يتضمّن الإصدار 1.0.0-alpha22 هذه التعديلات.

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

  • إضافة دالة getter لـ CameraInfo إلى CameraController (Ib8138، b/178251727)

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

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

الإصدار ‎1.0.0-alpha21 من Camera Extensions وCamera View

‫27 يناير 2021

تم طرح androidx.camera:camera-extensions:1.0.0-alpha21 وandroidx.camera:camera-view:1.0.0-alpha21. يتضمّن الإصدار 1.0.0-alpha21 هذه التعديلات.

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

الإصدار ‎1.0.0-alpha20 من Camera Extensions وView

‫16 ديسمبر 2020

تم طرح androidx.camera:camera-extensions:1.0.0-alpha20 وandroidx.camera:camera-view:1.0.0-alpha20. يتضمّن الإصدار 1.0.0-alpha20 هذه التعديلات.

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

الإصدار 1.0.0-alpha19 من Camera-Extensions وCamera-View

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

تم طرح androidx.camera:camera-extensions:1.0.0-alpha19 وandroidx.camera:camera-view:1.0.0-alpha19. يتضمّن الإصدار 1.0.0-alpha19 هذه التعديلات.

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

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

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

‫14 أكتوبر 2020

تم طرح androidx.camera:camera-extensions:1.0.0-alpha18. يتضمّن الإصدار 1.0.0-alpha18 هذه التعديلات.

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

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

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

‫14 أكتوبر 2020

تم طرح androidx.camera:camera-view:1.0.0-alpha18. يتضمّن الإصدار 1.0.0-alpha18 هذه التعديلات.

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

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

‫23 سبتمبر 2020

تم طرح androidx.camera:camera-extensions:1.0.0-alpha17. يتضمّن الإصدار 1.0.0-alpha17 هذه التعديلات.

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

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

‫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 يُستخدَم لتفعيل الإضافات وإرسال طلبات البحث عنها في نُسخ الكاميرا (I4fb7e)

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

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

تم طرح androidx.camera:camera-view:1.0.0-alpha16. يتضمّن الإصدار 1.0.0-alpha16 هذه التعديلات.

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

  • تمت إزالة "PreviewView#setDeviceRotationForRemoteDisplayMode()" و"PreviewView#getDeviceRotationForRemoteDisplayMode()". تُستخدَم الطريقتان لتخصيص تدوير المعاينة، عندما لا يكون التدوير المطلوب هو تدوير الشاشة، مثل الشاشة البعيدة. للتعامل مع تدوير المعاينة غير المعروضة الآن، اضبط التدوير المطلوب باستخدام Preview#setTargetRotation() وPreviewView#getViewPort(targetRotation) المُضاف حديثًا. (Ib62cc)
  • تمت إعادة تسمية "createSurfaceProvider()" إلى "getSurfaceProvider()". ستعرض الطريقة دائمًا مثيل Preview.SurfaceProvider نفسه. (Iff83c)

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

  • تم فرض استخدام TextureView على PreviewView في حال تفعيل تأثير الإضافة، وإذا كان تنفيذ مكتبة المورّد يتطلّب إجراء عملية خاصة على مساحة العرض الناتجة. (I0c3cc)
  • السماح بتدوير الهدف عشوائيًا في "المعاينة" يتم احتساب معلومات التحويل وإرجاعها إلى المستخدم بشكل فوري من خلال دالة استدعاء جديدة من النوع TranformationInfoListener. (I21470)

المشاكل المعروفة

  • في PreviewView، لا يتم استدعاء OnClickListener#onClick() عندما ينقر المستخدم النهائي على PreviewView. يتم استخدام حدث اللمس عن طريق الخطأ من خلال PreviewView#onTouchEvent()‎. سيتم حلّ هذه المشكلة في الإصدار التالي.
  • قد تكون قيمة MeteringPoint التي تم الحصول عليها من PreviewView#getMeteringPointFactory() غير صحيحة في حال استخدام ViewPort مع PreviewView.

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

‫19 أغسطس 2020

تم طرح androidx.camera:camera-extensions:1.0.0-alpha15. يتضمّن الإصدار 1.0.0-alpha15 هذه التعديلات.

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

  • تتلقّى الطريقة ExtensionsManager.init() الآن سياقًا كمَعلمة بدلاً من عدم تلقّي أي وسيطات. (Ife754)
  • من المفترض ألا يتعطّل الإعداد بعد الآن عند استخدام Context لا يعرض عنصر Application من Context.getApplicationContext(). (I3d3c9، b/160817073)

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

    ‫19 أغسطس 2020

تم طرح androidx.camera:camera-view:1.0.0-alpha15. يتضمّن الإصدار 1.0.0-alpha15 هذه التعديلات.

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

  • تستخدم الدالة DisplayOrientedMeteringPointFactory مثيل CameraInfo بدلاً من CameraSelector، لذا هناك ربط مباشر بالكاميرا التي ستنشئ الدالة نقاطًا لها. جميع الفئات التي تستخدم DisplayOrientedMeteringPointFactory تستخدم أيضًا مثيل CameraInfo بدلاً من CameraSelector. (I400c1)
  • تمت إزالة جهة الاتصال "TextureViewMeteringPointFactory". توفّر PreviewView واجهة برمجة تطبيقات عامة (createMeteringPointFactory()) لإنشاء مصنع لنقاط القياس بغض النظر عمّا إذا كان يستخدم TextureView أو SurfaceView. (Ide693)
  • إعادة تسمية وضعَي التنفيذ SURFACE_VIEW/TEXTURE_VIEW في PreviewView إلى PERFORMANCE/COMPATIBLE، حيث يمثّل PERFORMANCE وضع SURFACE_VIEW القديم، ويمثّل COMPATIBLE وضع TEXTURE_VIEW القديم (I0edc2)
  • بالنسبة إلى التقاط الصور، يمكنك استبدال علامة "القلب أفقيًا" في البيانات الوصفية استنادًا إلى اتجاه الكاميرا. (I28499)

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

‫22 يوليو 2020

تم طرح androidx.camera:camera-extensions:1.0.0-alpha14. يتضمّن الإصدار 1.0.0-alpha14 هذه التعديلات.

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

‫22 يوليو 2020

تم طرح androidx.camera:camera-view:1.0.0-alpha14. يتضمّن الإصدار 1.0.0-alpha14 هذه التعديلات.

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

‫24 يونيو 2020

تم طرح androidx.camera:camera-extensions:1.0.0-alpha13. يتضمّن الإصدار 1.0.0-alpha13 هذه التعديلات.

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

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

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

‫24 يونيو 2020

تم طرح androidx.camera:camera-view:1.0.0-alpha13. يتضمّن الإصدار 1.0.0-alpha13 هذه التعديلات.

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

  • لم يعُد CameraView يتعطّل مع ظهور IllegalArgumentException عند الربط بـ LifecycleOwner الذي تنتقل دورة حياته إلى حالة DESTROYED بعد فترة وجيزة من الربط. لن تحاول عمليات ربط مراحل النشاط في حالة DESTROYED فتح الكاميرا. (I7c2b8)
  • أصبحت PreviewView StreamState متاحة الآن من خلال CameraView.getPreviewStreamState()‎ (I21a2b)

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

‫10 يونيو 2020

تم طرح androidx.camera:camera-extensions:1.0.0-alpha12. يتضمّن الإصدار 1.0.0-alpha12 هذه التعديلات.

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

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

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

‫10 يونيو 2020

تم طرح androidx.camera:camera-view:1.0.0-alpha12. يتضمّن الإصدار 1.0.0-alpha12 هذه التعديلات.

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

  • إضافة واجهة برمجة التطبيقات PreviewView#getBitmap() التي تعرض تمثيل Bitmap للمحتوى المعروض على مساحة العرض الخاصة بالمعاينة (I9b500، b/157659818)

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

‫27 مايو 2020

تم طرح androidx.camera:camera-extensions:1.0.0-alpha11. يتضمّن الإصدار 1.0.0-alpha11 هذه التعديلات.

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

‫10 يونيو 2020

تم طرح androidx.camera:camera-view:1.0.0-alpha12. يتضمّن الإصدار 1.0.0-alpha12 هذه التعديلات.

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

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

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

  • إضافة واجهة برمجة التطبيقات PreviewView#getBitmap() التي تعرض تمثيل Bitmap للمحتوى المعروض على مساحة العرض الخاصة بالمعاينة (I9b500، b/157659818)

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

‫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 كمثال أساسي (Ia2459، b/153607583)
  • يمكنك ضبط نوع مقياس PreviewView من تنسيق XML من خلال ضبط السمة ScaleType. (I08565، b/153015659)
  • تمّت إزالة "CameraView.ScaleType". بدلاً من ذلك، استخدِم PreviewView.ScaleType لضبط/الحصول على نوع المقياس باستخدام CameraView. (Ia8974، b/153014831)
  • يمكنك منح PreviewView لون خلفية تلقائيًا إذا لم يكن لديه لون خلفية. يمنع ذلك ظهور المحتوى خلفه قبل بدء بث المعاينة. (I09fad)

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

نيسان (أبريل) 2020

تم طرح androidx.camera:camera-extensions:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.

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

  • إصلاحات لدعم إصدار Camera-Core

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

نيسان (أبريل) 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

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

‫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)، الذي يأخذ مثيل CameraInfo يمكن أن يكون فارغًا ويُستخدَم لتحسين المعاينة باستخدام ImplementationMode.SURFACE_VIEW كلما أمكن ذلك. في حال تمرير مثيل فارغ أو ضبط وضع التنفيذ المفضّل على ImplementationMode.TEXTURE_VIEW، يتم استخدام ImplementationMode.TEXTURE_VIEW داخليًا.
  • يوضّح عينة التعليمات البرمجية التالية كيفية استخدام حالة استخدام المعاينة سابقًا مع PreviewView.

    preview.setSurfaceProvider(previewView.previewSurfaceProvider)
    cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    

    في الوقت الحالي، يمكنك كتابة ما يلي:

    val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)
    previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW
    preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))
    
  • تمت إضافة التعليق التوضيحي "@UiThread" إلى "PreviewView.getSurfaceProvider()"، ما يعني أنّه يجب استدعاؤه من سلسلة التعليمات الرئيسية. (I192f3)

  • تمت إضافة PreviewView.setScaleType() الذي يسمح بضبط نوع مقياس المعاينة. يمكن إدخال إحدى القيم في PreviewView.ScaleType، وتكون القيمة التلقائية هي PreviewView.ScaleType.FILL_CENTER.

  • تمت إضافة PreviewView.getScaleType().

  • تمت إزالة إمكانية ضبط وضع التنفيذ لـ PreviewView في تنسيق XML باستخدام السمة implementationMode.

  • إضافة واجهة برمجة التطبيقات createMeteringPointFactory() إلى PreviewView لإتاحة تحويل (x, y) في PreviewView إلى MeteringPoint (Ib36d7)

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

  • تم إصلاح الحالات التي يتم فيها عرض معاينة غير صحيحة بعد تغيير حجم "PreviewView". (I71101)

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

‫26 فبراير 2020

تم طرح androidx.camera:camera-extensions:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.

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

‫26 فبراير 2020

تم طرح androidx.camera:camera-view:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.

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

  • تم استبدال ListenableFuture في SurfaceRequest.provideSurface() بـ Executor وCallback. يؤدي ذلك إلى تبسيط واجهة برمجة التطبيقات من خلال عدم الحاجة إلى معالجة الاستثناءات في provideSurface() وفرض عدم إلغاء طلب معاودة الاتصال في provideSurface(). يساعد ذلك في منع تعطُّل الأجهزة القديمة بسبب إصدار الأسطح قبل الأوان. يُستخدم الكائن SurfaceRequest.Result الآن لتتبُّع كيفية استخدام SurfaceRequest لـ Surface المقدَّم. (I7854b)
  • تمت إعادة تسمية SurfaceRequest.setSurface(Surface) إلى SurfaceRequest.provideSurface(Surface) وSurfaceRequest.setWillNotComplete() إلى SurfaceRequest.willNotProvideSurface(). (I224fe)
  • تم إصلاح عملية إعداد نُسخ التطبيق مع تفعيل ProGuard من خلال الاحتفاظ بالعلامة التي تضبط موفّر CameraXConfig التلقائي. (I2d6c1)

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

‫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)

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

‫10 فبراير 2020

تم طرح androidx.camera:camera-view:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 هذه التعديلات.

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

  • يضبط تنفيذ TextureView في PreviewView الآن حجم TextureView على حجم ناتج أداة الاستشعار في الكاميرا قبل تغيير حجمه لملء PreviewView الرئيسي. إذا أردت أن تملأ معاينة الكاميرا جزءًا كاملاً من واجهة المستخدم (الشاشة بأكملها على سبيل المثال)، يجب عدم ضبط حجم PreviewView على قيمة ثابتة أو جعلها تلتف حول محتواها (باستخدام السمة "wrap_content" على سبيل المثال)، فقد يؤدي ذلك إلى ملء معاينة الكاميرا لجزء فقط من PreviewView (إذا كان حجم ناتج أداة استشعار الكاميرا أصغر). بدلاً من ذلك، يجب ضبط PreviewView على حجم العنصر الرئيسي (باستخدام السمة "match_parent" مثلاً). (1204869)

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

  • تم تعديل "ImageCapture" للسماح بحفظ الصور في "Uri" و"OutputStream". تم دمج طرق takePicture المتعدّدة في طريقة واحدة. تم تعديل التطبيق التجريبي لاستخدام Uri كمثال أساسي. (Ia3bec)
  • تم تغيير اسم "Preview.PreviewSurfaceProvider" إلى "Preview.SurfaceProvider". لم تعُد واجهات برمجة التطبيقات SurfaceProvider تتطلّب من المطوّرين إنشاء ListenableFuture خاصة بهم، وأصبح توفير Surface يتم الآن من خلال عنصر SurfaceRequest جديد. تمت إزالة الطريقة Preview.getPreviewSurfaceProvider() بسبب احتمال إساءة استخدامها عند إقران Preview بفئات أخرى مثل PreviewView. (I20105)
  • تم الآن استبدال الوسيطات التي تم تمريرها سابقًا في ImageCapture.OnImageSavedCallback.onError() وImageCapture.OnImageCapturedCallback.onError() بوسيطة واحدة ImageCaptureException، والتي لا تزال تحتوي على جميع المعلومات التي تم تمريرها سابقًا.
  • تمت إزالة وسيطة الملف التي تم تمريرها سابقًا في ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2)
  • تم تعديل واجهة برمجة التطبيقات، حيث تم دمج طرق getZoomRatio() وgetMaxZoomRatio() وgetMinZoomRatio() وgetLinearZoom() في CameraInfo في getZoomState() التي تعرض مثيل ZoomState. (Ib19fe)

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

‫22 يناير 2020

تم طرح androidx.camera:camera-extensions:1.0.0-alpha06. يتضمّن الإصدار 1.0.0-alpha06 هذه التعديلات.

التحديثات

  • إصلاحات وتحديثات متنوّعة لدعم تغييرات Camera Core وCamera2

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

‫22 يناير 2020

تم طرح androidx.camera:camera-view:1.0.0-alpha06. يتضمّن الإصدار 1.0.0-alpha06 هذه التعديلات.

التحديثات

  • إصلاحات وتحديثات متنوّعة لدعم تغييرات Camera Core وCamera2

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

‫18 ديسمبر 2019

تم طرح androidx.camera:camera-extensions:1.0.0-alpha05. يتضمّن الإصدار 1.0.0-alpha05 هذه التعديلات.

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

  • تم تعديلها لتتطابق مع واجهات برمجة التطبيقات الداخلية لـ Camera Core.

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

‫18 ديسمبر 2019

تم طرح androidx.camera:camera-view:1.0.0-alpha05. يتضمّن الإصدار 1.0.0-alpha05 هذه التعديلات.

المشاكل المعروفة

  • قد تكون نسبة العرض إلى الارتفاع غير صحيحة عند استخدام PreviewView ‏ (b/146215202).

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

  • تم تنفيذ فئة جديدة باسم PreviewView.TextureViewImplementation تعمل على مزامنة مراحل نشاط SurfaceTexture مع استخدام الكاميرا لسطح TextureView.

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

‫4 ديسمبر 2019

تم طرح androidx.camera:camera-extensions:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 من camera-extensions هذه التعديلات

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

  • يتم الآن التحقّق من توفّر الإضافة وتفعيلها من خلال مَعلمة إدخال CameraSelector. يجب أن يكون هذا هو نفس CameraSelector المستخدَم لربط حالة الاستخدام.

    val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
    val builder = ImageCapture.Builder()
    val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder)
    if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) {
        bokehImageCaptureExtender.enableExtension(cameraSelector)
    }
    val imageCapture = builder.build()
    mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)
    
  • يجب إعداد الإضافات قبل استخدام مكتبة الإضافات.

    val availability = ExtensionsManager.init()
    Futures.addCallback<ExtensionsManager.ExtensionsAvailability>(
       availability,
       object : FutureCallback<ExtensionsManager.ExtensionsAvailability> {
           override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) {
               // Ready to make extensions calls
           }
           override fun onFailure(throwable: Throwable) {
               // Extensions could not be initialized
           }
       },
       Executors.newSingleThreadExecutor()
    )
    

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

‫4 ديسمبر 2019

تم طرح androidx.camera:camera-view:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 من camera-view هذه التعديلات

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

  • يتم توفير فئة PreviewView لعرض الناتج من حالة استخدام المعاينة في أحد التطبيقات بسهولة.
  • يمكن تضمين PreviewView في التنسيق:

    <androidx.camera.view.PreviewView
      android:id="@+id/preview_view"
      … />
    
  • يوفّر PreviewView PreviewSurfaceProvider لربط حالة استخدام "النسخة الحصرية" بسهولة

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • ZoomLevel" أصبحت الآن "ZoomRatio" في تسمية واجهة برمجة التطبيقات

  • تغيّرت قابلية بعض مَعلمات الطريقة لأن تكون فارغة

الإصدار 1.0.0-alpha03 من Camera-Extensions وCamera-View

‫9 أكتوبر 2019

تم طرح androidx.camera:camera-extensions:1.0.0-alpha03 وandroidx.camera:camera-view:1.0.0-alpha03. هذه هي التعديلات المضمّنة في camera-extensions:1.0.0-alpha03 وهذه هي التعديلات المضمّنة في camera-view:1.0.0-alpha03.

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

  • تمت إضافة أداة إعداد السياق للإضافات. تمت زيادة إصدار الإضافات إلى 1.1.0

الإصدار 1.0.0-alpha02 من Camera-Extensions وCamera-View

‫5 سبتمبر 2019

تم طرح androidx.camera:camera-extensions:1.0.0-alpha02 وandroidx.camera:camera-view:1.0.0-alpha02. هذه هي عمليات النشر المضمّنة في camera-extensions:1.0.0-alpha02 وهذه هي عمليات النشر المضمّنة في camera-view:1.0.0-alpha02.

  • تمت إضافة اختبارات للتحقّق من أنّ PreviewImageProcessorImpl قد نفّذ الطوابع الزمنية بشكل صحيح.
  • يجب إصلاح تعذُّر الاختبار ExtensionTest على جهاز Nexus 5 (مستوى واجهة برمجة التطبيقات 21) والتأكّد من توفُّر المعاينة.

الإصدار ‎1.0.0-alpha01 من Camera-Extensions وCamera-View

‫7 أغسطس 2019

تم طرح androidx.camera:camera-extensions:1.0.0-alpha01 وandroidx.camera:camera-view:1.0.0-alpha01. هذه هي التعديلات المضمّنة في camera-extensions:1.0.0-alpha01 وهذه هي التعديلات المضمّنة في camera-view:1.0.0-alpha01

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