كاميراX

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

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

العناصر الإصدار المستقر إصدار مرشح الإصدار التجريبي إصدار ألفا
كاميرا-كاميرا2 1.3.2 - - 1.4.0-alpha04
نواة الكاميرا 1.3.2 - - 1.4.0-alpha04
التأثيرات في الكاميرا - - - 1.4.0-alpha04
إضافات الكاميرا 1.3.2 - - 1.4.0-alpha04
دورة حياة الكاميرا 1.3.2 - - 1.4.0-alpha04
كاميرا mlkit-vision - - 1.3.0-beta02 1.4.0-alpha04
شاشة الكاميرا 1.3.2 - - 1.4.0-alpha04
عدسة الكاميرا - - 1.3.0-beta02 1.4.0-alpha04
كاميرا/فيديو 1.3.2 - - 1.4.0-alpha04
تاريخ آخر تعديل لهذه المكتبة: 6 آذار (مارس) 2024

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

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

إعلان التبعيات

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

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

رائع

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

ملاحظات

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

إنشاء عدد جديد

راجِع مستندات أداة تتبُّع المشاكل للحصول على مزيد من المعلومات.

الإصدار 1.4

الإصدار 1.4.0-alpha04

24 كانون الثاني (يناير) 2024

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

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

  • عنصر جديد: تأثيرات الكاميرا: مكتبة لتطبيق تأثيرات في الوقت الفعلي على نتائج CameraX، بما في ذلك Preview و/أو VideoCapture و/أو ImageCapture. يحتوي هذا العنصر على عمليات تنفيذ OpenGL لواجهة برمجة تطبيقات CameraEffect التي تعالج نتائج الكاميرا بكفاءة.
  • OverlayEffect: لرسم عناصر مركّبة باستخدام Canvas API من Android يتيح هذا الإذن للتطبيق وضع علامة مائية أو تمييز العناصر التي تم رصدها على مخرجات الكاميرا.
  • DynamicRange واجهات برمجة التطبيقات لحالة استخدام المعاينة: يمكن الآن ضبط النطاق الديناميكي على "حالة استخدام المعاينة"، بشكل مستقل عن حالة استخدام الفيديو. يتيح ذلك استخدام النطاقات الديناميكية للنطاق العالي الديناميكية، مثل HLG10 للمعاينة فقط. تتوفّر واجهات برمجة تطبيقات جديدة أيضًا في CameraInfo لطلب البحث عن النطاقات الديناميكية المتوافقة مع كل كاميرا.

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

  • تم إعادة التسمية ScreenFlashUiCompleter إلى ScreenFlashListener ونقل ScreenFlashUiCompleter#getExpirationTimeMillis إلى expirationTimeMillis للمعلَمة ScreenFlash#apply. (I13944)
  • تمت إضافة واجهات برمجة تطبيقات جديدة للسماح بضبط النطاق الديناميكي على حالة استخدام المعاينة، وطلب النطاقات الديناميكية المتوافقة مع كل كاميرا. يسمح هذا الإجراء باستخدام النطاقات الديناميكية للنطاق العالي الديناميكية، مثل 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 معالجة واجهة برمجة التطبيقات من جانب إطار العمل ومزامنة التوقيت مع التغييرات في واجهة المستخدم للتطبيق على النحو المطلوب (على سبيل المثال، مشغِّل الالتقاط المسبق للبيانات (AE) بعد تغيير لون/درجة سطوع شاشة التطبيق). ستحتاج التطبيقات فقط إلى إضافة عمليات التنفيذ من جانب واجهة المستخدم في واجهة ScreenFlashUiControl المقدَّمة إلى CameraX. (I8ae84)
  • تمت إضافة إمكانية تنفيذ ميزة فلاش الشاشة من جانب واجهة المستخدم في تطبيق CameraX. ستتمكّن التطبيقات من الحصول على تنفيذ ImageCapture.ScreenFlashUiControl أساسي من PreviewView أو ScreenFlashView المُضاف حديثًا، ما سيضيف عرضًا أحادي اللون على سطح الصفحة وزيادة سطوع الشاشة إلى أقصى حد أثناء التقاط الصور بفلاش الشاشة. (I1810e)

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

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

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

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

الإصدار 1.4.0-alpha02

18 تشرين الأول (أكتوبر) 2023

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

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

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

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

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

الإصدار 1.4.0-alpha01

20 أيلول (سبتمبر) 2023

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

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

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

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

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

الإصدار 1.3

الإصدار 1.3.2

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

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

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

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

الإصدار 1.3.1

13 كانون الأول (ديسمبر) 2023

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

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

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

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

  • أربعة UseCases: Preview + ImageCapture + ImageAnalysis + VideoCapture

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

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

الإصدار 1.3.0

18 تشرين الأول (أكتوبر) 2023

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

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

الإصدار 1.3.0-rc02

20 أيلول (سبتمبر) 2023

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

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

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

الإصدار 1.3.0-rc01

23 آب (أغسطس) 2023

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

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

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

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

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

الإصدار 1.3.0-beta02

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

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

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

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

الإصدار 1.3.0-beta01

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

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

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

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

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

  • استخدِم الكشاف كفلاش في طُرز SM-A320 من Samsung لتحسين السرعة وجودة الصورة التي يتم التقاطها في الإضاءة المنخفضة. (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#getConcurrent CameraIds().
  • نقدّم لك واجهة برمجة التطبيقات ResolutionSelector الجديدة التي تشمل الميزات التالية:
    • يمكن للتطبيقات تحديد نسبة العرض إلى الارتفاع واستراتيجيات الدقة لاختيار أفضل درجة دقة تناسب احتياجاتها.
    • ويتم التعبير عن جميع الأحجام ومَعلمات نسبة العرض إلى الارتفاع في إحداثيات أداة الاستشعار في جهاز الكاميرا.
    • ويمكن للتطبيقات تنفيذ عامل تصفية درجة دقة مخصص لترتيب الأحجام المتوافقة بالترتيب المطلوب.
    • يمكن للتطبيقات أيضًا تفعيل إمكانية الالتقاط بدقة عالية للحصول على صور بدقة أعلى. ومع ذلك، يُرجى العِلم أنّ استخدام درجة دقة عالية قد يؤدي إلى إبطاء وقت التقاط الصور.
    • تمت إضافة VideoCapture من واجهات برمجة التطبيقات للنسخ المطابق. لا يتم إجراء نسخ مطابق للفيديوهات التي سجّلها VideoCapture بشكل تلقائي. ومع ذلك، تنعكس معاينة الكاميرا على الكاميرا الأمامية تلقائيًا. تتيح واجهات برمجة التطبيقات للنسخ المطابق في VideoCapture إمكانية المحاذاة مع معاينة الكاميرا عند استخدام الكاميرا الأمامية. تتوفّر ثلاثة من MirrorMode وOFF وON وON_FRONT_ONLY. للمحاذاة مع معاينة الكاميرا، ننصحك باستخدام ON_FRONT_ONLY، ما يعني أنّ النسخ المطابق غير مفعّل في الكاميرا الخلفية ولكنه مفعَّل للكاميرا الأمامية.

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

  • تم الكشف عن واجهة برمجة تطبيقات ResolutionSelector جديدة. ويمكن للتطبيقات تحديد نسبة العرض إلى الارتفاع واستراتيجيات درجة الدقة باستخدام قواعد احتياطية أو فلتر مخصّص لدرجة الدقة للحصول على النتائج المطلوبة. ويمكن أن تحدد التطبيقات علامة لتفعيل الالتقاط بدقة عالية. وهذا سيسمح لتطبيق CameraX باختيار درجات دقة أعلى عند التقاط الصور أو الفيديوهات. ومع ذلك، يُرجى العِلم أنّ استخدام درجة دقة عالية قد يؤدي إلى إبطاء وقت التقاط الصور. (Ibed95)
  • يمكن الآن طلب البحث عن نطاقات عدد اللقطات في الثانية التي تستخدمها خوارزمية النسبة المئوية (AE) من خلال CameraInfo#getSupportedFrameRateRanges(). (Iaa67f)
  • دمج أسماء جميع طرق عدد اللقطات في الثانية في استخدام النوع "FrameRate" (معدّل اللقطات في الثانية) تصحيح خطأ javadoc في VideoCapture#getTargetFrameRate() (I83304)
  • تم إيقاف واجهة برمجة التطبيقات setTargetAspectRatio وsetTargetResolution القديمة نهائيًا. يُرجى استخدام واجهة برمجة التطبيقات ResolutionSelector الجديدة بدلاً من ذلك. (I542c3)
  • تمت إضافة واجهات برمجة التطبيقات العامة للكاميرا المزدوجة المتزامنة، بما في ذلك
    1. List<List<CameraInfo>> getAvailableConcurrentCameraInfos()
    2. ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)
    3. boolean isConcurrentCameraModeOn() وConcurrentCameraConfig وSingleCameraConfig وConcurrentCamera (Iab1c1)
  • إنشاء ImageProcessor.Response#getOutputImage NonNull (Ib9c60)
  • تمت إضافة VideoCapture من واجهات برمجة التطبيقات للنسخ المطابق، بما في ذلك VideoCapture.Builder.setMirrorMode(int) وVideoCapture.getMirrorMode(). وتعدّ واجهات برمجة التطبيقات مفيدة للتطبيقات التي تتطلّب أن يكون تسجيل الفيديو متوافقًا مع السلوك الشائع لمعاينة الكاميرا، بمعنى أنّ معاينة الكاميرا الخلفية غير معكوسة ولكن معاينة الكاميرا الأمامية معكوسة. (I713b6، b/194634656)
  • إضافة setTargetFrameRate() API في VideoCapture.Builder وgetTargetFramerate() API في VideoCapture (I109d4)
  • عليك جعل SurfaceOutput تمديد قابلة للإغلاق وإخفاء الدالة الإنشائية العامة لـ SurfaceOutput.Event. (I60ea8)
  • تمت إضافة Recording.mute لكتم صوت تسجيل قيد المعالجة أو إعادته ديناميكيًا. سيحتوي RecordingStats على AudioStats.AUDIO_STATE_MUTED عند كتم صوت التسجيل قيد المعالجة بشكل صريح. (Ie17fc)
  • تم جعل مَعلمة #setEffects() غير فارغة. يمكنك إضافة واجهة برمجة تطبيقات #clearEffects() لمحو التأثيرات. يجب أن يطلب التطبيق الاتصال بـ #clearEffects() لإزالة التأثيرات. (I4b4d9)
  • إضافة دالة إنشاءية ثانية لـ ViewfinderSurfaceRequest.Builder لأخذ أداة إنشاء للدالة الإنشائية للنسخ (I621a7)

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

  • تم إصلاح المشكلة المتمثلة في تعطُّل التطبيقات التي تستدعي واجهة برمجة التطبيقات الإضافات عند إغلاق الكاميرا (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 متعددة.

  • في السابق، عند ربط "Preview, VideoCapture, ImageAnalysis" (معاينة، فيديو ، تحليل الصورة) على مستوى جهاز الكاميرا FULL أو أدنى، أو عند ربط "Preview, VideoCapture, ImageCapture" على مستوى الجهاز LEGACY، تعرض CameraX IllegalArgumentException.
  • السلوك الجديد هو أنّ عمليات الربط ستعمل بدون طرح استثناءات. بدلاً من ذلك، تستخدم CameraX OpenGL لنسخ بث مشترك إلى كل من المعاينة و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 التي تعمل بالإصدار 12 من نظام التشغيل Android. (Ib7086 وb/263747161 وb/263289024)
  • عند ضبط الكشاف/التكبير/التصغير قبل فرض إعداد الكاميرا، مثل الاتصال بـ CameraController#enableTorch، يتم تخزين الإجراء المعلّق مؤقتًا وإرساله بعد فرض عملية الإعداد. (I11e92، b/264157663)

الإصدار 1.3.0-alpha02

7 كانون الأول (ديسمبر) 2022

تم طرح "androidx.camera:camera-*:1.3.0-alpha02". يحتوي الإصدار 1.3.0-alpha02 على هذه الالتزامات.

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

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

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

  • إزالة واجهة برمجة التطبيقات core.VideoCapture المتوقفة نهائيًا (I531e0)
  • تم إصلاح المشكلة المتمثلة في عدم استدعاء onError عند التقاط صور بدون إذن التخزين.(I936db، b/244807669)
  • حسِّن جودة إضافات الكاميرا وموثوقيتها. تم إيقاف إضافات الكاميرا على أجهزة Motorola التي تستخدم الإصدار 1.1.0 والإصدارات الأقدم من "إضافات الكاميرا" بسبب مشاكل متعلقة بدعم Bokeh والتقاط الصور والمعاينة وعدم استئناف البث. (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 تطبيق مصغّر لعدسة الكاميرا الأساسية يمكنه عرض خلاصة الكاميرا للكاميرا2. يُرجى التحقق من نموذج الرمز للحصول على مثال.

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

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

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

  • أضِف المراوغة للسماح لبعض الأجهزة المسببة للمشاكل بإعادة محاولة الالتقاط مرة واحدة عند مواجهة حالات تعذُّر الالتقاط. (Id4795)
  • حلّ مشكلة الشاشة السوداء لتنفيذ SurfaceView PreviewView على 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 التي تعمل بالإصدار 12 من نظام التشغيل Android. (b/263289024)

الإصدار 1.2.0

7 كانون الأول (ديسمبر) 2022

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

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

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

الإصدار 1.2.0-rc01

24 تشرين الأول (أكتوبر) 2022

تم طرح "androidx.camera:camera-*:1.2.0-rc01". يحتوي الإصدار 1.2.0-rc01 على هذه الالتزامات.

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

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

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

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

الإصدار 1.2.0-beta02

21 أيلول (سبتمبر) 2022

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

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

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

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

  • تم إيقاف الحل البديل لقلب منطقة التركيز التلقائي (AF) أفقيًا للكاميرات الأمامية على جهاز 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()".

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

  • تم إصلاح مشكلة التقاط صورة 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 إذا لم يتم إلغاء 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-Launchter Lag API كتجربة.

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

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

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

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

الإصدار 1.2.0-alpha01

18 أيار (مايو) 2022

تم طرح "androidx.camera:camera-*:1.2.0-alpha01". يحتوي الإصدار 1.2.0-alpha01 على هذه الالتزامات.

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

  • إطلاق الإصدار الجديد من كاميرا mlkit-vision

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

  • تعذَّر على QualitySelector الثابتة تسجيل فيديو بدقة فائقة عند تفعيل استراتيجية احتياطية. تحدث هذه المشكلة عند ربط VideoCapture بـ ImageCapture ومعاينة على جهاز كاميرا بمستوى كامل أو أعلى. تؤدي الاستراتيجية الاحتياطية QualitySelector إلى حصول VideoCapture على دقة FHD بشكل غير صحيح. يمكن استخدام درجة الدقة الفائقة في مجموعة حالات الاستخدام هذه ويجب اعتمادها. (I0e788، b/230651237)
  • تم تثبيت NullPointerException في ImageCapture.takePicture(). (I92366 وb/230454568 وb/229766155)
  • إصلاح سلوك الإيقاف المؤقت غير المتزامن في androidx.camera.video.Recorder (Ia8ce8)

الكاميرا-الكاميرا2، الكاميرا الأساسية، دورة حياة الكاميرا، والكاميرا - الإصدار 1.1.0

الإصدار 1.1.0

29 حزيران (يونيو) 2022

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

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

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

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

  • تم إصلاح مشكلة EOFException YuvToJpegProcessor عند تفعيل وضع الإضافة وضبط الوضع 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 على هذه الالتزامات.

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

  • إطلاق أول إصدار من ميزة "الإعداد عن بُعد" لتفعيل ميزة عرض الفيديو بالكاميرا، وعرض الكاميرا، وإضافة الكاميرا

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

  • تم إصلاح المشكلة المتمثلة في عدم إصدار برنامج ترميز الفيديو عند إلغاء ربط 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 التي تعمل بالإصدار 12 من نظام التشغيل Android. (I7e9f2)
  • تم تضمين حل بديل للأجهزة التي تتعطّل عند التحقق من توفُّر الفلاش. لن يتوفّر الكشاف في هذه الأجهزة. (If26a3، b/216667482)
  • حدثت مشكلة AbstractMethodError عندما تستخدم التطبيقات الإضافات مع تفعيل Proguard. (I7cbaf، b/222726805)
  • يمكنك فرض إيقاف وضع إضافة الخلفية الخلفية على جهاز Motorola Razr 5G، ما سيؤدي إلى حدوث مشكلة في شاشة المعاينة السوداء. (I35d49)
  • تم إصلاح عدم مزامنة الصوت/الفيديو بعد الإيقاف المؤقت والاستئناف على بعض أجهزة Samsung قبل واجهة برمجة التطبيقات 29 السابقة. (I64622 وb/202798609 وb/202798572)
  • تم إصلاح عدم مزامنة الصوت/الفيديو بعد الإيقاف المؤقت والاستئناف على Sony G3125. (I2a1a5، b/202799148)
  • تم إصلاح عطل عندما واجه تطبيق "المسجّلة الذكية" InvalidConfigException. ومع ذلك، فإن هذا الإصلاح يمنع تعطُّل التطبيق فقط، ولكنه لا يحل سبب InvalidConfigException. في حال استمرار تعذُّر ضبط "Recorder"، ستتلقّى التطبيقات معاودة الاتصال برسالة الخطأ عند بدء التسجيل. (I89c29، b/213617227)

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

  • تم التحديث :compose:ui:ui-test api (updateApi) بسبب نقل البيانات test-coroutines-lib (I3366d)

الإصدار 1.1.0-beta02

23 شباط (فبراير) 2022

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

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

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

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

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

الإصدار 1.1.0-beta01

26 يناير 2022

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

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

  • ومن الإصدار 1.1.0 إلى الإصدار التجريبي 01، ستتم محاذاة رقم الإصدار نفسه لجميع مكتبات CameraX. وسيساعد ذلك المطوّرين على تتبُّع الإصدارات بسهولة أكبر وتقليل تعقيد مصفوفة توافق الإصدارات الكبيرة.

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

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

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

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

الإصدار 1.1.0-alpha12

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

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

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

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

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

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

الإصدار 1.1.0-alpha11

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

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

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

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

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

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

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

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

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

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

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

الإصدار 1.1.0-alpha10

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

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

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

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

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

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

  • يمكنك تقديم استثناء PrimaryizationException حتى يتمكن التطبيق من التعامل مع AssertionError بشكل آمن عند إنشاء خصائص الكاميرا. (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 هذه الالتزامات.

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

  • تمت إزالة التعليق التوضيحي تجريبيUseCaseGroup الآن بعد أن لم تعد واجهات برمجة التطبيقات تجريبية. (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 على هذه الالتزامات.

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

  • إضافة واجهة برمجة التطبيقات setOUTImageFormat API لإعداد تحليل الصور يمكن للمستخدم تحديد ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 أو ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. بشكل افتراضي، سيتم تحديد ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888. (I7902d)

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

  • تمت إزالة التعليق التوضيحي تجريبيUseCaseGroupLifecycle الآن بعد أن لم تعد واجهات برمجة التطبيقات تجريبية. (I17b85)

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

  • شاشة المعاينة الثابتة ساطعة جدًا على هاتف Huawei P20 Lite. تحدث هذه المشكلة فقط عند استخدام درجات دقة معينة للمعاينة مع قيمة تكبير كبيرة. (Idefce، b/192129158)
  • تم حل مشكلة عدم عمل الفلاش على بعض الأجهزة عند ضبط وضع الفلاش على FLASH_mode_ON بعد فترة وجيزة من التقاط الصور. (Ieb49b)
  • تم إصلاح المشكلة المتمثلة في إيقاف المعاينة لبعض الوقت عند التقاط الصور في حالة ربط VideoCapture وImageCapture وPreview. (I56197، b/193864120)
  • يسمح هذا الإذن لميزة "تحليل الصور" باختيار درجة دقة أكبر من 1080p. يمكن لجهاز أعلى من مستوى LIMITED دعم دقة حجم السجلّ في "تحليل الصور" عندما يكون مرتبطًا مع "Preview" و"ImageCapture" معًا. وفي المقابل، يجب أن تكون درجة الدقة المحدّدة لـ ImageCapture هي درجة دقة حجم السجلّ. لتحديد درجة دقة حجم السجلّ في "تحليل الصورة" بنجاح، يجب ضبط درجة دقة هدف حجم السجلّ على كلّ من ImageCapture وImageAnalysis. يشير هذا إلى أن التطبيق يفهم بوضوح عملية المقايضة ويفضل أن يكون تحليل الصور درجة دقة أكبر بدلاً من أن يكون ImageCapture دقة الحد الأقصى. للاطّلاع على تعريفات التسجيل، والحدّ الأقصى للأحجام، والاطّلاع على مزيد من التفاصيل، يُرجى الانتقال إلى https://developer.android.com/reference/android/hardware/camera2/cameraDevice#regular-capture. يشير حجم السجلّ إلى أعلى درجة دقة متوافقة للتسجيل في جهاز الكاميرا، على النحو الذي تحدّده منصّة CamcorderProfile. يشير الحد الأقصى للحجم إلى الحد الأقصى لدقة إخراج جهاز الكاميرا لهذا التنسيق أو الهدف من StreamConfigurationmap.getOUTSizes(int). (I1ee97، b/192911449)
  • أضف معلومات Exif إلى الصورة الملتقطة. (I01ff0، b/193342619)
  • في ImageCapture، اعرض عنوان URI للصورة المحفوظة إذا كان موقع الحفظ هو "File" (ملف). (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 على هذه الالتزامات.

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

  • الترويج لواجهات برمجة التطبيقات التجريبية لتعويض التعرّض للضوء للكاميرا الأساسية (I08ee8)
  • تمت إضافة واجهة برمجة التطبيقات isFocusMetering مدعومة في CameraInfo والتي تتيح للتطبيقات التحقق مما إذا كان FocusMeteringAction المحدد متوافقًا مع الكاميرا الحالية أم لا. (Ib45ae، b/188606490)
  • تم الكشف عن واجهة برمجة التطبيقات getSolutionInfo API لتوفير معلومات الدقة للمعاينة وImageCapture وImageAnalysis. (I2b613، b/188600718)
  • روَّجت واجهات برمجة التطبيقات التجريبية التالية إلى واجهات برمجة التطبيقات الرسمية: CameraXConfig.Builder#setAvailableCampaignsLimiter() , CameraXConfig.Builder#setLessLoggingLevel(), CameraXconfig.Builder#setSchedulerHandler() , CameraXConfig#getAvailable Cameras اتصالer() , CameraXConfig#getLessController(), CameraXConfig#get CameraExecutor() , كاميراHandConfig#getDisplayler()
  • تم كشف واجهة CameraProvider لتوفير إمكانية الوصول إلى مجموعة من الكاميرات. (I1a7b1)
  • روِّج لواجهة برمجة التطبيقات UseCaseGroup API في التجربة الأساسية للكاميرا ومراحل نشاط الكاميرا وفيديو الكاميرا. تمت إضافة ViewPort#getLayoutDirection وViewPort.Builder#setLayoutDirection وViewPort.Builder#setScaleType لتخصيص إطار العرض. (I7cee8)

الإصدار 1.1.0-alpha05

2 حزيران (يونيو) 2021

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

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

  • تمت إزالة صف واحد (Camera2CameraFilter). اقتراح اختيار الكاميرا من خلال فلتر الكاميرا واسترداد خصائص الكاميرا أو المعلومات الأخرى ذات الصلة بـ Camera2 من خلال Camera2 CameraInfo إذا لزم الأمر. (Ib887c)
  • أمّا واجهات برمجة التطبيقات ExperimentalCameraFilter، فهي الآن خارج المرحلة التجريبية وتصبح واجهات برمجة تطبيقات رسمية. يمكن استخدامها بدون تفعيل التعليقات التوضيحية. (I4bc94)
  • تمت إضافة واجهة برمجة التطبيقات الخاصة بحالة الكاميرا التي تم الكشف عنها من خلال CameraInfo#getCameraState(). (Ia86b4)
  • تمت إضافة واجهة برمجة التطبيقات CameraInfo#getCameraSelector() التجريبية التي تعرض تطبيق CameraSelector فريد للكاميرا (I77f9f).

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

  • تم إصلاح المشكلة التي يعرضها LearnableFuture في setZoomRatio وsetLinearZoom على بعض الأجهزة التي تعمل بالإصدار 11 من نظام Android (I716d7).
  • تسريع عملية تبديل الكاميرا وتقليل معدّل حدوث الأخطاء في جهاز الكاميرا (I34c99)
  • تم استبدال BETAUseCaseGroupLifecycle بتجارب MetadataUseCaseGroup. (I3b2ef، b/159033688)

الإصدار 1.1.0-alpha04

21 نيسان (أبريل) 2021

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

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

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

الإصدار 1.1.0-alpha03

24 آذار (مارس) 2021

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

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

  • يمكنك إخراج تنسيق JPEG لـ ImageCapture#OnImageCapturedCallback عند تفعيل أوضاع الإضافات. (I0d7b1)
  • إصلاح إخفاق الإعداد على أجهزة UMIDIGI BISON (I57d9e، b/180818665)
  • تم إصلاح معاينة Samsung A3 الموسّعة في PreviewView. (Iacb30، b/180121821)

الإصدار 1.1.0-alpha02

24 شباط (فبراير) 2021

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

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

  • تمت إضافة ProcessCameraProvider.getAvailableCameraInfos() لواجهة برمجة التطبيقات لاسترداد المعلومات مباشرةً حول الكاميرات المتاحة، والتي تكون جميع كاميرات الجهاز، أو تلك التي تختارها CameraSelector المتوفرة في CameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector). (Ieac08)

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

  • يحاول تطبيق CameraX الآن فرض فتح الكاميرا عند المحاولة الأولية، وقد يؤدي ذلك إلى سرقة الكاميرا الكاميرا عن برامج الكاميرا الأخرى عندما يكون للتطبيق أولوية أعلى. (Iab069، b/175820568)
  • تم إصلاح إخفاق اختبار Robolectric عند استخدام setAvailable Cameraslimiteder في CameraXConfig. (Ice307)
  • يستثني هذا التغيير عندما تصل قائمة انتظار الصور إلى الحد الأقصى في "تحليل الصور". لذا، بدلاً من تعطّله، قد تلاحظ توقُّف عمليات الاستخدام الأخرى أو بطء التطبيق عند استخدامه، مثل معاينة بطيئة/مجمّدة. (Ic12da، b/175851631)
  • تم إصلاح AddErrorListener للإبلاغ عن الأخطاء عند ربط المعاينة أو ImageCapture فقط. (I5ae39)
  • تم إصلاح تراجع أداء ImageCapture عن طريق إزالة التحقق من الموقع المحفوظ للصورة قبل التقاط الصورة. بعد إجراء هذا التغيير، إذا كانت وجهة الحفظ غير صالحة، سيستغرق الأمر وقتًا أطول للحصول على استجابة لعدم اكتمال العملية لأنّها ستحاول حفظ الصورة بعد التقاطها. (I1fd4e، b/177061560)
  • تم إصلاح انحدار أداء ImageCapture باستخدام نوع "File" (ملف) وثFileOptions. (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)

الكاميرا-الكاميرا2، والكاميرا الأساسية، ودورة حياة الكاميرا 1.0.2

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

الكاميرا-الكاميرا2، والكاميرا الأساسية، ودورة حياة الكاميرا 1.0.1

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

الكاميرا-الكاميرا2، والكاميرا الأساسية، ودورة حياة الكاميرا 1.0.0

الإصدار 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 مع برامج Preview وImageCapture وAnalysis.
  • يدير CameraX دورة حياة الكاميرا ضمن واجهة برمجة تطبيقات سهلة الاستخدام.
  • تهدف CameraX إلى توفير طبقة توافق تعمل على حل العديد من المشاكل في المنظومة المتكاملة لكاميرا Android.

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

الإصدار 1.0.0-rc05

21 نيسان (أبريل) 2021

تم طرح androidx.camera:camera-camera2:1.0.0-rc05 وandroidx.camera:camera-core:1.0.0-rc05 وandroidx.camera:camera-lifecycle:1.0.0-rc05. يحتوي الإصدار 1.0.0-rc05 على هذه الالتزامات.

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

  • تلتقط ميزة ImageCapture الثابتة باستخدام الفلاش مفعَّل/تلقائي صور غير واضحة على هاتف Samsung Galaxy S7. (I30001)

الإصدار 1.0.0-rc04

24 آذار (مارس) 2021

تم طرح androidx.camera:camera-camera2:1.0.0-rc04 وandroidx.camera:camera-core:1.0.0-rc04 وandroidx.camera:camera-lifecycle:1.0.0-rc04. يحتوي الإصدار 1.0.0-rc04 على هذه الالتزامات.

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

  • إصلاح إخفاق الإعداد على أجهزة UMIDIGI BISON (I57d9e، b/180818665)

الإصدار 1.0.0-rc03

24 شباط (فبراير) 2021

تم طرح androidx.camera:camera-camera2:1.0.0-rc03 وandroidx.camera:camera-core:1.0.0-rc03 وandroidx.camera:camera-lifecycle:1.0.0-rc03. يحتوي الإصدار 1.0.0-rc03 على هذه الالتزامات.

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

  • إصلاح خطأ التنسيق في مستند ProcessCameraProvider#getInstance
  • إصلاح إخفاق اختبار Robolectric عند استخدام setAvailable Cameraslimiter في CameraXConfig.
  • تم إصلاح تراجع أداء ImageCapture عن طريق إزالة التحقق من الموقع المحفوظ للصورة قبل التقاط الصورة. بعد إجراء هذا التغيير، إذا كانت وجهة الحفظ غير صالحة، سيستغرق الأمر وقتًا أطول للحصول على الاستجابة لعدم تنفيذ الإجراء لأنّها ستحاول حفظ الصورة بعد التقاطها.
  • يستثني هذا التغيير عندما تصل قائمة انتظار الصور إلى الحد الأقصى في "تحليل الصور". لذا بدلاً من التعطُّل، قد تلاحظ توقُّف بعض استخدامات الاستخدام الأخرى أو بطء التطبيق عند استخدامه، مثلاً معاينة بطيئة/مجمّدة.
  • تم تضمين حل بديل لبيانات الصور التالفة المتقطّعة بتنسيق JPEG على الكاميرا الخلفية SM-G930T. (I52001، b/159831206)
  • يستثني هذا التغيير عندما تصل قائمة انتظار الصور إلى الحد الأقصى في "تحليل الصور". لذا، بدلاً من تعطّله، قد تلاحظ توقُّف عمليات الاستخدام الأخرى أو بطء التطبيق عند استخدامه، مثل معاينة بطيئة/مجمّدة. (Ic12da، b/175851631)
  • تم إصلاح إخفاق اختبار Robolectric عند استخدام setAvailable Cameraslimiteder في CameraXConfig. (Ice307)
  • تم إصلاح تراجع أداء ImageCapture عن طريق إزالة التحقق من الموقع المحفوظ للصورة قبل التقاط الصورة. بعد إجراء هذا التغيير، إذا كانت وجهة الحفظ غير صالحة، سيستغرق الأمر وقتًا أطول للحصول على استجابة لعدم اكتمال العملية لأنّها ستحاول حفظ الصورة بعد التقاطها. (I1fd4e، b/177061560)
  • تم إصلاح انحدار أداء ImageCapture باستخدام نوع "File" (ملف) وثFileOptions. (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 على هذه الالتزامات.

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

  • تم إصلاح مشكلة legalArgumentException عندما تكون جميع الأحجام المعتمدة للمعاينة أصغر من 640x480 وحجم العرض أكبر من 640x480. (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)
  • تمت إضافة الفئة التجريبية Camera2camControl للسماح بالتفاعل مع واجهات برمجة تطبيقات Camera2 بشكل ديناميكي. (I45cf3)
  • تم إعادة تسمية Camera2 CameraInfo#from CameraInfo إلى #from. (Ia2bd6)
  • تمت إضافة واجهة برمجة التطبيقات setAvailable CamerasLimiter إلى 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)

الكاميرا2 والأساسية ومراحل الحياة الإصدار 1.0.0-الإصدار التجريبي 12

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 للتعليق التوضيحي التجريبي لتحقيق التكافؤ مع Kotlin. وقد تم استبداله بالتعليق التوضيحي RequiresOptIn، وتم تحديث linter المواجه لـ Java للتوافق مع كلّ من تعليق Kotlin التوضيحي الجديد وصيغة androidx الجديدة. (I52495، b/151331381)

الكاميرا-الكاميرا2 الإصدار 1.0.0-تجريبي11

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

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

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

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

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

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

الإصدار 1.0.0-الإصدار التجريبي 11 من الكاميرا الأساسية

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

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

الميزات الجديدة: تتوافق هذه الميزة مع واجهة برمجة التطبيقات CONTROL_ZOOM_RATIO لنظام التشغيل Android 11 للتكبير/التصغير على الأجهزة التي تعمل بنظام التشغيل Android 11 أو الإصدارات الأحدث والتي تحتوي على CONTROL_ZOOM_RATIO_RANGE صالح. (I62cc6)

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

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

الإصدار 1.0.0-الإصدار التجريبي 10 من "الكاميرا الأساسية"

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

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

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

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

كاميرا-كاميرا2 الإصدار 1.0.0-الإصدار التجريبي 10

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

تم طرح "androidx.camera:camera-camera2:1.0.0-beta10". يحتوي الإصدار 1.0.0 إلى الإصدار التجريبي 10 على هذه الالتزامات.

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

الكاميرا-الكاميرا2 الإصدار 1.0.0-بيتا09

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

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

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

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

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

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

الإصدار 1.0.0-الإصدار التجريبي 09 من الكاميرا الأساسية

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 في حال تفعيل تأثير الإضافة ويحتاج تنفيذ مكتبة المورّدين إلى إجراء عملية خاصة على مساحة عرض الإخراج. (I0c3cc)
  • تم إصلاح تسرّب النشاط أو الجزء عند تمرير سياق النشاط أو الجزء إلى ProcessCameraProvider.getInstance(Context).

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

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

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

19 آب (أغسطس) 2020

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

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

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

الإصدار 1.0.0-الإصدار التجريبي 08 من الكاميرا الأساسية

19 آب (أغسطس) 2020

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

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

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

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

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

الكاميرا-الكاميرا2 الإصدار 1.0.0-بيتا07

22 تموز (يوليو) 2020

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

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

  • تم إصلاح المشكلة المتمثلة في توسيع نطاق المعاينة على الجهاز القديم الذي يعمل بنظام التشغيل Android 5.0. (I0c03a)
  • تم استبعاد بعض الأحجام المتوافقة مع تنسيق JPEG التي ستتسبب في حدوث مشكلة في WYSIWYG على بعض الأجهزة. (Ib5128)

الإصدار 1.0.0-الإصدار التجريبي 07 من الكاميرا الأساسية

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)

كاميرا-كاميرا2 الإصدار 1.0.0-beta06

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

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)

كاميرا-كاميرا2 الإصدار 1.0.0-beta05

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

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

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

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

الإصدار 1.0.0-الإصدار التجريبي 05 من الكاميرا الأساسية

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

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

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

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

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

  • تم تحديث مستندات Java لـ setTargetResolution وsetTargetRotation. (Iae16f)

كاميرا-كاميرا2 الإصدار 1.0.0-beta04

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

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

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

  • تم السماح للتطبيقات بضبط أي مَعلمات لطلب التقاط الصور باستخدام Camera2 من خلال Camera2Interop بدون التسبب في تعطُّل. تجدر الإشارة إلى أنّه في حال حدوث مشاكل نتيجة لإلغاء المَعلمات. لا يمكن ضمان الثبات والسلوك عند تجاوز المَعلمات باستخدام Camera2Interop. (Ibe5a1، b/149103700)
  • يتم إصلاح الإعداد التلقائي عند استخدام تطبيق على جهاز يستخدم لغة زائفة. (I3bef3، b/154767663)
  • تم تحويل سجلّ الأخطاء المرتبط بحالة الاستخدام المنفصلة إلى سجلّ تصحيح أخطاء في Camera2 CameraImpl. (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-الإصدار التجريبي 04 من الكاميرا الأساسية

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 حيث أدت طلبات متعددة لـ setمحلل/clearAnalyticsr إلى عدم تلقي أداة التحليل للصور لتحليلها. (I6169f وb/151605317 وb/153514544)
  • إصلاح الخطأ الذي لم يتم فيه استرداد المخزن المؤقت في ImageProxy من ImageCapture (I0c455، b/153249512)
  • تم إصلاح المشكلة المتمثلة في عدم اختيار استخدام الكاميرا الأولى في القائمة المتوافقة من CameraManager دائمًا. (I4c624، b/153418028)
  • تم إصلاح العُطل المتقطّع الناتج عن ضبط Preview.SurfaceProvider على عدم رفع مساحة العرض المطلوبة سابقًا. “java.lang.IllegalStateException: Camera surface session should only fail with request cancellation” (I8e4e7، b/155936225)

الكاميرا-الكاميرا2 الإصدار 1.0.0-بيتا03

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

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

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

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

الإصدار 1.0.0-الإصدار التجريبي 03 من "الكاميرا الأساسية"

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

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

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

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

كاميرا-كاميرا2 الإصدار 1.0.0-الإصدار التجريبي 02

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 فقط في حال الربط بنجاح. كان يتم تحديث UseCase في السابق عند استدعاء bindToLifecycle لإجراء عمليات حسابية لدرجات الدقة. لم تعُد هناك حاجة إلى تعديل حالة UseCase لإجراء العمليات الحسابية (I78d9e).

الإصدار 1.0.0-الإصدار التجريبي 02 من الكاميرا الأساسية

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

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

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

  • تم إصلاح ImageInfo.getRotationDegrees() من ImageProxy الناتجة عن ImageCapture بحيث تتطابق مع قيمة دوران اتجاه EXIF. (Id4281، b/150802561)
  • تم إصلاح bindToLifecycle بحيث يتم تعديل UseCase فقط في حال الربط بنجاح. كان يتم تحديث UseCase في السابق عند استدعاء bindToLifecycle لإجراء عمليات حسابية لدرجات الدقة. لم تعُد هناك حاجة إلى تعديل حالة UseCase لإجراء العمليات الحسابية (I78d9e).
  • تم إصلاح المشكلة المتمثلة في عدم تعديل جلسة تسجيل حالة الاستخدام Preview عند تغيير مساحة عرض المعاينة بعد استدعاء Preview.setSurfaceProvider() أكثر من مرة.

كاميرا-كاميرا2 الإصدار 1.0.0-الإصدار التجريبي 01

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

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)

كاميرا-كاميرا2 الإصدار 1.0.0-alpha10

10 شباط (فبراير) 2020

تم طرح "androidx.camera:camera-camera2:1.0.0-alpha10". يحتوي الإصدار 1.0.0-alpha10 على هذه الالتزامات.

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

  • تم تحسين الثبات على أجهزة INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY من خلال ضمان الاحتفاظ ببيانات Surface فقط لمدة الاستخدام بواسطة Camera2. (I9dac2)
  • تم إصلاح مشكلة معاينة الصورة غير المعرّضة بشكل كافٍ على الأجهزة القديمة من خلال ضبط CONTROL_AE_TARGET_FPS_RANGE بشكل صحيح. (1224638)

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

10 شباط (فبراير) 2020

تم طرح "androidx.camera:camera-core:1.0.0-alpha10". يحتوي الإصدار 1.0.0-alpha10 على هذه الالتزامات.

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

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

كاميرا-كاميرا2 الإصدار 1.0.0-alpha09

22 كانون الثاني (يناير) 2020

تم طرح "androidx.camera:camera-camera2:1.0.0-alpha09". يحتوي الإصدار 1.0.0-alpha09 على هذه الالتزامات.

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

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

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

    تتطلب الفئة Camera2CameraInfo السمة ExperimentalCamera2Interop markerClass.

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

22 كانون الثاني (يناير) 2020

تم طرح "androidx.camera:camera-core:1.0.0-alpha09". يحتوي الإصدار 1.0.0-alpha09 على هذه الالتزامات.

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

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

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

  • تم إصلاح المشكلات عند إغلاق الكاميرات ثم فتحها والتي تؤدي إلى فشل فحص "الشرط المسبق".
  • تم إصلاح مشكلة ConcurrentModificationException التي يمكن أن تحدث عند استخدام واجهات برمجة تطبيقات الضوء والتكبير/التصغير.
  • تم إصلاح المشكلة لاختيار درجات دقة أقرب إلى درجة الدقة المطلوبة عند توفّر حجم الأبعاد mod16.
  • تعمل واجهات برمجة التطبيقات startFocusMetering وcancelFocusMetering الآن على النحو الموثَّق، وذلك باستخدام التوقيت الصحيح وقد تؤدي إلى عرض أخطاء في حال حدوثها.
  • تم إصلاح المشكلة عند طلب درجة دقة مستهدفة محدّدة مع نسبة عرض إلى ارتفاع للاقتصاص على جهاز لا يتوافق مع هذه الأحجام. والآن، سيتم اختيار حجم لم يتم اقتصاصه للدقة الكافية لربط الطلب الأصلي عندما يكون ذلك متاحًا.

كاميرا-كاميرا2 الإصدار 1.0.0-alpha08

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

تم طرح "androidx.camera:camera-camera2:1.0.0-alpha08". يحتوي الإصدار 1.0.0-alpha08 على هذه الالتزامات.

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

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

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

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

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

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

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

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.

كاميرا-كاميرا2 الإصدار 1.0.0-alpha07

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

تم طرح "androidx.camera:camera-camera2:1.0.0-alpha07". يحتوي الإصدار 1.0.0-alpha07 من Camera-camera2 على هذه الالتزامات

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

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

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

تم طرح "androidx.camera:camera-core:1.0.0-alpha07". يحتوي الإصدار 1.0.0-alpha07 من كاميرا أساسية على هذه الالتزامات

يُرجى العلم بأنّ هناك بعض التغييرات المهمة في هذا الإصدار الأولي خلال فترة التحضير للإصدار التجريبي. ننصحك بمراجعة التغييرات ومشاركة أي ملاحظات لديك حول مجموعة Google CameraX. بالنسبة إلى المطوّرين الذين يستخدمون CameraX في التطبيقات على "متجر Play"، ننصحهم بانتظار الإصدار التجريبي الرسمي قبل ترقية المكتبة ضمن التطبيقات.

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

  • ملاحظة مُهمّة: تم تغيير إعداد CameraX. يجب أن تنفّذ التطبيقات CameraXConfig.Provider، وأن تستخدم Camera2Config التلقائية التي يتم توفيرها من خلال androidx.camera.camera2. الاستخدام النموذجي هو:

    import androidx.camera.camera2.Camera2Config
    import androidx.camera.core.CameraXConfig
    
    public class MyCameraXApplication : Application(),  CameraXConfig.Provider {
        override fun getCameraXConfig(): CameraXConfig {
                return Camera2Config.defaultConfig(this)
        }
    }
    
  • تمت إزالة فئة CameraX. يمكنك الآن استخدام المشاركين "bindToLifecycle()" و"unbind()" و"unbindAll()" و"isBound()" و"hasCamera()" الذين سبق أن قدّموها في مكالمة لفئة CameraX، وذلك من خلال ProcessCameraProvider.

  • يتم الحصول على مثيل ProcessCameraProvider لكل عملية بشكل غير متزامن باستخدام الطريقة الثابتة ProcessCameraProvider.getInstance()، والتي تعرض مستقبلًا قابلاً للإدراج، مما يوفّر ProcessCameraProvider عند اكتمال العملية. ويظهر هنا باللون onCreate() للاستخدام العادي. يمكنك تنفيذ طلبات على "getInstance()" لاحقًا خلال دورة حياة النشاط لتأجيل وقت استجابة الإعداد إلى وقت لاحق (على سبيل المثال، عندما يفتح إجراء المستخدم واجهة مستخدم للكاميرا).

    import androidx.camera.lifecycle.ProcessCameraProvider
    import com.google.common.util.concurrent.ListenableFuture
    
    class MainActivity : AppCompatActivity() {
       private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider>
       override fun onCreate(savedInstanceState: Bundle?) {
           cameraProviderFuture = ProcessCameraProvider.getInstance(this);
      }
    
  • يمكن إضافة مستمع إلى ListenableFuture الذي يعرضه "getInstance()". يضمن هذا الإجراء إمكانية استرداد موفّر الكاميرا من Future بدون حظر على Future.get().

    cameraProviderFuture.addListener(Runnable {
      val cameraProvider = cameraProviderFuture.get()
      cameraProvider.bindToLifecycle(...)
    }, ContextCompat.getMainExecutor(this))
    
  • يتم الآن اختيار الكاميرا من خلال أداة اختيار الكاميرا، بدلاً من كل حالة استخدام.

    val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()
    
  • يتم منح "CameraProvider.bindToLifecycle" مالك دورة الحياة وأداة اختيار الكاميرا وحالات الاستخدام، والتي يتم ربطها بعد ذلك بمالك دورة الحياة المحدّد ويتم تشغيلها للكاميرا المحدّدة.

    cameraProvider.bindToLifecycle(this as LifecycleOwner,
           cameraSelector, preview, imageAnalysis)
    
  • تتم إزالة فئات "الإعداد" لحالة الاستخدام. بدلاً من ذلك، يمكنك إنشاء حالات استخدام مباشرةً، وضبط الخيارات في كل أداة إنشاء حالات استخدام. على سبيل المثال:

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

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

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

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

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

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

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

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

    • تغيّر اسم ImageCapture.OnImageCapturedListener ليصبح الآن ImageCapture.OnImageCapturedCallback.
    • تغيّر اسم ImageCapture.OnImageSavedListener ليصبح الآن ImageCapture.OnImageSavedCallback.
    • تغيّر اسم VideoCapture.OnVideoSavedListener ليصبح الآن VideoCapture.OnVideoSavedCallback.
  • تم تغيير التعدادات إلى IntDef

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

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

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

  • تم استبدال ImageCapture.Metadata حقلاً بموصّلات get/set/is.

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

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

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

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

الكاميرا-الكاميرا2 والإصدار 1.0.0-alpha06 الأساسي

9 تشرين الأول (أكتوبر) 2019

تم طرح androidx.camera:camera-camera2:1.0.0-alpha06 وandroidx.camera:camera-core:1.0.0-alpha06. هذه هي الالتزامات المدرَجة في "camera-camera2:1.0.0-alpha06"، وهي الالتزامات المدرَجة في camera-core:1.0.0-alpha06.

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

التغييرات على إعدادات نِسب العرض إلى الارتفاع:

  • تمت إضافة setTargetAspectRatioMode() وتقبل وسيطة تعداد. يؤدي ذلك إلى ضبط وضع نسبة العرض إلى الارتفاع على RATIO_4_3 أو RATIO_16_9 بدلاً من نسبة عرض إلى ارتفاع عشوائية. يعكس هذا الأمر بشكل أقرب حقيقة توفير نِسب عرض إلى ارتفاع معيّنة فقط من الكاميرا، بدلاً من أي نسبة عشوائية.
    • في الوقت الحالي، لا تتوفّر النِسب إلا 16:9 و4:3. وفي حالة 1:1، لا تتوفّر هذه الميزة إلا في أجهزة معيّنة من الكاميرا، ثم بدرجات دقة محدودة فقط. يجب أن تستخدم التطبيقات التي تصمم واجهة أو معالجة بين شخصين بالخيارات الأكثر مرونة 16:9 أو 4:3 وأن تقتص من الشاشة أو تعالج منطقة فرعية.
    • تهدف نِسب العرض إلى الارتفاع هذه إلى استخدام الحدّ الأقصى لمساحة التخزين.
  • تمت إضافة "getTargetAspectRatio()" إلى واجهات برمجة التطبيقات الخاصة بإعداد حالات الاستخدام، ما يؤدي إلى عرض نسبة العرض إلى الارتفاع التي يستهدفها ناتج حالة الاستخدام.
  • تم تغيير الطريقة setTargetAspectRatio(Rational aspectRatio) في ImageCapture إلى setTargetAspectRatioCustom(Rational aspectRatio). وعند ضبطها، يتم اقتصاص صورة ImageCapture وفقًا لذلك.

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

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

تمت إضافة معلومات CameraInfo عن طريق التحقّق من توفُّر Flash وواجهات برمجة تطبيقات Sensor Rotation API.

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

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

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

  • نسب العرض إلى الارتفاع: بالنسبة إلى كل حالة استخدام، يجب أن تستدعي التطبيقات عنصرًا واحدًا فقط من setTargetResolution() أو setTargetAspectRatio(). يؤدي استدعاء كليهما إلى نفس أداة الإنشاء إلى ظهور خطأ.
    • بوجه عام، ننصح باستخدام setTargetAspectRatio() استنادًا إلى تصميم واجهة المستخدم في التطبيق. تستند حلول محدّدة إلى حالة الاستخدام. على سبيل المثال، تكون المعاينة بالقرب من درجة دقة الشاشة وتوفر التقاط الصور صورًا ثابتة عالية الدقة. راجِع جدول درجات الدقة التلقائية لمزيد من المعلومات.
    • يمكنك استخدام setTargetResolution() مع حالات أكثر تحديدًا، مثل عندما يكون الحد الأدنى (لحفظ العمليات الحسابية) أو الحد الأقصى لدرجات الدقة (لتفاصيل المعالجة) مطلوبًا.
  • واجهة برمجة التطبيقات التنفيذية: تمت إزالة الطلب setCallbackHandler() من واجهات برمجة التطبيقات لإعداد حالات الاستخدام. بدلاً من ذلك، يمكن للتطبيقات ضبط المنفّذ كمَعلمة في واجهات برمجة تطبيقات أخرى متعدّدة تعمل على ضبط طلب معاودة الاتصال.
  • تم تعديل التعليقات التوضيحية الفارغة لدوال مختلفة.
  • تم إصلاح مشكلة تسبّبت في إطلاق "java.lang.IllegalStateException at Camera$StateCallback.onError" عند فتح الكاميرا.
  • تم إصلاح المشكلة التي كانت تؤدي إلى اختيار درجات دقة صغيرة جدًا (أقل من 640x480) عندما يطلب التطبيق درجات دقة أكبر أو تلقائية، ما يؤدي إلى ظهور صورة معاينة محظورة أو مموهة. ويمكن للتطبيقات التي تحتاج إلى درجات دقة أصغر على وجه التحديد أن تطلبها بشكل صريح.
  • تم إصلاح المشكلة المتمثلة في عرض الكاميرا لشاشة سوداء (تعذُّر تشغيل الكاميرا) بعد العودة من الغرض الذي شغّل تطبيق كاميرا آخر.
  • تم إصلاح الخطأ الذي أدى إلى ظهور الخطأ التالي عند تشغيل التطبيقات أو إيقافها بشكل متكرر: java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
  • تم إصلاح الخطأ التالي الذي يحدث عند إيقاف ميزة "تحليل الصورة": java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more..
  • تمت إضافة اختبارات إضافية لمسار إلغاء ربط الكاميرا.
  • تحسين متانة نظام الاختبار عند إجراء اختبارات الكاميرا الخلفية

الكاميرا-الكاميرا2 والإصدار 1.0.0-ألفا05

5 أيلول (سبتمبر) 2019

تم طرح androidx.camera:camera-camera2:1.0.0-alpha05 وandroidx.camera:camera-core:1.0.0-alpha05. في ما يلي عمليات الالتزام المضمَّنة في كاميراcam-camera2:1.0.0-alpha05 وهذه هي عمليات الالتزام المضمَّنة Camera-core:1.0.0-alpha05.

  • تغيير واجهة برمجة التطبيقات: متغيّرات أخطاء حالة الاستخدام التي تمّت إعادة تسميتها:

    • تم تغيير اسم ImageCapture.UseCaseError إلى ImageCapture.ImageCaptureError
    • تم تغيير اسم VideoCapture.UseCaseError إلى VideoCapture.VideoCaptureError
  • تمت إضافة واجهة برمجة تطبيقات واحدة (CameraControl) مع واجهات برمجة التطبيقات لميزة "النقر للتركيز".

    • تمت إضافة واجهة برمجة التطبيقات للحصول على CameraControl من CameraX للكاميرا، تم تحديدها حسب واجهة العدسة:

      CameraX.getCameraControl(LensFacing lensFacing)

    • تمت إضافة MeteringPointFactory وMeteringPoint وMeteringMode وFocusMeteringAction لتشغيل ميزة "النقر للتركيز":

      MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height);
      MeteringPoint point = factory.createPoint(x, y);
      FocusMeteringAction action = FocusMeteringAction.Builder.from(point,
                                       MeteringMode.AF_ONLY)
          .addPoint(point2, MeteringMode.AE_ONLY) // could have many
          .setAutoFocusCallback(new OnAutoFocusListener(){
              public void onFocusCompleted(boolean isSuccess) {
              }
          })
          // auto calling cancelFocusAndMetering in 5 sec.
          .setAutoCancelDuration(5, TimeUnit.Second)
          .build();
      
    • تمت إضافة واجهة برمجة التطبيقات لـ CameraControl لبدء قياس التركيز وإلغاء التركيز:

      getCameraControl(lensFacing).startFocusAndMetering(action); getCameraControl(lensFacing).cancelFocusAndMetering();

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

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

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

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

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

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

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

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

  • تمت إضافة الاختبارات الأولية للتصوير الآلي للكاميرا الزائفة في مجموعة اختبار الكاميرا (قيد الإعداد).

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

الكاميرا-الكاميرا2 والإصدار 1.0.0-ألفا04

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" من درجة الدقة نسبة العرض إلى الارتفاع نفسها.

وضع عدم الحظر لتحليل الصور

  • لا يؤدي سلوك 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.
  • تم إصلاح المشكلة التي كانت متمثلة في أن جهاز LEGACY يتطلب نسبة عرض إلى ارتفاع محدَّدة لدرجة دقة JPEG القصوى
  • تم إصلاح المشكلة التي تحدث عند تشغيل التطبيق في الخلفية أثناء فتح الكاميرا
  • تم إصلاح مشكلة واجهة برمجة التطبيقات < 25، مع إزالة الخطأ checkAndUpdateEglState: invalid current EGLDisplay
  • تم إصلاح المشكلة التي تحدث عند إلغاء ربط المعاينة بعد تفعيل الإضافات وبدء تشغيلها.
  • إنشاء عناصر لعرض الكاميرا وإضافات الكاميرا تم نشرها الآن كإصدارات أولية

الكاميرا-الكاميرا2 والإصدار 1.0.0-ألفا03 الأساسي

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

الكاميرا الأساسية

  • تم إصلاح تعطُّل سطح الإدخال/الإخراج غير المهيأ عند الفتح/الإغلاق السريع أو الربط/إلغاء الربط
  • الانتقال إلى عمليات التنفيذ الجديدة للعقود الآجلة
  • اختبار الإصلاحات لإجراء اختبارات أكثر فعالية
  • يعرض اختبار الدمج الأساسي الآن وقت التقاط الصور
  • تم إعداد فئة المطابقة الداخلية للمنفّذين.
  • يتم الآن اختبار التوقيت لالتقاط الصور قبل اكتمالها وتحسين ثبات النظام

الإضافات

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

الكاميرا-الكاميرا2 والإصدار 1.0.0-ألفا02 الأساسي

5 حزيران (يونيو) 2019

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

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

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

الكاميرا-الكاميرا2 والكاميرا الأساسية 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-الإصدار التجريبي 11

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

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

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

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

الإصدار 1.0.0-الإصدار التجريبي 10 من دورة حياة الكاميرا

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

تم طرح "androidx.camera:camera-lifecycle:1.0.0-beta10". يحتوي الإصدار 1.0.0 إلى الإصدار التجريبي 10 على هذه الالتزامات.

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

دورة حياة الكاميرا 1.0.0-beta09

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

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

دورة حياة الكاميرا 1.0.0-beta08

19 آب (أغسطس) 2020

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

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

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

دورة حياة الكاميرا 1.0.0-beta07

22 تموز (يوليو) 2020

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

دورة حياة الكاميرا 1.0.0-beta06

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

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

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

  • يمكن الآن إعداد CameraX باستخدام Process باسمProcessProvider# الأطراف المعنية () (Ia1a8d)

دورة حياة الكاميرا 1.0.0-beta05

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

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

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

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

الإصدار 1.0.0-beta04 من دورة حياة الكاميرا

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

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

دورة حياة الكاميرا 1.0.0-beta03

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

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

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

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

الإصدار 1.0.0-تجريبي 01 من دورة حياة الكاميرا

26 شباط (فبراير) 2020

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

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

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

دورة حياة الكاميرا 1.0.0-beta02

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

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

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

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

الإصدار 1.0.0-alpha10 من دورة حياة الكاميرا

10 شباط (فبراير) 2020

تم طرح "androidx.camera:camera-lifecycle:1.0.0-alpha10". يحتوي الإصدار 1.0.0-alpha10 على هذه الالتزامات.

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

  • تمت إضافة تعليق توضيحي "@MainThread" إلى نهج بينToLifecycle وإلغاء الربط وإلغاء ربط جميع الطرق. (I990d2)

الإصدار 1.0.0-alpha03 من دورة حياة الكاميرا

22 كانون الثاني (يناير) 2020

تم طرح "androidx.camera:camera-lifecycle:1.0.0-alpha03". يحتوي الإصدار 1.0.0-alpha03 على هذه الالتزامات.

آخر الأخبار

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

الإصدار 1.0.0-alpha02 من دورة حياة الكاميرا

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

تم طرح "androidx.camera:camera-lifecycle:1.0.0-alpha02". يحتوي الإصدار 1.0.0-alpha02 على هذه الالتزامات.

التغييرات المتعلّقة بالتبعية

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

الإصدار 1.0.0-alpha01 من دورة حياة الكاميرا

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

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

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

  • تتم إضافة العناصر ذات مراحل نشاط الكاميرا، ما يوفّر واجهة LifeCycleCameraProvider، بالإضافة إلى عملية تنفيذ تُسمى ProcessCameraProvider توفّر العديد من وظائف فئة CameraX السابقة بشكل أساسي ويتم الحصول عليها باستخدام طريقة getInstance().
  • يجب أن تتضمّن التطبيقات مكتبة دورة حياة الكاميرا لاستخدام CameraX.
  • يمكنك الاطّلاع على الملاحظات في قسم الكاميرا الأساسية للتعرّف على طريقة إعداد تطبيق CameraX باستخدام ProcessCameraProvider.

إضافات الكاميرا والإصدار 1.0.0 من Camera-View

الإصدار 1.0.0-alpha32

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

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

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

  • تمت إزالة تعليقات @RequiresApi(21) التوضيحية غير الضرورية من الصفوف/الواجهات الداخلية. (I8e286، b/204917951)
  • تعديل ملفات واجهة برمجة التطبيقات لعناصر إضافات الكاميرا (If683a، b/161377155)

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

  • عدم السماح للتطبيق بتفعيل أوضاع الإضافات عند ربط VideoCapture لا تتوافق إضافات CameraX مع ImageCapture وPreview إلا. لا يمكن بعد استخدام VideoCapture. إذا ربط التطبيق VideoCapture وفعّل أي وضع إضافة، سيتم طرح IllegalArgumentException. (I0d87b)
  • لم يعد CameraSelector#filter يعرض الخطأ IllegalArgumentException عندما تكون مجموعة النتائج فارغة. (I27804)
  • تمت إعادة تسمية واجهة برمجة التطبيقات ExtensionsManager#getInstance باسم getInstanceAsync لأنّها تعرض ListenableFuture. يمكن أن تشير اللاحقة غير المتزامنة لاسم الدالة إلى أنها دالة غير متزامنة بوضوح. (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 إلى واجهة برمجة التطبيقات العامة لفلترة قائمة معلومات الكاميرا استنادًا إلى "أداة اختيار الكاميرا". (I105d0)

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

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

الإصدار 1.0.0-alpha30

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

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

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

  • تمت إضافة التعليق التوضيحي @RequiresApi(21) إلى جميع فئات CameraX وتم استبعاد minSdkVersion من AndroidManifest.xml. سيتيح ذلك دمج نواة الكاميرا بسهولة في التطبيقات التي تحتوي على إصدار minSdkVersion الأقل من 21، ولكنها تريد استخدام مسارات الرموز البرمجية التي تعتمد على واجهة برمجة التطبيقات 21 والإصدارات الأحدث بشكل مشروط. بالنسبة إلى أي تطبيق يتضمّن الإصدار 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 على هذه الالتزامات.

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

  • تمت إزالة التعليق التوضيحي تجريبيUseCaseGroup الآن بعد أن لم تعد واجهات برمجة التطبيقات تجريبية. (I01ef5)
  • إزالة RotationProvider#removeAllListeners(). يُرجى استخدام RotationProvider#removeListener(...) بدلاً منها. (Id9d4a)
  • تم تعديل فئة RotationReceivedr: تم تغيير set/clear Listener من أجل إضافة/إزالة/إزالةالكل، وإزالة صيغة 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 على هذه الالتزامات.

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

  • تمت إزالة التعليق التوضيحي تجريبيUseCaseGroupLifecycle الآن بعد أن لم تعد واجهات برمجة التطبيقات تجريبية. (I17b85)
  • إعادة هيكلة خدمة RotationListener وإعادة تسميتها إلى RotationProvider. يستمر في توفير الميزة نفسها بواجهة برمجة تطبيقات مختلفة قليلاً. (Idffc5)
  • إعادة تسمية TAP_TO_FOCUS_UNحققFUL إلى TAP_TO_FOCUS_NOT_FOCUSED وTAP_TO_FOCUS_SuccessFUL إلى TAP_TO_FOCUS_FOCUSED. Made OUTSize (حجم الناتج النهائي) (I099fa)

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

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

الإصدار 1.0.0-alpha27

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

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

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

  • تم الترويج لواجهة برمجة تطبيقات إطار العرض خارج إطار التجربة. إزالة التعليق التوضيحي التجريبي لواجهة برمجة التطبيقات. (I717ea)
  • تمت إعادة التسمية CoordinateTransform#getTransform إلى CoordinateTransform#transform وتحديث JavaDoc (I864ae).

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

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

الإصدار 1.0.0-alpha26

30 حزيران (يونيو) 2021

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

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

  • إضافة طريقة CameraController#getTapToFocusState() جديدة تعرض أحدث نتيجة للنقر للتركيز (Iaccb0)
  • إضافة المزيد من ميزات الكاميرا الأساسية إلى CameraController: أدوات الاستلام/الضبط لنسبة العرض إلى الارتفاع المستهدفة، والدقة المستهدفة، ووضع الالتقاط، و CameraControl وأدوات التنفيذ المخصّصة. (Iea8f2)
  • إضافة فئة Rotationcer التي تتلقى تغييرات دوران السطح. يمكن استخدام هذه الميزة لضبط تدوير الهدف عندما يكون الجهاز في الوضع الرأسي/الأفقي الثابت. (Ib278f)
  • تم الاطّلاع على واجهات برمجة تطبيقات عامة جديدة يتم إنشاؤها لـ getEstimateCaptureLatencyRange في فئة AccessibilityManager. (I6a8ec)
  • SettingsErrorListener المتوقفة نهائيًا. في الوقت الحالي، لا يتم استخدام هذه الواجهة إلا لمراقبة ما إذا كان هناك نقص في معاينة أو ImageCapture عند تفعيل أوضاع الإضافات. سيضيف تطبيق CameraX تلقائيًا معاينة أو ImageCapture إضافية كي تعمل وظائف الإضافات بشكل جيد. وبعد ذلك، لن يتم الإبلاغ عن أي خطأ من خلال هذه الواجهة. (I47d9e)
  • تم الاطّلاع على واجهات برمجة التطبيقات العامة الجديدة AccessibilityManager getInstance وisExtensionAvailable وgetExtensionEnabled CameraSelector المتاحة للجميع، وكذلك فئات <EffectName><UseCase>Extender القديمة وواجهات برمجة التطبيقات ذات الصلة ذات الصلة. (I329e6)

الإصدار 1.0.0-alpha25

2 حزيران (يونيو) 2021

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

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

  • خرجت واجهات برمجة التطبيقات تجريبية CameraFilter الآن من المرحلة التجريبية وأصبحت واجهات برمجة تطبيقات رسمية. يمكن استخدامها بدون تفعيل التعليقات التوضيحية. (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

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

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

24 شباط (فبراير) 2021

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

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

  • إضافة أداة الحصول على معلومات الكاميرا إلى وحدة التحكم في الكاميرا. (Ib8138، b/178251727)

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

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

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

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

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

جارٍ إطلاق هذه الميزة لدعم العناصر الأخرى في مكتبة الكاميرا.

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

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

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

جارٍ إطلاق هذه الميزة لدعم العناصر الأخرى في مكتبة الكاميرا.

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

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

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

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

  • تم تحسين وقت استجابة تهيئة CameraX وbindToLifecycle (I61dc5)
  • سيعرض <UseCase>.getTargetRotation() الخطأ Surface.ROTATION_0 إذا تم طلبه قبل إرفاقه بمثيل الكاميرا ما لم يتم ضبط 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 من إضافات الكاميرا

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 من إضافات الكاميرا

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 في حال تفعيل تأثير الإضافة ويحتاج تنفيذ مكتبة المورّدين إلى إجراء عملية خاصة على مساحة عرض الإخراج. (I0c3cc)
  • السماح بالتدوير العشوائي للهدف في المعاينة. يتم احتساب معلومات التحويل وعرضها للمستخدم بشكل فوري من خلال عملية معاودة اتصال جديدة باسم "TranformationInfoListener". (I21470)

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

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

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

19 آب (أغسطس) 2020

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

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

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

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 من إضافات الكاميرا

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 يتعطل مع وجود anrgumentException، عند الربط بمالك دورة الحياة الذي تنتقل فيه دورة حياته إلى حالة DESTROYED بعد وقت قصير من ربطه. لن تحاول ربط دورات الحياة في حالة "التدمير" فتح الكاميرا. (I7c2b8)
  • تتوفر الآن PreviewView StreamState الآن من خلال CameraView.getPreviewStreamState() (I21a2b).

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

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

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

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

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

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

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

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

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

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

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

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

تم طرح "androidx.camera:camera-extensions:1.0.0-alpha11". يحتوي الإصدار 1.0.0-alpha11 على هذه الالتزامات.

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

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

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

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

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

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

  • إضافة واجهة برمجة تطبيقات PreviewView#getBitmap() التي تعرض تمثيل الصور النقطية للمحتوى المعروض على سطح المعاينة. (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، تضمن حالة "ساحة المشاركات" أيضًا ظهور صورة المعاينة. (Ic0906، b/154652477)
  • تمت إضافة واجهة برمجة التطبيقات PreviewView#setDeviceRotationForRemoteDisplayMode() API لتوفير تدوير الجهاز لإجراء العمليات الحسابية لعمليات التحويل في حال تشغيل التطبيق في وضع العرض عن بُعد. (I59b95، b/153514525)

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

  • تم إصلاح مشكلة تشوّه المعاينة على كاميرات FULL/LIMITED/LEVEL_3 التي تعمل بالإصدار 7.0 من نظام التشغيل Android والإصدارات الأقدم. يتم فرض استخدام وضع ImplementationMode#TEXTURE_VIEW عندما يكون إصدار Android هو 7.0 أو أقل. (I83e30، b/155085307)
  • تمت إزالة المعلَمة CameraInfo من PreviewView#createSurfaceProvider()، ويستردّها PreviewView الآن داخليًا من SurfaceRequest. (If18f0، b/154652477)
  • تم تعديل نسبة العرض إلى الارتفاع التلقائية لـ VideoCapture أن تكون 16:9 في CameraView. (Ie6a7b، b/153237864)
  • يجب إصلاح PreviewView مشكلة متعلقة بالشاشة السوداء عند تمرير جزء Preview سريعًا للخارج ثم التمرير سريعًا للخلف في ViewPager2. تم أيضًا حلّ المشكلة عند removeView(previewview) ثم addView(previewView). (Iab555 وb/149877652 وb/147354615)
  • يجب تعديل واجهة برمجة التطبيقات CameraView#takePicture() للسماح بحفظ الصور في Uri وOutputStream. عليك تحديث التطبيق التجريبي لاستخدام Uri كمثال أساسي. (Ia2459، b/153607583)
  • يمكنك ضبط نوع مقياس PreviewView من تنسيق XML من خلال ضبط السمة ScaleType. (I08565، b/153015659)
  • تمت إزالة CameraView.ScaleType. بدلاً من ذلك، استخدِم PreviewView.ScaleType لضبط/الحصول على نوع المقياس باستخدام CameraView. (Ia8974، b/153014831)
  • يمكنك اختيار لون خلفية تلقائيًا لتطبيق "PreviewView" إذا لم يسبق له تخصيص لون. يؤدي ذلك إلى منع ظهور المحتوى الخلفي قبل بدء بث المعاينة. (I09fad)

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

نيسان (أبريل) 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 من إضافات الكاميرا

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 من إضافات الكاميرا

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 من إضافات الكاميرا

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 من إضافات الكاميرا

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 من إضافات الكاميرا

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

تم طرح "androidx.camera:camera-extensions:1.0.0-alpha05". يحتوي الإصدار 1.0.0-alpha05 على هذه الالتزامات.

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

  • تم تعديل هذه الإعدادات لتتوافق مع واجهات برمجة التطبيقات الداخلية للكاميرا الأساسية.

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

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

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

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

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

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

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

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

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

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

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

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

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

    preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)
    
  • تم تغيير اسم "ZoomLevel" إلى "ZoomRatio" في تسمية واجهة برمجة التطبيقات.

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

إضافات الكاميرا والإصدار 1.0.0-alpha03 من 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-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 وهذه هي commits include camera-view:1.0.0-alpha02.

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

إضافات الكاميرا والإصدار 1.0.0-alpha01 من Camera-View

7 آب (أغسطس) 2019

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

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