CameraX
يسرد هذا الجدول جميع العناصر في مجموعة "androidx.camera".
| العناصر | الإصدار المستقر | إصدار محتمل | الإصدار التجريبي | الإصدار الأولي |
|---|---|---|---|---|
| camera-camera2 | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-core | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-compose | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-effects | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-extensions | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-feature-combination-query | - | - | - | 1.5.0-alpha06 |
| camera-feature-combination-query-play-services | - | - | - | 1.5.0-alpha06 |
| camera-lifecycle | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-mlkit-vision | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-view | 1.6.2 | 1.7.0-rc01 | - | - |
| camera-viewfinder | - | - | 1.3.0-beta02 | 1.4.0-alpha07 |
| camera-video | 1.6.2 | 1.7.0-rc01 | - | - |
اختبار الجهاز
يتم اختبار CameraX على العديد من الأجهزة في مختبرنا. للاطّلاع على قائمة بالأجهزة المتوفّرة حاليًا في المختبر، يُرجى مراجعة الأجهزة التي تم اختبارها في مختبر CameraX.
تحديد الاعتماديات
لإضافة اعتمادية على CameraX، يجب تضمين مستودع Maven من Google في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
Groovy
dependencies { // CameraX core library using the camera2 implementation def camerax_version = "1.7.0-rc01" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" // If you want to additionally use the CameraX VideoCapture library implementation "androidx.camera:camera-video:${camerax_version}" // If you want to additionally use the CameraX View class implementation "androidx.camera:camera-view:${camerax_version}" // If you want to additionally add CameraX ML Kit Vision Integration implementation "androidx.camera:camera-mlkit-vision:${camerax_version}" // If you want to additionally use the CameraX Extensions library implementation "androidx.camera:camera-extensions:${camerax_version}" }
Kotlin
dependencies { // CameraX core library using the camera2 implementation val camerax_version = "1.7.0-rc01" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation("androidx.camera:camera-core:${camerax_version}") implementation("androidx.camera:camera-camera2:${camerax_version}") // If you want to additionally use the CameraX Lifecycle library implementation("androidx.camera:camera-lifecycle:${camerax_version}") // If you want to additionally use the CameraX VideoCapture library implementation("androidx.camera:camera-video:${camerax_version}") // If you want to additionally use the CameraX View class implementation("androidx.camera:camera-view:${camerax_version}") // If you want to additionally add CameraX ML Kit Vision Integration implementation("androidx.camera:camera-mlkit-vision:${camerax_version}") // If you want to additionally use the CameraX Extensions library implementation("androidx.camera:camera-extensions:${camerax_version}") }
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker لمزيد من المعلومات.
الإصدار 1.0 من Camera Viewfinder Compose
الإصدار 1.0.0-alpha02
12 يونيو 2024
تم طرح androidx.camera:camera-viewfinder-compose:1.0.0-alpha02. يتضمّن الإصدار 1.0.0-alpha02 هذه التعديلات.
الإصدار 1.0.0-alpha01
14 مايو 2024
تم طرح androidx.camera:camera-viewfinder-compose:1.0.0-alpha01. يتضمّن الإصدار 1.0.0-alpha01 هذه التعديلات.
الميزات الجديدة
- مكتبة جديدة تقدّم هذه المكتبة دالة مركّبة لعدسة الكاميرا الأصلية في Compose، ويمكن استخدامها مع CameraX وCamera2. تتيح الدالة المركّبة Viewfinder استخدام نِسب عرض إلى ارتفاع مختلفة ومعالجة أحداث اللمس.
الإصدار 1.4 من "عدسة الكاميرا"
الإصدار 1.4.0-alpha07
12 يونيو 2024
تم طرح androidx.camera:camera-viewfinder:1.4.0-alpha07 وandroidx.camera:camera-viewfinder-core:1.4.0-alpha07. يتضمّن الإصدار 1.4.0-alpha07 هذه التعديلات.
الإصدار 1.4.0-alpha06
14 مايو 2024
تم طرح androidx.camera:camera-viewfinder:1.4.0-alpha06 وandroidx.camera:camera-viewfinder-core:1.4.0-alpha06. يتضمّن الإصدار 1.4.0-alpha06 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- إعادة تسمية تعدادات
ImplementationModeفيViewfinderلتعكس بشكل أفضل عمليات التنفيذ الأساسية، وإضافة ثوابت ثابتة لـTransformationInfo.sourceRotation. (Ic6149) - تمت إضافة
ZoomGestureDetector.ZoomEventلتضمين حالات إيماءة التكبير/التصغير. (I84cdf)
الإصدار 1.7
الإصدار 1.7.0-rc01
21 أكتوبر 2026
تم طرح androidx.camera:camera-*:1.7.0-rc01. يتضمّن الإصدار 1.7.0-rc01 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تم تحويل
UseCaseCamera2InteropوImageCaptureCamera2InteropوSessionConfigCamera2InteropوCameraControlCamera2Interopمن واجهات إلى فئات مجرّدة. (If654e) - تم إصلاح مشكلة الالتباس في Camera2Interop V2 (I1bbe5)
إصلاح الأخطاء
- تم إصلاح عطل داخلي في نظام التشغيل
SIGSEGVفي سلسلة محادثاتCameraXOpenGLعندما أصدرSurfaceProcessorإدخالSurfaceTextureتم تجميعSurfaceRequestالخاص به قبل الاكتمال. (I76f73، b/563673593) - تم إصلاح تسرُّب في Surface وعطل داخلي في نظام التشغيل
OpenGLقد يحدث أثناء تجميع المهملات عند إيقاف تنفيذCameraEffectأوHandlerThreadقبل إغلاقSurfaceOutputالخاص بالتأثير. (Ifcc19، b/558819242) - تحسين سلوك ميزة "تحسين الإضاءة المنخفضة": تتّبع ميزتا "تحسين الإضاءة المنخفضة" و"الفلاش" الآن سياسة "الإعداد الأخير هو السائد"، حيث يؤدي تفعيل إحداهما إلى إيقاف الأخرى تلقائيًا بدلاً من رفض الطلب. بالإضافة إلى ذلك، يمكن الآن تشغيل الفلاش أثناء التقاط الصور عندما تكون ميزة "تحسين الإضاءة المنخفضة" مفعَّلة. (Ie583f)
- تم تحديث تبعية
androidx.lifecycle:lifecycle-runtimeإلى الإصدار 2.10.0. هذا الإصدار مطلوب لتشغيل عمليات فحص lint المجمّعة لوقت تشغيل مراحل النشاط مع الإصدار 9.5.0-alpha04 من AGP أو الإصدارات الأحدث. (I99bfd، b/556807521) - إتاحة الحصول على
CameraSelectorعلى الكاميرات المادية منCameraInfo.getPhysicalCameraInfos()وربطUseCasesبالكاميرات المادية عند الاستعلام عنCameraInfoباستخدامCameraSelectorفعلي، يتم الآن عرضCameraInfoالفعلي بدلاً منCameraInfoالمنطقي. (Ibe7f2) - تم توضيح
OutputOptions.Builder.setLocationJavadoc بأنّه يتم تخزين خطوط العرض والطول فقط في البيانات الوصفية للفيديو. (I77d3b، b/551348846) - تم إصلاح خلل في
ImageAnalysisحيث يمكن أن يؤدي تغيير تدوير الإخراج ديناميكيًا أو إلغاء ربط حالة الاستخدام إلى تسرُّب موارد Surface/ImageReader. (I25cef) - تقرّب الدالة
CameraInfo.getIntrinsicZoomRatio()الآن النسبة المعروضة إلى منزلتَين عشريتَين. (Ibe9a8) - تم تخفيف قيود التحقّق من
HardwareBuffer.isSupportedلتنسيقPRIVATEفيImageAnalysisلمنع حالات الفشل السلبية الخاطئة على بعض الأجهزة. (I347a4، b/545866947) - تم إصلاح عطل في التجميع في إصدارات JDK الأحدث عند حلّ تعليقات توضيحية من نوع JSpecify تم استيرادها بشكل انتقالي في حقول
CameraXالداخلية. (I00bb4، b/543937345)
الإصدار 1.7.0-alpha03
12 أغسطس 2026
تم طرح androidx.camera:camera-*:1.7.0-alpha03. يتضمّن الإصدار 1.7.0-alpha03 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تم إيقاف واجهات برمجة التطبيقات القديمة Camera2Interop APIs (
Camera2Interop.ExtenderوCamera2CameraControlوCamera2CameraInfoوCaptureRequestOptions) نهائيًا لصالح طرق المصنع لأداة الضبطCamera2Interopودوال الإضافة في لغة Kotlin. (Ib0845، b/529609261) - تمت إضافة مجموعات إضافات Kotlin DSL
camera2Interopلكل منpreviewوimageAnalysisوvideoCaptureوimageCaptureوSessionConfig.Builder، بالإضافة إلى دالة الإضافةCameraControl.applyCamera2InteropAsync. (I51af9، b/529609261) - تمت إضافة طرق جديدة لإنشاء أداة ضبط
Camera2Interop(forUseCaseوforImageCaptureوforSessionConfigوforCameraControl) وطرقsetInterop/applyInteropAsyncالمقابلة فيPreview.BuilderوImageCapture.BuilderوImageAnalysis.BuilderوVideoCapture.BuilderوSessionConfig.BuilderوCameraControl. (I0007b، b/529609261) - تمت إضافة طرق مساعدة إلى
Camera2Interopوسمات إضافة Kotlin المكافئة (CameraInfo.cameraIdوCameraInfo.cameraCharacteristicsوString.toCameraSelector()) لاسترداد معرّف كاميرا Camera2 وخصائصها منCameraInfo. (I11803، b/529609261) - تمت إضافة
Preview.setMirrorModeوPreview.getMirrorModeوVideoCapture.setMirrorModeإلى واجهات برمجة التطبيقات العامة، وتمت إزالة التعليق التوضيحيExperimentalMirrorMode. (I4ed60، b/519794349، b/470629643) - تمت إضافة أدوات إنشاء Kotlin DSL
preview{ ... } وimageCapture{ ... } وimageAnalysis{ ... } وvideoCapture{ ... } لإنشاءUseCases. (I91df9، b/530013719) - تم تعديل ImagePlane.buffer ليصبح ByteBuffer غير قابل للإلغاء. (I98593)
- تم إيقاف دوال الحصول على السمات نهائيًا في
SessionConfig.BuilderوHighSpeedVideoSessionConfig.BuilderوExtensionSessionConfig.Builderفي لغة Kotlin DSL لفرض سمات الكتابة فقط. (I2875b، b/534570559)
إصلاح الأخطاء
- تم إصلاح مشكلة كانت تؤدي إلى تعذُّر عرض بث واحد من "النسخة الحصرية" عند ربط حالات استخدام متعددة لـ "
Preview" بـ "OverlayEffect". (I7a383، b/532577546، b/532924417) - تم إصلاح مشكلة تعذُّر استخدام
Recording.pause()وRecording.resume()عند تبديل الكاميرات أثناء تسجيل فيديو مستمر. (I71004، b/532327691، b/367121726) - تم إصلاح أعطال طبقة تجريد الأجهزة (HAL) عند استخدام ميزة "الالتقاط الفوري" (ZSL) أثناء التكبير أو التصغير عبر حدود الكاميرا الفعلية على الأجهزة التي تحتوي على كاميرات متعددة. (I1c374، b/527782712، b/514757157)
- تم إصلاح مشكلة احتمال تعذُّر تسجيل فيديو بتقنية النطاق العالي الديناميكية (HDR) على أجهزة Samsung Galaxy S25 وS26 وFold 7. (Ic0827، b/529618629)
الإصدار 1.7.0-alpha02
1 يوليو 2026
تم طرح androidx.camera:camera-*:1.7.0-alpha02. يتضمّن الإصدار 1.7.0-alpha02 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تتيح حزمة
CameraXViewfinderالآن استخدام الإيماءات المضمّنة للتكبير أو التصغير بإصبعين والنقر للتركيز، وتضيف إمكانية استخدام وميض الشاشة وحالة البث. أصبحت السمةFocusStateمتاحة الآن للجميع في viewfinder-core للسماح بمراقبة نتائج ميزة "النقر للتركيز". (I66a17، b/522549890) - تمت إضافة
isAutoRotationEnabledإلىSessionConfig.BuilderوHighSpeedVideoSessionConfig.BuilderوExtensionSessionConfig.Builder، وتم تقديم دوال مصنع Kotlin DSL لها. يسمح هذا الإعداد بضبط التدوير المناسب تلقائيًا استنادًا إلى أدوات استشعار الجهاز. (I5b4a3، b/510752515) - تمت إضافة السمة
TransformationModeإلىTransformationInfoلإتاحة استخدام التطبيقات لمسارOpenGLفي وضعEMBEDDED. (Id1de1، b/487826941) - تمت إضافة
isNightModeIndicatorSupported()وgetNightModeIndicator()إلىCameraInfoلتحديد الحالات التي تستوفي فيها الظروف البيئية معايير "الوضع الليلي". (Iae47b، b/499389465) - تم عرض ImageAnalysis.OUTPUT_IMAGE_FORMAT_PRIVATE وImageProxy.getHardwareBuffer() كواجهة برمجة تطبيقات علنية لإتاحة ImageAnalysis المستندة إلى وحدة معالجة الرسومات. (I41cb3، b/496022391، b/492934501)
- تم إيقاف ExtensionsManager#getExtensionEnabledCameraSelector نهائيًا. يُرجى استخدام واجهة ExtensionSessionConfig API الجديدة لتفعيل أوضاع الإضافات. (I2b336، b/473715607)
- تمت إضافة ميزة تتيح تصميم إطارات الكاميرا بشكل مرئي أثناء تركيب الكاميرا المتزامن. يمكنك الآن تخصيص ما يلي:
- الزوايا الدائرية: استخدِم setRoundedCornerRatio(float) لتطبيق التقريب العادي (من 0.0 إلى 1.0) على حواف الإطار.
- الحدود: يمكنك استخدام setBorderWidthRatio(float) وsetBorderColor(int) لإضافة إطار زخرفي بسُمك متّسق (I18a07، b/366349205)
- تم تعديل CompositionSettings لفرض ترتيب z غير سالب، وتمت إضافة عملية التحقّق إلى ConcurrentCamera.setCompositionSettings لضمان استدعائها بالعدد الصحيح من الإعدادات في وضع التركيب الصالح. (If660d، b/496951658)
- تمت إضافة getNightModeIndicator() وisNightModeIndicatorAvailable() إلى CameraExtensionsInfo للسماح للتطبيقات بمراقبة ما إذا كانت البيئة الحالية في وضع "صور في الليل" عند استخدام إضافات الكاميرا. (I62bb4، b/499389465)
- تمت إضافة إمكانية استخدام جودة الفيديو
QHDفي VideoCapture. (I0ac20، b/501305592) - تمت إضافة
Recorder.Builder.setTargetAudioChannelCount(int)وRecorder.getTargetAudioChannelCount()للسماح للمطوّرين بضبط عدد صريح للقنوات الصوتية. (I6bee0، b/441895100) - تمت إضافة
Recorder.Builder.setTargetAudioEncodingBitRate(int)للسماح بضبط معدل نقل البيانات المستهدَف لترميز الصوت. (I29062، b/241151504) - تمت إضافة واجهة برمجة التطبيقات ConcurrentCamera.setCompositionSettings للسماح للتطبيقات بتعديل تركيبة الكاميرا الحالية ديناميكيًا بعد ربط مراحل النشاط. بالإضافة إلى ذلك، تتيح واجهة برمجة التطبيقات setZOrder الجديدة في CompositionSettings.Builder التحكّم بدقة في ترتيب عرض بث الكاميرا المتداخل. (I90528، b/473702287)
- تم تقديم واجهات برمجة تطبيقات للتحكّم الدقيق في تنسيقات الترميز. يمكن للمطوّرين الآن اكتشاف التنسيقات المتوافقة مع الأجهزة باستخدام
Recorder.getSupportedVideoMimeTypes()وgetSupportedAudioMimeTypes()، وهما حاليًا في المرحلة التجريبية. يمكن ضبط التنسيقات المفضّلة بوضوح من خلالRecorder.Builder.setVideoMimeType()وsetAudioMimeType(). بالإضافة إلى ذلك، تتيح واجهة برمجة التطبيقاتRecorder.getVideoCapabilities(CameraInfo, String)الاستعلام عن الإمكانات الخاصة بالكاميرا، مثل الجودة والنطاقات الديناميكية المتوافقة، لبرنامج ترميز محدّد. (I4620e، b/491319384) - تمت إضافة CameraController.setAutoRotationEnabled(boolean) للسماح بإيقاف أداة الاستماع إلى التدوير التلقائي للجهاز. (Ia0c03، b/449573627)
- تمت إضافة ميزة قفل التعريض التلقائي/توازن اللون الأبيض التلقائي في FocusMeteringAction من خلال واجهة برمجة تطبيقات جديدة باسم setLockingMode. ويسمح هذا أيضًا بتحديث مناطق 3A بدون قفل التركيز، ما يتيح للكاميرا البقاء في وضع التركيز التلقائي المستمر أثناء تحديث منطقة التركيز. (I6416f، b/481624745)
إصلاح الأخطاء
- إزالة شرط
compileSdk 37(If78b4) - تم إصلاح مشاكل تحويل
CameraXViewfinderفي وضعEMBEDDEDعند تفعيل مسارOpenGLمن خلالCameraXلربط المزيد منUseCasesأو معالجة السطح. (I3e637، b/487826941) - تم تعديل الاختبارات والأنشطة لاستخدام ExtensionSessionConfig بدلاً من واجهة برمجة التطبيقات getExtensionEnabledCameraSelector التي تم إيقافها نهائيًا. (I765d8، b/473715607)
- تم إصلاح خطأ في التجميع "لا يمكن الوصول إلى الفئة ListenableFuture". (Ic8cba، b/497571473)
- تم تحديث compileSdk في Compose إلى المستوى 37 من واجهة برمجة التطبيقات. وهذا يعني أنّه يجب استخدام الإصدار 9.2.0 أو إصدار أحدث من "مكوّن Android الإضافي لـ Gradle" عند استخدام Compose. (Id45cd، b/413674743)
الإصدار 1.7.0-alpha01
11 مارس 2026
تم طرح androidx.camera:camera-*:1.7.0-alpha01. يتضمّن الإصدار 1.7.0-alpha01 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تم الكشف عن واجهة برمجة التطبيقات
CameraController.setSessionConfig(). يتيح ذلك توفيرSessionConfigمخصّص لإعداداتUseCaseالمتقدّمة التي لا يعرضهاCameraControllerمباشرةً. عندما يكونSessionConfigنشطًا، يتم إيقاف طرق الضبط الأخرى علىCameraController.(I35cf1، b/448525636)
إصلاح الأخطاء
- يتم نقل المكتبات لاستخدام Java 11. وهذا يعني أنّ الرمز الثانوي الذي يتم إنشاؤه سيكون Java 11 (الإصدار 55 من ملف الفئة) وقد يتطلّب إزالة التجميل اللغوي لاستخدام المكتبة (If4c2a، b/457821470)
- تم إصلاح خطأ في
ImageAnalysisحيث لم يتم تدوير الصور بشكل صحيح عند تفعيل تدوير الصورة الناتجة وكان التدوير النسبي الأولي 0 درجة. (Id46c2، b/487160584)
الإصدار 1.6 من تطبيق "الكاميرا"
الإصدار 1.6.2
26 أغسطس 2026
تم طرح androidx.camera:camera-*:1.6.2. يتضمّن الإصدار 1.6.2 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح عطل في التجميع في إصدارات JDK الأحدث عند حلّ تعليقات توضيحية من نوع JSpecify تم استيرادها بشكل انتقالي في حقول
CameraXالداخلية. (I00bb4، b/543937345)
الإصدار 1.6.1
6 مايو 2026
تم طرح androidx.camera:camera-*:1.6.1. يتضمّن الإصدار 1.6.1 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح خطأ في التجميع "لا يمكن الوصول إلى الفئة
ListenableFuture" عند استخدام CameraX 1.6.0. (Ic8cba، b/497571473)
الإصدار 1.6.0
25 مارس 2026
تم طرح androidx.camera:camera-*:1.6.0. يتضمّن الإصدار 1.6.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.5.0:
1. نقل البيانات إلى حزمة كاميرا موحّدة عالية الأداء
- تستخدم واجهة CameraX الآن
CameraPipe، وهي حزمة حديثة وعالية الأداء تشغّل كاميرا Pixel. يعمل هذا الانتقال على تبسيط الكفاءة الهندسية وتوفير أساس قابل للتوسّع لتقديم ميزات التصوير الحاسوبي المتقدّمة إلى منظومة المطوّرين المتكاملة.
2. دمج Media3 Muxer
- تدمج CameraX الآن Media3 Muxer تلقائيًا ضمن واجهة برمجة التطبيقات VideoCapture. توفّر عملية النقل هذه العديد من المزايا:
- أداء محسَّن: معالجة الفيديوهات ودمجها بكفاءة أكبر
- المرونة في التعامل مع الأعطال: تم تحسين الحماية من تلف ملفات الفيديو، ما يضمن الحفاظ على البيانات حتى في حال تعطُّل التطبيق أثناء التسجيل.
3. تحسين مجموعة الميزات
- تتيح واجهة برمجة التطبيقات Feature Group الآن ميزتَي "تثبيت الحركة في الفيديو" والتسجيل بدقة 4K. تتضمّن
GroupableFeaturesVIDEO_STABILIZATIONوUHD_RECORDINGللسماح للتطبيقات بتفعيلها مع ميزات أخرى. تتوفّر ميزتاCameraEffectوImageAnalysisفيSessionConfigعند تفعيل مجموعة الميزات.
4. واجهة برمجة التطبيقات SessionConfig API الثابتة
- تمت ترقية
SessionConfigمن واجهة برمجة تطبيقات تجريبية إلى واجهة برمجة تطبيقات عامة ومستقرة بالكامل، بما في ذلكSessionConfigوHighSpeedVideoSessionConfig. يمكن الآن تنفيذ إضافات CameraX باستخدام واجهة برمجة تطبيقاتExtensionSessionConfigجديدة. تم تقديم واجهة برمجة تطبيقات جديدةisSessionConfigSupportedتتيح للمطوّرين الاستعلام عمّا إذا كان الجهاز يتيح مجموعة معيّنة من حالات الاستخدام والميزات (مثل النطاق العالي الديناميكية أو التثبيت أو درجات دقة معيّنة أو إضافات CameraX أو العرض البطيء) قبل الربط بمراحل النشاط.
إصلاح الأخطاء
- تم إصلاح عطل يحدث على بعض الأجهزة التي تعمل بنظام التشغيل Android 17 (المستوى 37 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث. عندما تعرض هذه الأجهزة ملفات شخصية جديدة للنطاق الديناميكي (مثل STANDARD_SMPTE_2094_50(ID 8192)) لم تكن معروفة للإصدار 1.5.1 من CameraX والإصدارات الأقدم، كانت المكتبة تفشل في السابق في التعامل مع هذه المعرّفات بشكل صحيح، ما يؤدي إلى ظهور
NullPointerExceptionأوIllegalArgumentExceptionأثناءProcessCameraProvider.bindToLifecycle(). يسمح هذا الإصلاح لـ CameraX بتجاهل ملفات تعريف النطاق الديناميكي غير المعروفة بسلاسة، ما يمنع تعطُّل التطبيق ويحافظ على التوافق مع الإصدارات الأحدث. يُرجى تحديث تبعية CameraX إلى الإصدار 1.5.2 أو 1.6.0 (أو إصدار أحدث) لتجنُّب هذه المشكلة على الأجهزة التي تعرض هذه الملفات الشخصية الجديدة. لمزيد من التفاصيل، يُرجى الاطّلاع على المشكلة 519796838. (Ibd7b5) - تقدّم واجهة برمجة التطبيقات لمجموعة الميزات الآن نتائج متّسقة عند استخدام
PREVIEW_STABILIZATIONمعVideoCapture. يؤدي ذلك إلى إصلاح خطأ تسبّب في ظهور نتائج غير متسقة عندما لم تكن حالة استخدام "المعاينة" نشطة أيضًا. (Ifed82، b/449913903) - تم إصلاح مشكلة كانت تؤدي إلى إتاحة ميزات مفضّلة غير متوافقة بشكل غير صحيح. تتم الآن فلترة الميزات بشكل صحيح عندما لا يتم استيفاء حالات الاستخدام المطلوبة. (I38db8، b/449532342)
- تم إصلاح مشكلة ظهور نتيجة فيديو غير واضحة على هاتف Samsung Galaxy S6. (I612d9، b/235127608)
- تم إصلاح مشكلة حيث يمكن أن تعرض
CameraInfo#isFeatureGroupSupportedالقيمة "صحيح" بشكل غير صحيح لـPREVIEW_STABILIZATIONإذا تم ضبطSessionConfigفي طلب البحث مسبقًا باستخدام ميزات أخرى. (I2c355c، b/437816469) - تم استبعاد أحجام مخرجات تنسيق YUV التي تتضمّن مشاكل من جهاز Samsung Z Fold 4. تظهر مشكلة تشويه في الصور التي يتم تلقّيها عند استخدام أحجام الإخراج هذه. (I776bf، b/460322307)
- تم إصلاح مشكلة متعلّقة بجهاز Samsung A53، حيث يتعذّر أحيانًا التقاط الصور مع تفعيل المصباح اليدوي في حال ربط حالة استخدام
VideoCapture. (I0f183، b/458197367) - تم إصلاح مشكلة في بعض الأجهزة حيث قد يؤدي استخدام الفلاش مع الكاميرا الفائقة الاتساع إلى التقاط صور منخفضة الإضاءة. (Ib7530، b/444590340)
- تم تعديل تبعية
ExifInterfaceلتشمل إصلاحًا لتحليل ملفات JPEG باستخدام حشو0xFF، ما يحلّ مشاكل تعذُّر التقاط الصور على الأجهزة التي يضيف فيها برنامج ترميز JPEG وحدات بايت للتعبئة قبل العلامات. (I0eb49)
الإصدار 1.6.0-rc01
25 فبراير 2026
تم طرح androidx.camera:camera-*:1.6.0-rc01. يتضمّن الإصدار 1.6.0-rc01 هذه التعديلات.
الإصدار 1.6.0-beta02
11 فبراير 2026
تم طرح androidx.camera:camera-*:1.6.0-beta02. يتضمّن الإصدار 1.6.0-beta02 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة
ImageCaptureOUTPUT_FORMAT_RAW_JPEG في الالتقاط من الذاكرةIllegalArgumentException. (Id4eec، b/479990902) - تم نقل البيانات إلى أداة دمج AndroidX Media3. أصلح هذا التحديث مشكلتَين: 1- تلف الفيديو أثناء الانقطاعات غير المتوقعة أو إغلاق التطبيق، و2- الأعطال عند حفظ الفيديوهات في واصفات ملفات الوكيل. (I23b63، b/433649708، b/264812009، b/475750115)
الإصدار 1.6.0-beta01
28 يناير 2026
تم طرح androidx.camera:camera-*:1.6.0-beta01. يتضمّن الإصدار 1.6.0-beta01 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة النوع الحالي في
CameraExtensionsInfoفي الإصدار 1.6.0-alpha من CameraX، حيث لا يمكن لعنصر LiveData تلقّي بيانات النوع المعدَّلة. (I2c7a5) - تم تعديل تبعية ExifInterface لتشمل إصلاحًا لمشكلة تحليل ملفات JPEG التي تحتوي على مساحة متروكة بقيمة 0xFF، ما يحلّ مشاكل تعذُّر التقاط الصور على الأجهزة التي يضيف فيها برنامج ترميز JPEG وحدات بايت للتعبئة قبل العلامات. (I0eb49)
الإصدار 1.6.0-alpha02
17 ديسمبر 2025
تم طرح androidx.camera:camera-*:1.6.0-alpha02. يتضمّن الإصدار 1.6.0-alpha02 هذه التعديلات.
الميزات الجديدة
- تمت إضافة ميزة قابلة للتجميع للإشارة إلى ميزة تثبيت الفيديو في إعدادات الجلسة. يمكن للمطوّرين الآن طلب ميزة تثبيت الفيديو كميزة مطلوبة أو مفضّلة، ما يجعلها متوافقة مع الميزات الأخرى التي يمكن تجميعها، مثل UHD_RECORDING وPREVIEW_STABILIZATION. (Ic6757، b/419766630)
- تمت إضافة ميزات قابلة للتجميع للإشارة إلى جودة تسجيل الفيديو في إعدادات الجلسة. يمكن للمطوّرين الآن طلب جودة معيّنة (مثل UHD أو FHD) كميزة مطلوبة أو مفضّلة، بما يتوافق مع الميزات الأخرى التي يمكن تجميعها، مثل نطاق عالي الديناميكية وعدد اللقطات في الثانية. (Ib5cd3، b/437820285)
- تمت إضافة إمكانية استخدام كل من
CameraEffectوواجهة برمجة التطبيقات لمجموعات الميزات فيSessionConfig. (I17f18، b/406370934) - تمت إضافة إمكانية استخدام كل من
ImageAnalysisوواجهة برمجة التطبيقات لمجموعات الميزات فيSessionConfig. (I87833، b/406371720)
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة دالة setter لـ
addUseCaseفيExtensionSessionConfig.Builderوإضافة دوال getter الناقصة لـExtensionSessionConfig. (I71e07، b/453988621) - تمت إضافة واجهة برمجة التطبيقات
ExtensionsManager.getInstance، وهي نسخة معلّقة منExtensionsManager.getInstanceAsync(I3a0a9، b/452208792) - تم تغيير اسم
isFeatureGroupSupportedإلىisSessionConfigSupported، وأصبح يتيح استخدام أي نوع منSessionConfig. (I21616، b/448781299) - تم تحويل
ExtensionsManagerإلى تنفيذ Kotlin. (I73091، b/452208792) - تمت إضافة
CameraProvider#getCameraInfo(CameraSelector, SessionConfig)لاستردادCameraInfoعندما يمكن أن يؤثرSessionConfigفي اختيار الكاميرا. على سبيل المثال، عند استخدامExtensionSessionConfig. (Ic548c، b/451891648) - تم عرض واجهة برمجة التطبيقات
ExtensionSessionConfig. يمكن للتطبيقات إنشاءExtensionSessionConfigواستخدامه لإنشاء جلسة إضافات الآن. (I6354c، b/448524373) - لم تعُد واجهة برمجة التطبيقات
androidx.camera.video.HighSpeedVideoSessionConfigتجريبية، بل أصبحت الآن واجهة برمجة تطبيقات عامة ومستقرة بالكامل. (I492d4، b/447558239) - لم تعُد واجهة برمجة التطبيقات
androidx.camera.core.SessionConfigتجريبية، بل أصبحت الآن واجهة برمجة تطبيقات عامة ومستقرة بالكامل. (Idc87a، b/447558437)
إصلاح الأخطاء
- تم إصلاح عطل ناتج عن
IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object:على الإصدار 17 من نظام التشغيل Android أو الإصدارات الأحدث. (Ibd7b5، b/463465353) - تم استبعاد أحجام مخرجات تنسيق YUV التي تتضمّن مشاكل من جهاز Samsung Z Fold 4. تظهر مشكلة تشويه في الصور التي يتم تلقّيها عند استخدام أحجام الإخراج هذه. (I776bf، b/460322307)
- تم إصلاح مشكلة عدم تطبيق
CaptureRequest.FLASH_MODEعند ضبطه من خلال واجهة برمجة التطبيقاتCamera2Interop. (I0004c، b/459608684) - تم إصلاح مشكلة متعلّقة بجهاز Samsung A53، حيث يتعذّر أحيانًا التقاط الصور مع تفعيل المصباح اليدوي في حال ربط حالة استخدام
VideoCapture. (I0f183، b/458197367) - تم إصلاح مشكلة في بعض الأجهزة حيث قد يؤدي استخدام الفلاش مع الكاميرا الفائقة الاتساع إلى التقاط صور منخفضة الإضاءة. (Ib7530، b/444590340)
الإصدار 1.6.0-alpha01
22 أكتوبر 2025
تم طرح androidx.camera:camera-*:1.6.0-alpha01. يتضمّن الإصدار 1.6.0-alpha01 هذه التعديلات.
الميزات الجديدة
- انتقلت CameraX إلى حزمة كاميرا موحّدة وعالية الأداء، والتي يستخدمها أيضًا تطبيق "كاميرا Pixel". تُعرف هذه الحزمة الجديدة باسم
CameraPipe، وهي ثمرة تعاون بين فريقَي CameraX و"كاميرا Pixel". ويضمن ذلك مشاركة جميع التحسينات، ما يفيد مستخدمي CameraX وتطبيق "كاميرا Pixel".
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة واجهات برمجة تطبيقات جديدة لرصد إضافة الكاميرا الديناميكية أو إزالتها. لمزيد من التفاصيل، يمكنك الاطّلاع على واجهة برمجة التطبيقات
CameraPresenceListener. (I41ead، b/427182232، b/419441394)
إصلاح الأخطاء
- تقدّم واجهة برمجة التطبيقات لمجموعة الميزات الآن نتائج متّسقة عند استخدام
PREVIEW_STABILIZATIONمعVideoCapture. يؤدي ذلك إلى إصلاح خلل تسبّب في ظهور نتائج غير متسقة عندما لم تكن حالة استخدامPreviewنشطة أيضًا. (Ifed82، b/449913903) - تم إصلاح مشكلة كانت تؤدي إلى إتاحة ميزات مفضّلة غير متوافقة بشكل غير صحيح. تتم الآن فلترة الميزات بشكل صحيح عندما لا يتم استيفاء حالات الاستخدام المطلوبة. (I38db8، b/449532342)
- تم إصلاح مشكلة ظهور نتيجة فيديو غير واضحة على هاتف Samsung Galaxy S6. (I612d9، b/235127608)
- تم إصلاح مشكلة حيث يمكن أن تعرض
CameraInfo#isFeatureGroupSupportedالقيمة "صحيح" بشكل غير صحيح لـPREVIEW_STABILIZATIONإذا تم ضبطSessionConfigفي طلب البحث مسبقًا باستخدام ميزات أخرى. (I2c355c، b/437816469)
الإصدار 1.5 من تطبيق "الكاميرا"
الإصدار 1.5.3
28 يناير 2026
تم طرح androidx.camera:camera-*:1.5.3. يتضمّن الإصدار 1.5.3 هذه التعديلات.
إصلاح الأخطاء
- تم تحديث اعتمادية ExifInterface إلى الإصدار 1.4.2. يؤدي ذلك إلى إصلاح مشكلة تعذُّر التقاط الصور التي تحدث على الأجهزة التي تنتج صور JPEG مع وحدات بايت إضافية (ومسموح بها) بقيمة 0xFF قبل العلامة. (I16df4)
الإصدار 1.5.2
4 ديسمبر 2025
تم طرح androidx.camera:camera-*:1.5.2. يتضمّن الإصدار 1.5.2 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح عطل ناتج عن
IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object:على الإصدار 17 من نظام التشغيل Android أو الإصدارات الأحدث. (Ic9184) - تم إصلاح خطأ يؤدي إلى نتائج غير متّسقة في واجهة برمجة التطبيقات لمجموعة الميزات عند إضافة ميزة "
PREVIEW_STABILIZATION" مع حالة الاستخدام "VideoCapture"، ولكن بدون حالة الاستخدام "Preview". (Ifed82) - تم إصلاح مشكلة عدم فلترة الميزات المفضّلة على الرغم من عدم توفّر حالات الاستخدام المطلوبة لتفعيلها. (I38db8)
الإصدار 1.5.1
8 أكتوبر 2025
تم طرح androidx.camera:camera-*:1.5.1. يتضمّن الإصدار 1.5.1 هذه التعديلات.
إصلاح الأخطاء
- إتاحة استخدام
CameraEffectفي وضع تركيب الكاميرا المتزامن سيتم تطبيق التأثير على ناتج التركيبة. يُرجى العِلم أنّه سيتم تجاهل السمةmirrorModeفيVideoCaptureعند ضبط التأثير في وضع دمج الكاميرات المتزامنة. (If3d00، b/425565129) - تم إصلاح المشكلة المتمثّلة في عدم تطبيق
mirrorModeبشكل صحيح على الكاميرا الثانوية في وضع دمج الكاميرات المتزامنة. (I686cd، b/446430827) - إتاحة ربط
PreviewوImageCaptureوVideoCaptureمعًا في وضع عدم دمج الكاميرات المتزامنة (Ib410a، b/443009871) - تم إصلاح مشكلة فقدان UseCases، مثل
ImageCaptureوVideoCapture، لمعلومات التدوير المستهدَفة في حال إعادة إنشائها. قد يؤدي ذلك إلى ظهور الصور أو الفيديوهات باتجاه غير صحيح إذا تم تغيير إعداد مثلimageCaptureModeبعد تدوير الجهاز. (I477c8، b/444734537) - تم إصلاح مشكلة كانت تمنع ميزة "المعاينة" من اختيار درجات دقة بنسبة عرض إلى ارتفاع تبلغ 16:9، وتمنع "
VideoCapture" من التسجيل بجودة QUALITY_1080P. حدثت هذه المشكلة عند استخدام إعدادات دقة المعاينة التلقائية أثناء تفعيل ميزةStreamSharingالداخلية (على سبيل المثال، عند ربط أربع حالات استخدام في الوقت نفسه). (I493cb، b/440364875) - تم إصلاح مشكلة تعطُّل التطبيق عند تفعيل التأثير بعد إيقاف
SurfaceProcessor(I2c450، b/414150174) - تم إصلاح خلل في
CameraControllerكان يؤدي إلى حدوثIllegalStateExceptionعندما تختار UseCase أولية الحد الأقصى للدقة، ما يمنع بعد ذلك ربط UseCases الأخرى. (Ifb758، b/440374234) - يستبعد أحجام مخرجات YUV_420_888 التي تسبب مشاكل في Nokia 7 Plus والتي ستؤدي إلى حدوث مشكلة الفشل الصامت بدون الإبلاغ عن أي رسائل خطأ. (I3af47، b/436524501)
- تم إصلاح مشكلة كانت تؤدي إلى عرض
CameraInfo#isFeatureGroupSupportedللقيمة "صحيح" بشكل غير صحيح لميزةPREVIEW_STABILIZATION. قد يحدث ذلك أحيانًا عند إرسال طلب بحث باستخدامSessionConfigتم ضبطه مسبقًا مع ميزات أخرى. (I2c355، b/437816469) - تم تحسين ثبات
CameraXViewfinderعلى مستويات واجهة برمجة التطبيقات القديمة والأجهزة التي بها مشاكل فيSurfaceViewمن خلال ضبط الإعدادات التلقائية علىTextureViewفي مثل هذه السيناريوهات. تُعدّ آلية الاحتياط هذه هي الإعداد التلقائي الجديد، ولكن يمكن إلغاؤها آليًا. (Ieb476، b/437496463) - تم إصلاح مشكلة تسرُّب الذاكرة في
PreviewViewحيث كان من الممكن أن تمنع جمع المهملات من نشاطها. يحدث ذلك إذا وصلSurfaceRequestجديد قبل معالجة الطلب السابق. (I4aa0b،b/443112512) - تم إصلاح مشكلة تعذُّر التسجيل بسرعة عالية أو بالحركة البطيئة على أجهزة Huawei P smart وInfinix Hot 40i وRealme C53. (40a668e، b/442984200)
الإصدار 1.5.0
10 سبتمبر 2025
تم طرح androidx.camera:camera-*:1.5.0. يتضمّن الإصدار 1.5.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.4.0:
- التسجيل عالي السرعة والتسجيل البطيء: يمكنك بسهولة دمج تسجيل الفيديو عالي السرعة (120/240 لقطة في الثانية) والتسجيل البطيء بأقل قدر من الرموز البرمجية. لمزيد من التفاصيل، يُرجى الاطّلاع على
Recorder#getHighSpeedVideoCapabilities(CameraInfo)وHighSpeedVideoSessionConfig. - واجهة برمجة التطبيقات
SessionConfigوFeatureGroup: تتيح لك واجهة برمجة التطبيقاتSessionConfigالجديدة ضبط جلسة الكاميرا وتفعيل ميزات متعددة معًا بأمان، بما في ذلك HLG (HDR) وUltraHDR و60 لقطة في الثانية وتثبيت المعاينة. يمكنك أيضًا ضبط مجموعة ميزات مفضّلة حسب الأولوية، ما يتيح لـ CameraX تحديد المجموعة المثلى المتوافقة. لمزيد من المعلومات، يُرجى الاطّلاع علىSessionConfig.Builder#setPreferredFeatureGroupوSessionConfig.Builder#setRequiredFeatureGroupوCameraInfo#isFeatureGroupSupported(SessionConfig). - واجهة برمجة التطبيقات Deterministic Frame Rate API: يمكنك معالجة القيود السابقة في
setTargetFrameRateباستخدامCameraInfo.getSupportedFrameRateRanges(sessionConfig)لطلب البحث وSessionConfig.setExpectedFrameRateRangeلضبط عدد اللقطات في الثانية بدقة وبشكل متوافق. - إضافات الكاميرا: يتوافق تنسيق UltraHDR الآن مع الإضافات. يُرجى التحقّق من "
ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats()" وتفعيله في "ImageCapture.Builder.setOutputFormat". تنعكس الآن إمكانات نسبة التكبير/التصغير وتثبيت المعاينة عند تفعيل الإضافات. - شدة ضوء المصباح: يمكنك ضبط شدة ضوء المصباح باستخدام
CameraControl.setTorchStrengthLevel. - وضع "تحسين الإضاءة المنخفضة": يمكنك تفعيل وضع "تحسين الإضاءة المنخفضة" (
CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY) من خلال واجهات برمجة التطبيقات التالية: راجِعCameraInfo#isLowLightBoostSupportedوCameraInfo#getLowLightBoostStateوCameraControl#enableLowLightBoostAsync. - تسجيل الفيديو: يتم الآن تشغيل "
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE" في حال عدم توفّر مساحة تخزين كافية أثناء التسجيل. يسمحPendingRecording.withAudioEnabled(boolean initialMuted)بالتحكّم في حالة كتم الصوت الأولية لتسجيل الصوت. - التقاط الصور: تمت إضافة إمكانية استخدام تنسيقَي DNG (RAW) وJPEG + DNG (RAW) في "
ImageCapture". يُرجى التحقّق من "ImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats()" لمعرفة ما إذا كان يتوافق مع تنسيق RAW. استخدِم واجهات برمجة تطبيقاتtakePictureالمحمّلة بشكل زائد مع عدةOutputFileOptionsلالتقاط صور بتنسيق RAW+DNG. - تحليل الصور: إتاحة تنسيق NV21 في
ImageAnalysisيمكنك تفعيلها من خلالImageAnalysis.Builder.setOutputImageFormat(OUTPUT_IMAGE_FORMAT_NV21).
الإصدار 1.5.0-rc01
13 أغسطس 2025
تم طرح androidx.camera:camera-*:1.5.0-rc01. يتضمّن الإصدار 1.5.0-rc01 هذه التعديلات.
إصلاح الأخطاء
- نقل الحد الأدنى التلقائي لإصدار حزمة تطوير البرامج (SDK) من المستوى 21 إلى المستوى 23 (Ibdfca، b/380448311، b/435705964، b/435705223)
- تمت إزالة قيود الإخراج بدقة 10 بت في وضع التعرض التلقائي للضوء في ميزة "تحسين الصورة في الإضاءة المنخفضة". يمكن للتطبيقات الآن تفعيل كلتا الميزتَين في الوقت نفسه على الأجهزة المتوافقة. (I5a638)
- تم حلّ مشكلة كانت تؤدي إلى توقّف الأجهزة التي تتضمّن شرائح تعريف
UniSocعن العمل عند التقاط صورة. حدثت المشكلة عند استخدامVideoCaptureوPreviewوImageCaptureفي الوقت نفسه مع ضبط جميع أحداث البث على دقة 1280×720. (Ia00c4، b/380802479) - تم إصلاح مشكلة ظهور شاشة سوداء في المعاينة عند عدم ضبط عدد لقطات في الثانية للتسجيل عالي السرعة أو البطيء. (cdf0ff2e9)
- تحسين معالجة الأخطاء وتسجيلها في
getViewportAspectRatioInt(82fca18)
الإصدار 1.5.0-beta02
16 يوليو 2025
تم طرح androidx.camera:camera-*:1.5.0-beta02. يتضمّن الإصدار 1.5.0-beta02 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة واجهات برمجة تطبيقات جديدة لضبط مجموعات من الميزات العالية الجودة أو الاستعلام عنها بشكل أكثر سهولة ودقة، لأنّ هذه الميزات قد لا تكون متاحة كمجموعة على جميع الأجهزة. يحتوي
SessionConfigالآن على واجهات برمجة تطبيقات جديدة للإشارة إلى مجموعة من الميزات على أنّها مطلوبة أو مفضّلة. تتيح واجهة برمجة التطبيقاتCameraInfo.isFeatureGroupSupportedمعرفة ما إذا كانت مجموعة الميزات متوافقة قبل ربطSessionConfig. يتيحSessionConfigأيضًا ضبط مستمع لمعرفة الميزات التي تم اختيارها في النهاية عند ربط إعدادات الجلسة. (Ie4d60) - تمت إضافة واجهتَي برمجة التطبيقات الجديدتَين
SessoinConfig.Builder.setFrameRateRange(Range<Integer>)وCameraInfo.getSupportedFrameRateRanges(SessionConfig)، ما يتيح للمطوّرين الاستعلام عن عدد اللقطات في الثانية المضمونة والمتوافقة والمقيّدة بـSessionConfigمعيّن، ثم تطبيق عدد اللقطات في الثانية علىSessionConfig. (Ieacf7) - تم تقديم واجهة برمجة التطبيقات
SessionConfigالجديدة، والتي تتضمّن تجريدًا أفضل لضبط حالات الاستخدام ومَعلمات الجلسة وCameraEffectوViewPortوما إلى ذلك. يؤدي ربطSessionConfigبـ LifecycleOwner إلى فتح جلسة الكاميرا وضبطها باستخدام حالات الاستخدام ومَعلمات الجلسة المحدّدة، وتطبيقCameraEffectوViewPortالمحدّدَين. عند تحديثSessionConfigجديد إلىLifecycleOwnerنفسه، يمكنك ربطSessionconfigجديد بدون الحاجة إلى استدعاء إلغاء الربط أوunbindAllأولاً. (Iedfc3) - تمت إضافة واجهات برمجة تطبيقات جديدة لتسجيل فيديو عالي السرعة أو بالتصوير البطيء. لمزيد من التفاصيل، يُرجى الاطّلاع على واجهة برمجة التطبيقات
HighSpeedVideoSessionConfig. (Ia16f3)
إصلاح الأخطاء
- تم إصلاح مشكلة في واجهة برمجة التطبيقات
ImageCaptureCapabilities#getSupportedOutputFormats()التي كانت تُبلغ عن توفّر تنسيقات RAW في بعض الأجهزة التي لا تتوافق معها. (Ibcadb) - تم إصلاح مشكلة تسرُّب الذاكرة التي تحدث عند استخدام
PreviewViewأو تفعيلCameraEffectأو ربط 4 حالات استخدام(StreamSharing) (I87468) - تم إصلاح عطل في تسجيل الفيديو بسبب
AssertionError: حالة الصوت الداخلي غير صالحة: في وضع عدم النشاط. (I38d4b، b/414259796) - تم إصلاح المشكلة التي تحدث عندما يعمل التطبيق على شاشة خارجية ويكون الجهاز في الوضع الأفقي، حيث تصبح المعاينة في
PreviewViewممتدة أو جانبية (Ia917a) - تم إصلاح المشكلة المتمثّلة في عدم تطبيق إعدادات "تثبيت المعاينة" بشكل صحيح عند مشاركة بث الكاميرا بين "المعاينة" وVideoCapture (I5430e).
- يعالج
CameraXViewfinderالآن بشكل صحيح استبدال السطح فيViewfinderالأساسي. ويشمل ذلك حالات مثل نقل عدسة الكاميرا فيEXTERNALعلى مستوى واجهة برمجة التطبيقات 28 أو أقل خارج الشاشة أو إذا كانCameraXViewfinder(مع أيImplementationMode) جزءًا منmoveableContentOf(). في الحالات التي يتعذّر فيها إبقاءViewfinderSurfaceSessionالأساسي نشطًا، سيبطلCameraXViewfinderصلاحيةSurfaceRequestالحالي في CameraX، ما يسمح لـ CameraX باستخدامSurfaceالجديد. (I79432) - تم إصلاح مشكلة في Android 10/11 حيث يمكن أن يظهر
EXTERNALCameraXViewfinderممتدًا أو غير صحيح بسبب تطبيق عمليات التحويل (مثل تغيير الحجم أو الترجمة) في وقت مبكر جدًا. ينتظر النظام الآن إنشاء Surface قبل تطبيق هذه التحويلات في مرحلة التنسيق، ما يضمن الحصول على نتائج صحيحة. (Icc77c) - تعمل الدالة المركّبة
CameraXViewfinderالآن بشكل صحيح معPagerفي Compose. يضمن هذا التغيير إمكانية إعادة ضبط الدالة المركّبة بنجاح من خلال تنفيذ دالة رد الاتصالonResetفيAndroidView، ما يتيح تنفيذ كل منEMBEDDEDوEXTERNAL. (I0d9be) - تم إصلاح تسرُّب في مالك مراحل النشاط يحدث عند إلغاء ربط حالات الاستخدام بمالك مراحل النشاط بدون إيقاف مزوّد الكاميرا.
الإصدار 1.5.0-beta01
7 مايو 2025
تم طرح androidx.camera:camera-*:1.5.0-beta01. يتضمّن الإصدار 1.5.0-beta01 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 من KGP أو إصدار أحدث (Idb6b5)
- يمكن الآن استخدام
ContentScaleو"المحاذاة" في عدسة الكاميرا لتغيير حجم السطح المعروض ووضعه داخل الحاوية، على غرار طريقة عملandroidx.compose.foundation.Image. (Ibcea3) - يحتوي
TransformationInfoالآن على قيم تلقائية لجميع الوسيطات. سيسمح ذلك بإنشاء عدسات الكاميرا بدون أيTransformationInfo، وسيتم ضبطها تلقائيًا على تدوير المصدر بمقدار 0، وعدم انعكاس المصدر، وعدم اقتصاص المستطيل. (I2b1b2) - تمت إضافة
LifecycleCameraProvider، وهو موفّر كاميرا يمكن إنشاء مثيل له بإعدادات مختلفة لميزات مثل الوصول إلى كاميرا جهاز افتراضي من خلال ضبطه بسياق مخصّص. (Ia2992)
إصلاح الأخطاء
- تم إصلاح مشكلة توقُّف المعاينة عند استخدام
ImageAnalysisمع بث آخر يستخدمTEMPLATE_RECORDعلى جهاز Samsung SM-E556B. (Ic0e62، b/409478042) - تم إصلاح مشكلة توقُّف المعاينة عند استخدام
ImageAnalysisمع بث آخر يستخدمTEMPLATE_RECORDعلى جهاز Samsung SM-M556B. (Ic1a6a، b/395822788) - تم إصلاح مشكلة "الوضع الليلي" (NIGHT) في "الإضافات" (
AssertError) على أجهزة Pixel التي تعمل بنظام التشغيل Android 15 عند إجراء عمليات متعلّقة بالتكبير أو التصغير. (I27a5d، b/401460276) - تم إصلاح مشكلة إحداثيات المربّع المحيط غير الصحيحة في "محلّل حزمة تعلّم الآلة" عند استخدام
CameraController. (Iae91b، b/409808510)
الإصدار 1.5.0-alpha06
26 فبراير 2025
تم طرح androidx.camera:camera-*:1.5.0-alpha06. يتضمّن الإصدار 1.5.0-alpha06 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة
CameraInfo.getTorchStrengthLevelوCameraInfo.getMaxTorchStrengthLevelوCameraControl.setTorchStrengthLevelللسماح بتخصيص مستوى سطوع المصباح اليدوي (I00878) - تمت إضافة واجهة برمجة تطبيقات جديدة باسم
CameraController#setTapToFocusAutoCancelDurationلكي يتمكّن المستخدمون من التحكّم في سلوك الإلغاء التلقائي لأحداث النقر للتركيز فيPreviewView. بشكل تلقائي، تلغي CameraX أحداث التركيز بعد 5 ثوانٍ (أي تتم إعادة ضبط تركيز الكاميرا)، وتسمح واجهة برمجة التطبيقات هذه بتعديل هذه المدة أو إيقاف الإلغاء التلقائي تمامًا. (Icf59a) - تمت إعادة تسمية
FLASH_STATE_READYإلىNOT_FIREDوتم تبسيط أسماء الثوابت الأخرى البالغ عددهاFlashStateلتسهيل قراءتها. (I8771d) - تم عرض واجهة برمجة التطبيقات Low Light Boost API. يمكن للأجهزة التي تعمل بنظام التشغيل Android 15 أو الإصدارات الأحدث توفير ميزة "تحسين الإضاءة المنخفضة". يمكن لهذه الميزة إجراء تعديل تلقائي لسطوع معاينة البث أو الفيديو أو تحليل الصور في ظروف الإضاءة المنخفضة. يمكن للتطبيقات استخدام واجهة برمجة التطبيقات الجديدة لإجراء ما يلي: 1. استخدِم
CameraInfo#isLowLightBoostSupportedللتحقّق من توفّر الميزة. 2. استخدِمCameraControl#enableLowLightBoostAsyncلتفعيل الوضع عندما تكون الأجهزة متوافقة معه. 3- استخدِمCameraInfo#getLowLightBoostStateلمراقبة حالة ميزة "تحسين الصورة في الإضاءة المنخفضة". (I937ed) - إضافة فئات التوافق للسماح بإجراء طلبات بحث أسرع غير Camera2 في camera-feature-combination-query (Ie97ee)
- بالنسبة إلى أحداث النقر للتركيز في
CameraController، تعرض واجهة برمجة التطبيقات الجديدةgetTapToFocusInfoState()الآن موضع النقر المقابل أيضًا من خلال عرضLiveDataمن فئةTapToFocusInfo، بينما تم إيقاف واجهة برمجة التطبيقات السابقة التي تعرضLiveData<Integer>من فئةgetTapToFocusState()نهائيًا لصالح واجهة برمجة التطبيقات الجديدة. (I238d2)
إصلاح الأخطاء
- تم إصلاح مشكلة عدم تطبيق ميزة "تثبيت المعاينة" عند تفعيلها باستخدام الإضافات. (I24ad7)
- تم إصلاح مشكلة عدم إعادة ضبط حدث حالة التركيز
CameraControllerعلىTAP_TO_FOCUS_NOT_STARTEDعندما تلغي CameraX تلقائيًا حدث تركيز يحدث بعد 5 ثوانٍ تلقائيًا. (I31954) - تم إصلاح مشكلة تجمُّد المعاينة عند استخدام ميزة "الالتقاط الفوري" (ZSL) بعد التقاط صور متعددة بسبب عدم توفّر موارد الصور. (Ic3c2a)
- تم إصلاح المشاكل المتعلّقة بظهور فيديوهات UHD بلون أحمر على بعض الأجهزة عندما يتضمّن المسار
OpenGL. (Idcedc)
الإصدار 1.5.0-alpha05
15 يناير 2025
تم طرح androidx.camera:camera-*:1.5.0-alpha05. يتضمّن الإصدار 1.5.0-alpha05 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- يُرجى إضافة
VideoCapture.getSelectedQuality()لمعرفة الجودة المحدّدة استنادًا إلىQualitySelector. (I70508، b/204288986) - عند استدعاء التقاط صورة باستخدام واجهة برمجة التطبيقات
ImageCapture.OnImageCapturedCallback، يمكن الآن استخدام ImageInfo فيImageProxyالمعروض لمعرفة ما إذا تم تشغيل الفلاش من خلال واجهة برمجة التطبيقاتImageInfo.getFlashState()الجديدة. (Id2c61، b/380527406) - تمت إضافة تنسيق الإخراج
OUTPUT_IMAGE_FORMAT_NV21لـImageAnalysis. (I484ab) - إزالة التعليق التوضيحي التجريبي من العنصر
featurecombinationquery(I4427f) - يمكنك ضبط نطاق نسبة التكبير/التصغير المسموح به لـ "
CameraControl" حسب الخصائص المتعلّقة بالإضافات عند تفعيل وضع الإضافات. (I85af1)
إصلاح الأخطاء
- تمت ترقية
compileSdkإلى 35 لاستخدام واجهة برمجة التطبيقات ذات الصلة بنظام التشغيل Android 15. ستحتاج التطبيقات التي تستخدم مكتبات CameraX أيضًا إلى ترقية إعدادات ضبطcompileSdk. (Ic80cd) - تستخدم هذه المكتبة الآن تعليقات JSpecify التوضيحية للقيمة الفارغة، وهي من نوع الاستخدام. على مطوّري Kotlin استخدام وسيطة برنامج التجميع التالية لفرض الاستخدام الصحيح:
-Xjspecify-annotations=strict(هذا هو الإعداد التلقائي بدءًا من الإصدار 2.1.0 من برنامج تجميع Kotlin). (Idc6c6، b/326456246)
الإصدار 1.5.0-alpha04
11 ديسمبر 2024
تم طرح androidx.camera:camera-*:1.5.0-alpha04. يتضمّن الإصدار 1.5.0-alpha04 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تم عرض
ImageCapture.Builder#setOutputFormatوImageCaptureCapabilities#getSupportedOutputFormatsكواجهات برمجة تطبيقات ثابتة (Ieb04a). - أضِف
VideoCapture.getResolutionInfo()للحصول على معلومات الدقة عندما يكونVideoCaptureمرتبطًا بدورة حياة. (Icb478) - تم عرض
PreviewView.getScreenFlashوPreviewView.setScreenFlashOverlayColorكواجهات برمجة تطبيقات ثابتة. (I74fee)
إصلاح الأخطاء
- تم إصلاح مشكلة تعذُّر التقاط الصور على جهاز Vivo 1610 أثناء التقاط صورة باستخدام الفلاش في الظلام. (I366f4)
- تم إصلاح مشكلة إيقاف المصباح بشكل غير متوقّع بعد التقاط صورة في هاتف Redmi Note 6 Pro. (I2e0e8، b/377144569)
- تم إصلاح مشكلة في أجهزة Pixel التي تعمل بنظام التشغيل Android 15، حيث تعذّر على "الوضع الليلي" في "الإضافات" التقاط صور ثابتة إلى أن تركّز الكاميرا على عنصر قريب. (I228d4)
- تم إصلاح مشكلة تعطُّل التقاط الصور الثابتة عند تفعيل الإضافات وربط
VideoCaptureمعًا. (I5c745) - تم تفعيل ميزة التقاط الصور الثابتة بدقة
UltraHDRفي "الإضافات" إذا كان الجهاز متوافقًا معها. (I48300) - تم إصلاح مشكلة توقيت الفلاش عند التقاط الصور باستخدام الفلاش مع استهداف
CameraEffectلالتقاط الصور على أجهزة TCL. (I7698c)
الإصدار 1.5.0-alpha03
30 أكتوبر 2024
تم طرح androidx.camera:camera-*:1.5.0-alpha03. يتضمّن الإصدار 1.5.0-alpha03 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- إضافة واجهات برمجة تطبيقات لتنسيق الإخراج لملفات RAW وRAW + JPEG
ImageCapture، ويتم عرض عملية التحقّق من إمكانات الجهاز فيImageCaptureCapabilities#getSupportedOutputFormats. يُستخدَم الرمزOUTPUT_FORMAT_RAWلالتقاط صورة RAW، وهي بتنسيق Adobe DNG، ويُستخدَم الرمزOUTPUT_FORMAT_RAW_JPEGلالتقاط صور RAW وJPEG في الوقت نفسه. تُستخدَم واجهة برمجة التطبيقات الجديدةImageCapture#takePictureلالتقاط الصور في الوقت نفسه، ويجب أن توفّر واجهتَيOutputFileOptions، الأولى لصورة RAW والثانية لصورة JPEG. (Ib0f3d)
إصلاح الأخطاء
- تم إصلاح مشكلة المعاينة والفيديو غير المعرَّضَين للإضاءة الكافية على أجهزة TCL عند تفعيل ميزة "
VideoCapture". (Id7a64) - تم إصلاح المشكلة المتمثّلة في أنّ استدعاء
startFocusMeteringباستخدامPreviewView.getMeteringPointFactoryلا يؤدي إلى الحصول على إحداثيات أداة الاستشعار الصحيحة عند تفعيل تأثير أو عند ربط 4 حالات استخدام (مشاركة البث). (I916c5، b/345993685) - تم إصلاح مشكلة عدم بدء الحدث
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEعند تسجيل فيديو وعدم توفّر مساحة تخزين كافية. (I35779، b/356399842)
الإصدار 1.5.0-alpha02
2 أكتوبر 2024
تم طرح androidx.camera:camera-*:1.5.0-alpha02. يتضمّن الإصدار 1.5.0-alpha02 هذه التعديلات.
الميزات الجديدة
- واجهات برمجة تطبيقات جديدة للاستعلام عن ميزات الكاميرا المتوافقة مع الجهاز على سبيل المثال، التحقّق مما إذا كان من الممكن تفعيل HDR و60 لقطة في الثانية في الوقت نفسه. وتتضمّن هذه المكتبة عنصرَين: camera-feature-combination-query وcamera-feature-combination-query-play-services.
هذا إصدار متوافق من واجهة برمجة التطبيقات
CameraManager#getCameraDeviceSetup#isSessionConfigurationSupportedفي Camera2 مع بيانات إضافية توفّرها "خدمات Google Play".
إصلاح الأخطاء
- تم إصلاح مشكلة عدد اللقطات في الثانية المستهدَف البالغ
Preview/VideoCaptureعلى الأجهزة ذات المستوى LEGACY. كان يتم دائمًا استبدال عدد اللقطات في الثانية المستهدَف الذي تم ضبطه من خلال واجهة برمجة التطبيقاتsetTargetFrameRateأوCamera2Interopبالقيمة التي يوفّرهاAeFpsRangeLegacyQuirk. من خلال هذا الإصلاح، ستلتزم مكتبة CameraX بالقيمة المحدّدة من خلال واجهة برمجة التطبيقاتsetTargetFrameRateأوCamera2Interop. (Ie2d32) - تمت إضافة وظائف الفلاش/المصباح/3A لالتقاط الصور باستخدام "
CameraEffect". يجب أن تتضمّن عمليات التقاط الصور باستخدامCameraEffectالآن عمليات المعالجة نفسها قبل الالتقاط وبعده (مثل تشغيل الفلاش وتقارب 3A وما إلى ذلك عند الاقتضاء) مثل التقاط الصور بدون أيCameraEffect. (I5ff30) - تم استبعاد أحجام الإخراج التي تسبّب مشاكل في
ImageAnalysisعلى جهاز Samsung SM-A057G. عندما يستخدم "ImageAnalysis" دقة أكبر من أو تساوي 1920x1440، سيؤدي ذلك إلى حدوث مشكلة في المعاينة السوداء. تم تطبيقExcludedSupportedSizesQuirkعلى جهاز SM-A057G لتجنُّب المشكلة. (I63dfe، b/365877975) - تم إصلاح مشكلة عدد اللقطات المستهدَف في الثانية في
Preview/VideoCaptureعند تفعيل آلية مشاركة البث داخليًا لمشاركة بث معPreviewوVideoCapture. (I4fdac) - تم تفعيل الحل البديل لإصلاح مشكلة البيانات الوصفية غير الصحيحة لصور JPEG على أجهزة Samsung S10e وS10+. بعد تطبيق الإصلاح، يمكن لـ CameraX حفظ صورة JPEG بنجاح، أو يمكن عرض عناصر Bitmap الصحيحة عند استدعاء الدالة
ImageProxy.toBitmap()على هذه الأجهزة في حال حدوث مشكلة البيانات الوصفية غير الصحيحة لصورة JPEG. (Iae493، b/356428987) - تم إيقاف الإضافات للكاميرا الخلفية في هاتف Samsung A52s التي تحمل رقم التعريف 0، لأنّه قد تحدث أعطال داخلية في نظام التشغيل عند التقاط صور بنطاق عالي الديناميكية (HDR)، وقد يتعذّر ضبط إعدادات جلسات الالتقاط في وضعَي "الخلفية الضبابية" أو "تجميل الوجه". (I03ec9، b/364152642)
- تم إصلاح مشكلة عدم بدء الحدث
VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGEعند تسجيل فيديو وعدم توفّر مساحة تخزين كافية. (Ia5b4f، b/356399842) - تم إصلاح المشكلة المتمثّلة في تعذُّر محاولة تسجيل الفيديو الثانية على هاتف Oppo A5 (CPH1931). (I181d6)
الإصدار 1.5.0-alpha01
4 سبتمبر 2024
تم طرح androidx.camera:camera-*:1.5.0-alpha01. يتضمّن الإصدار 1.5.0-alpha01 هذه التعديلات.
الميزات الجديدة
- تم إصدار عنصر جديد، وهو
camera-compose، لمحوّل CameraX Viewfinder Compose Adapter الذي يعرض بث معاينة منSurfaceRequestفي CameraX منcamera-core. (I8666e) - تمت إضافة دالة مركّبة جديدة، وهي
CameraXViewfinder، تعمل كدالة مركّبة اصطلاحية تكيّفSurfaceRequestفي CameraX مع الدالة المركّبةViewfinder. (I4770f)
التغييرات في واجهة برمجة التطبيقات
- توفير واجهة برمجة تطبيقات لضبط إعدادات التركيب لتسجيل الفيديو من كاميرتَين متزامنتَين وتشمل الإعدادات قيمة ألفا للدمج، والإزاحة في إحداثيات x وy، ومقياس عرض وارتفاع نافذة عرض إطار الكاميرا. يتم تحديد الإزاحة والعرض والارتفاع في إحداثيات الجهاز التي تم تطبيعها. (Ia2b8a)
- تم عرض
CameraProvider.getCameraInfoلتكون واجهة برمجة تطبيقات رسمية. (I901cd) - تمت إضافة واجهة برمجة التطبيقات
PendingRecording.withAudioEnabled(boolean initialMuted)للتحكّم في حالة كتم الصوت الأولية. (I635c3، b/354829267)
إصلاح الأخطاء
- تم إصلاح مشكلة التعطُّل عند استدعاء
bindToLifecycleباستخدامLifecycleOwnerتم تدميره. (I6e6d8) - تم إصلاح مشكلة ظهور شاشة سوداء في المعاينة في الكاميرا الأمامية أثناء الربط مع
VideoCaptureعلى جهاز Motorola Edge 20 Fusion. (I1fe88) - تم تحسين إعدادات رصد إيماءات التكبير في "
PreviewView" لتحسين السلاسة. (I04ffc)
الإصدار 1.4 من تطبيق "الكاميرا"
الإصدار 1.4.2
26 مارس 2025
تم طرح androidx.camera:camera-*:1.4.2. يتضمّن الإصدار 1.4.2 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تجمُّد المعاينة عند استخدام
ImageAnalysisمع بث آخر يستخدمTEMPLATE_RECORDعلى Samsung Galaxy M55. (Ic1a6a، b/395822788)
الإصدار 1.4.1
11 ديسمبر 2024
تم طرح androidx.camera:camera-*:1.4.1. يتضمّن الإصدار 1.4.1 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة في أجهزة Pixel التي تعمل بنظام التشغيل Android 15، حيث تعذّر على "الوضع الليلي" في "الإضافات" التقاط صور ثابتة إلى أن تركّز الكاميرا على عنصر قريب. (I228d4)
- تم إصلاح مشكلة تعطُّل
ImageCapture#takePictureعند تفعيل الإضافات وربطVideoCaptureمعًا. (I5c745)
الإصدار 1.4.0
30 أكتوبر 2024
تم طرح androidx.camera:camera-*:1.4.0. يتضمّن الإصدار 1.4.0 هذه التعديلات.
تغييرات مهمة منذ الإصدار 1.3.0
يقدّم الإصدار 1.4.0 من CameraX تحديثات رائعة. ويمكن تلخيصها كالتالي:
الميزة الرئيسية: فيديو 10 بت بنطاق HDR:
- التقِط صورًا وفيديوهات مذهلة بتقنية النطاق العالي الديناميكية (HDR) بسهولة.
- يتيح ترميز HLG وHEVC 10 بت.
- استمتِع بمعاينة فيديو 10 بت بنطاق عالي الديناميكية (HDR) واستعلم عن إمكانات الجهاز.
- تعمل مع صور
UltraHDRوفيديوهات HDR على مجموعة متزايدة من الأجهزة.
ميزات رائعة أخرى:
- إضافات Kotlin: تمت إضافة دالّتَي التعليق
takePictureوawaitInstance. - التأثيرات في الوقت الفعلي: يمكنك تطبيق تأثيرات مثل العلامات المائية وتمييز العناصر.
- واجهة CameraController API: عناصر تحكّم جديدة لضبط إعدادات تسجيل الفيديو
- تثبيت المعاينة: يمكنك الاستعلام عن إمكانات الجهاز وتفعيل ميزة التثبيت.
- تحسينات على VideoCapture: تحكّم أكثر دقة في الجودة والوصول إلى درجات دقة أعلى
- دمج إضافات CameraX: دمج سلس مع ميزات "
VideoCapture" وميزات "ImageCapture" الجديدة - واجهة Shutter Sound API: تتيح لك التحقّق بسهولة من متطلبات صوت الالتقاط حسب المنطقة.
- وميض الشاشة: تم تحسين الصور في الإضاءة المنخفضة للكاميرات الأمامية.
- واجهات برمجة التطبيقات الخاصة بالبيانات الوصفية لإضافات الكاميرا: واجهات برمجة تطبيقات داعمة لضبط قوة الإضافات والحصول على إشعار بوضع الإضافات الحالي في
ExtensionMode#AUTOيمكنك العثور على المزيد من إصلاحات الأخطاء في إشعارات الإصدار التجريبي والإصدار المرشّح.
الإصدار 1.4.0-rc04
16 أكتوبر 2024
تم طرح androidx.camera:camera-*:1.4.0-rc04. يتضمّن الإصدار 1.4.0-rc04 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثّلة في أنّ استدعاء
startFocusMeteringباستخدامPreviewView.getMeteringPointFactoryلا يؤدي إلى الحصول على إحداثيات أداة الاستشعار الصحيحة عند تفعيل تأثير أو عند ربط 4 حالات استخدام (مشاركة البث). (I916c5، b/345993685)
الإصدار 1.4.0-rc03
2 أكتوبر 2024
تم طرح androidx.camera:camera-*:1.4.0-rc03. يتضمّن الإصدار 1.4.0-rc03 هذه التعديلات.
إصلاح الأخطاء
- تمت إضافة وظائف الفلاش/المصباح/3A لالتقاط الصور باستخدام "
CameraEffect". يجب أن تتضمّن عمليات التقاط الصور باستخدامCameraEffectالآن عمليات المعالجة نفسها قبل الالتقاط وبعده (مثل تشغيل الفلاش وتقارب 3A وما إلى ذلك عند الاقتضاء) مثل التقاط الصور بدون أيCameraEffect. (I5ff30) - تم تحسين سلاسة ميزة "التكبير أو التصغير بإصبعين" في
PreviewView(I04ffc) - فصل ميزة "دقة HDR فائقة" عن إمكانية إخراج 10 بت، لأنّ ميزة "دقة HDR فائقة" لم تعُد تتطلّب أن تكون الأجهزة مزوّدة بإمكانية إخراج 10 بت. (I96ff2، I0c3b3)
الإصدار 1.4.0-rc02
18 سبتمبر 2024
تم طرح androidx.camera:camera-*:1.4.0-rc02. يتضمّن الإصدار 1.4.0-rc02 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة التعطُّل عند استدعاء
bindToLifecycleباستخدامLifecycleOwnerتم تدميره. (I6e6d8) - تمت إضافة تأثيرات حركية للظهور في
ScreenFlashViewلـ "ScreenFlash#apply"، ما يؤدي أيضًا إلى إصلاح الأخطاء الناتجة عن اكتمال تغيير السطوع بشكل غير متزامن بعد مرور بعض الوقت. (I37cdb) - تم تحسين سلاسة التكبير/التصغير من خلال إلغاء إعدادات التكبير/التصغير في إطار العمل على الأجهزة المتوافقة.
الإصدار 1.4.0-rc01
7 أغسطس 2024
تم طرح androidx.camera:camera-*:1.4.0-rc01. يتضمّن الإصدار 1.4.0-rc01 هذه التعديلات.
الميزات الجديدة
- تمت إضافة واجهة برمجة التطبيقات التجريبية
CameraInfo.getCameraInfoلتوفير معلومات محدّدة عن الكاميرا بدون الحاجة إلى ربط حالات الاستخدام بالكاميرا. (I550d1)
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة واجهتَي برمجة التطبيقات
PreviewView.getScreenFlashوPreviewView.setScreenFlashOverlayColorللحالات التي لا تتم فيها إضافةScreenFlashViewبشكل صريح. (I43945)
إصلاح الأخطاء
- تم إصلاح مشاكل التعرض للضوء وتدرّج الألوان عند التقاط صورة مع تفعيل الفلاش في الإضاءة المنخفضة مع ربط حالة استخدام VideoCapture. (Ic9814)
- تم إصلاح المشكلة التي كانت تؤدي إلى تعذُّر الحصول على نتيجة عند مقاطعة طلب
takePictureمع تفعيل الإضافات، وقد يتوقف طلبtakePictureالتالي عن العمل. (Iae78f) - تم إصلاح مشكلة تسرُّب الذاكرة التي تحدث عند تفعيل الإضافات. (Iab276)
- تم حلّ مشكلة في إضافات CameraX على أجهزة مثل Pixel 7/8 وسلسلة Samsung Galaxy S24. ظهرت المشكلة بعد ترقية AGP إلى الإصدار 8.5.1 وتفعيل ميزة إزالة البيانات غير الضرورية، وهي ناتجة عن مشكلة في تحويل
Camera2OutputConfigImplفي وضع الإصدار. (I99598، b/354824993)
الإصدار 1.4.0-beta02
12 يونيو 2024
تم طرح androidx.camera:camera-*:1.4.0-beta02. يتضمّن الإصدار 1.4.0-beta02 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- على غرار
VideoCapture، أضِفsetMirrorModeلحالة استخدام "المعاينة". ستتيح هذه الميزة تفعيل "وضع المرآة" وإيقافه في بث "المعاينة" من خلالOutputConfiguration.setMirrorModeمن المستوى 33 لواجهة برمجة التطبيقات والإصدارات الأحدث، أمّا في المستويات الأقدم، فلن يتم تنفيذ أي إجراء. (I821f4)
إصلاح الأخطاء
- تم إصلاح المشكلة التي تمنع التطبيقات من التقاط الصور بنجاح على جهاز Samsung Tab A8 عندما يختار "
ImageCapture" الدقة 1920x1080 ضمن مجموعة "Preview" + "VideoCapture" + "ImageCapture"UseCase. (I5a463، b/336925549) - تم إصلاح مشكلة احتمال فشل مواصلة التسجيل المتواصل بعد تبديل الكاميرا. (Icb0a1)
الإصدار 1.4.0-beta01
14 مايو 2024
تم طرح androidx.camera:camera-*:1.4.0-beta01. يتضمّن الإصدار 1.4.0-beta01 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة
ZoomGestureDetector.ZoomEventلتضمين حالات إيماءة التكبير/التصغير. (I84cdf)
إصلاح الأخطاء
- تم إصلاح خطأ يتعلّق بعدم استخدام ميزتَي "التقاط صورة ثابتة" و"النقر للتركيز" لقيم وضع التثبيت/عدد اللقطات في الثانية للطلب المتكرّر، ما قد يؤدي إلى إعادة إنشاء جلسة التقاط الصور والتسبّب في حدوث مشاكل في وقت الاستجابة أو تجميد المعاينة في بعض الأجهزة. (I7dc0b)
- تم إصلاح خلل يمنع اختيار الدقة العالية عند تفعيل ميزة "
CameraEffect" على بعض الأجهزة. (مثلاً، 4000x3000 على هاتف Samsung A32 5G). (Ie3ed3، b/337336152) - تم إصلاح عطل يحدث عند التقاط صورة باستخدام ميزة "المعاينة"، وتم ربط
ImageCaptureوVideoCapture(UHD)على هاتف Pixel 4XL API29. (I5b288) - دعم الأجهزة الافتراضية: سيحتفظ السياق الذي تم تمريره إلى
ProcessCameraProviderبرقم تعريف الجهاز لضمان عمله في بيئة الأجهزة الافتراضية. (I5ba48)
الإصدار 1.4.0-alpha05
17 أبريل 2024
تم طرح androidx.camera:camera-*:1.4.0-alpha05. يتضمّن الإصدار 1.4.0-alpha05 هذه التعديلات.
الميزات الجديدة
- تم تحويل
ProcessCameraProviderإلى تنفيذ Kotlin. (I46d4f) - تمت إضافة دوال تعليق
ImageCapture.takePictureللسماح باستدعائها بطريقة Kotlin الاصطلاحية. (I920be)
التغييرات في واجهة برمجة التطبيقات
- إضافة واجهات برمجة تطبيقات لتنسيق الإخراج إلى
ImageCapture، وإضافة طريقةgetSupportedOutputFormatsإلىImageCaptureCapabilitiesلطلب البحث عن إمكانات الجهاز قيمة تنسيق الإخراج التلقائية هيOUTPUT_FORMAT_JPEG، والتي تلتقط صورًا بنطاق عادي ديناميكية (SDR) بتنسيق JPEG. عندما يتيح الجهاز دقة HDR الفائقة ويتم ضبط تنسيق الإخراج علىOUTPUT_FORMAT_JPEG_ULTRA_HDR، ستلتقط CameraX صورًا مضغوطة بدقة HDR الفائقة باستخدام تنسيق الصورة JPEG/R. يتوافق هذا التنسيق مع تنسيق SDR JPEG القديم ويتيح عرض المحتوى بتقنية النطاق العالي الديناميكية (HDR). وهذا يعني أنّ الصور تظهر بسلاسة على التطبيقات أو الأجهزة القديمة بتنسيق JPEG عادي، بينما تظهر بتقنية النطاق العالي الديناميكية (HDR) على التطبيقات والأجهزة التي تم تحديثها لتتوافق بشكل كامل مع هذا التنسيق. (I5de50) - إضافة
PhysicalCameraInfoفيCameraInfoلطلب معلومات الكاميرا المادية وإضافة دالة setter/getter لمعرّف الكاميرا المادية فيCameraSelector(Ic5b90) - استبدِل
CameraController#COORDINATE_SYSTEM_VIEW_REFERENCEDبـImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. تظل قيمة الثابت كما هي. هذا لدمج جميع الثوابت في مكان واحد. (I890bb) - تتيح واجهة برمجة التطبيقات الجديدة
RetryPolicyللمطوّرين تخصيص سلوك إعادة المحاولة لتهيئة CameraX. (I36dd2) - تفعيل إنشاء عنصر
ImageCaptureLatencyEstimateللمساعدة في قابلية الاختبار (Iaba99) - أضِف
ImageAnalysis#COORDINATE_SYSTEM_SENSOR. عند استخدام هذه السمة، تعرض السمةMlKitAnalyzerالإحداثيات في نظام إحداثيات أداة استشعار الكاميرا. (I3ec61) - تم عرض واجهة برمجة التطبيقات الخاصة بالبيانات الوصفية للإضافات. تسمح واجهتا
CameraExtensionsInfoوCameraExtensionsControlالجديدتان للتطبيقات بمراقبة إعدادات قوة الإضافة وضبطها. يمكن للتطبيقات الحصول على مثيلCameraExtensionsInfoأوCameraExtensionsControlمن خلال طريقتَيExtensionsManager#getCameraExtensionsInfo()أوExtensionsManager#getCameraExtensionsControl()اللتين تمت إضافتهما حديثًا. (I28e1a) - تمت إضافة
ProcessCameraProvider.awaitInstance، وهو إصدار معلّق منProcessCameraProvider.getInstance(Ib22b9) - أضِف واجهة برمجة تطبيقات
PreviewView#getSensorToViewTransform(). تمثّل المصفوفة عملية التحويل من إحداثيات أداة استشعار الكاميرا إلى إحداثياتPreviewView. يمكن استخدام هذه السمة لتحويل الإحداثيات منUseCaseإلى آخر. على سبيل المثال، تحويل إحداثيات العناصر التي تم رصدها فيImageAnalysisإلى تراكبPreviewView. (I947ab) - جعل واجهة برمجة التطبيقات
camera-viewfinder-coreأكثر عمومية بحيث يمكن استخدامها من قِبلcamera-viewfinderوcamera-viewfinder-compose. (I1e295) - أضِف دالة
getSurfaceإلىViewfinderSurfaceRequest. (I781a0) - استخدِم
camera-viewfinder-coreفيcamera-viewfinderوأوقِف نهائيًاViewfinderSurfaceRequestوCameraViewfinder. (I6198c) - تمت إضافة
ZoomGestureDetectorالذي يفسّر إيماءات تغيير الحجم التي تم ضبطها خصيصًا لنشاط التصغير أو التكبير بإصبعين. (Ifafbf)
إصلاح الأخطاء
- تم إصلاح مشكلة اختيار دقة
ImageAnalysisالمرتبطة بإعداد الدقة المستهدَفة التلقائية للمحلّل: تم الاحتفاظ بالدقة المستهدَفة بشكل غير صحيح على أنّها 640x480 حتى إذا ضبطت التطبيقات إعدادًا مختلفًا للدقة التلقائية للمحلّل. إذا واجهت التطبيقات هذه المشكلة (1.3.0 ~ 1.3.2) وتعذّرت ترقيتها لاستخدام الإصدارات الأحدث التي تحتوي على الحلّ، يمكن حلّ هذه المشكلة من خلال ضبطResolutionSelectorمباشرةً باستخدام الدقة المفضّلة وAspectRatioStrategyمطابقة لـImageAnalysisUseCase. (I81f72، b/330091012) - تم إصلاح مشكلة تعذُّر تنفيذ طلب
takePictureفي قائمة الانتظار في حال تعذُّر تنفيذ الطلب الحالي. (Ie0801) - تطبيق عملية التحقّق من بيانات JPEG غير الصالحة على أجهزة Vivo X60 وX60 Pro يمكن أن يؤدي ذلك إلى حلّ مشكلة الصور الكبيرة بشكل غير طبيعي على هذه الأجهزة. (I82247، b/288828159)
- تم إصلاح مشكلة البيانات الوصفية غير الصحيحة لصور JPEG على أجهزة Samsung A24. من خلال هذا الإصلاح، يمكن لـ CameraX حفظ صورة JPEG بنجاح، أو يمكن عرض عناصر Bitmap الصحيحة عند استدعاء دالة
ImageProxy.toBitmap()على أجهزة Samsung A24. (I8d6eb، b/309005680) - تطبيق عملية التحقّق من بيانات JPEG غير الصالحة على جميع أجهزة Samsung إذا كانت الصورة الملتقَطة أكبر من 10 ميغابايت يمكن أن يؤدي ذلك إلى حلّ مشكلة الصور الكبيرة بشكل غير طبيعي على أجهزة Samsung. (Ic2a65، b/288828159)
- تمت إزالة ميزة "
ImageAnalysis" من إضافات CameraX لأنّ عمليات تنفيذ الإضافات في العديد من المصنّعين الأصليين للأجهزة لا تعمل بشكل جيد مع ميزة "ImageAnalysis" وقد تؤدي إلى حدوث مشاكل غير متّسقة. (I2d926)
الإصدار 1.4.0-alpha04
24 يناير 2024
تم طرح androidx.camera:camera-*:1.4.0-alpha04. يتضمّن الإصدار 1.4.0-alpha04 هذه التعديلات.
الميزات الجديدة
- عنصر جديد: camera-effects: مكتبة لتطبيق تأثيرات في الوقت الفعلي على مخرجات CameraX، بما في ذلك
Previewو/أوVideoCaptureو/أوImageCapture. يحتوي هذا العنصر على عمليات تنفيذ OpenGL لواجهة برمجة التطبيقاتCameraEffectالتي تعالج مخرجات الكاميرا بكفاءة. OverlayEffect: لرسم تراكبات باستخدام واجهة برمجة التطبيقات Canvas API في Android يتيح ذلك للتطبيق تطبيق علامة مائية أو تمييز العناصر التي تم رصدها في مخرجات الكاميرا.- واجهات برمجة تطبيقات
DynamicRangeلحالة استخدام المعاينة: يمكن الآن ضبط النطاق الديناميكي في حالة استخدام المعاينة، بشكل مستقل عن حالة استخدام الفيديو. يتيح ذلك استخدام نطاقات HDR الديناميكية، مثل HLG10، في "المعاينة" فقط. تتوفّر أيضًا واجهات برمجة تطبيقات جديدة فيCameraInfoللاستعلام عن النطاقات الديناميكية التي تتيحها كل كاميرا.
التغييرات في واجهة برمجة التطبيقات
- تمت إعادة تسمية
ScreenFlashUiCompleterإلىScreenFlashListenerونقلScreenFlashUiCompleter#getExpirationTimeMillisإلى المَعلمةexpirationTimeMillisفيScreenFlash#apply. (I13944) - تمت إضافة واجهات برمجة تطبيقات جديدة للسماح بضبط النطاق الديناميكي في حالة استخدام "المعاينة"، ولطلب النطاقات الديناميكية التي تتيحها كل كاميرا. يتيح ذلك استخدام النطاقات الديناميكية العالية (HDR)، مثل HLG10، مع حالة استخدام "المعاينة" فقط، ولم يعُد من الضروري ربط
VideoCaptureفي الوقت نفسه. (If25e3) - تمت إعادة تسمية "
getMirroring()" إلى "isMirroring()" (I47063) - تمت إضافة ميزة تقدير وقت استجابة التقاط الصور الثابتة في الوقت الفعلي في CameraX. تتيح إضافات الكاميرا للتطبيقات استخدام واجهة برمجة تطبيقات تقدّم تقديرًا للمدة التي سيستغرقها التقاط الصورة. يأخذ التقدير في الاعتبار ظروف البيئة الحالية وحالة الكاميرا، ويتضمّن الوقت المستغرَق في معالجة طلبات التقاط الصور المتعدّدة مع أي وقت إضافي لترميز المخازن المؤقتة التي تمت معالجتها إذا لزم الأمر. (I05c3a)
- تمت إعادة تسمية
ScreenFlashUiControlإلىScreenFlash، وScreenFlashUiControl#applyScreenFlashUiإلىScreenFlash#apply، وScreenFlashUiControl#clearScreenFlashUiإلىScreenFlash#clear، وتمت إضافة طريقةgetScreenFlashUiApplyTimeoutSecondsبدلاً من عرضSCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDSمباشرةً. (Iccdd0)
إصلاح الأخطاء
- تم إصلاح مشكلة تسرُّب الذاكرة التي تؤدي إلى عدم إصدار الأنشطة أو الأجزاء عند تفعيل الإضافات (I14215)
- تم إصلاح المشكلة المتمثّلة في عرض
getZoomRatioلقيمة منخفضة بشكل غير صحيح عند تطبيق نسبة تكبير متزايدة. (I4aa0d، b/317543616) - يتم استدعاء الحدث
ImageCapture#ScreenFlash#clearفورًا عند إلغاء ربطImageCaptureأو إغلاق الكاميرا، كما يتم إصلاح بعض الأخطاء التي لا يتم استدعاؤها مطلقًا بسبب عدم اكتمال عمليات الالتقاط في هذه السيناريوهات بشكل صحيح. (If99f9) - تم إصلاح العطل الذي يحدث عند إيقاف مراحل النشاط قبل اكتمال طلب
takePicture(Idf017، b/306202751) - تم إصلاح المشكلة المتمثّلة في تحوّل معاينة الكاميرا إلى اللون الأسود عند تفعيل "الإضافات" على بعض الأجهزة (I1ffd0)
- تم إصلاح مشكلة المدة غير الصحيحة لتسجيل الفيديو على الأجهزة التي تستخدم شريحة Snapdragon 778G SoC (If6aa7، b/316057919)
الإصدار 1.4.0-alpha03
13 ديسمبر 2023
تم طرح androidx.camera:camera-*:1.4.0-alpha03. يتضمّن الإصدار 1.4.0-alpha03 هذه التعديلات.
الميزات الجديدة
- تمت إضافة
CameraInfo.mustPlayShutterSoundلتوفير معلومات حول ما إذا كان يجب تشغيل صوت الغالق وفقًا للقيود الإقليمية. (Ifda84) - تمت إضافة
OnImageCapturedCallback.onCaptureStartedوOnImageSavedCallback.onCaptureStartedلإرسال إشعار عند بدء الكاميرا في تعريض إطار للضوء. ننصحك بتشغيل صوت زرّ الالتقاط أو الرسوم المتحركة لزرّ الالتقاط في هذه المرحلة. (Ic49b3) - تمت إضافة ميزة "وميض الشاشة" في CameraX لالتقاط الصور بالكاميرا الأمامية. ستتولى CameraX معالجة واجهة برمجة التطبيقات من جهة إطار العمل ومزامنة التوقيت مع تغييرات واجهة المستخدم في التطبيق حسب الحاجة (على سبيل المثال، مشغّل الالتقاط المُسبَق للتعرّض التلقائي بعد تغيير لون/سطوع شاشة التطبيق). ستحتاج التطبيقات فقط إلى إضافة عمليات تنفيذ واجهة المستخدم في واجهة
ScreenFlashUiControlالمقدَّمة إلى CameraX. (I8ae84) - تمت إضافة ميزة "وميض الشاشة" من جهة واجهة المستخدم في CameraX. ستتمكّن التطبيقات من الحصول على تنفيذ أساسي لـ "
ImageCapture.ScreenFlashUiControl" من "PreviewView" أو "ScreenFlashView" المُضاف حديثًا، ما سيؤدي إلى إضافة عرض تراكُب أحادي اللون وزيادة سطوع الشاشة إلى أقصى حد أثناء التقاط الصور باستخدام وميض الشاشة. (I1810e)
التغييرات في واجهة برمجة التطبيقات
- إتاحة ميزات الإضافات الجديدة(مرحلة ما بعد العرض ومستوى تقدّم عملية الالتقاط): تمت إضافة واجهات برمجة تطبيقات
ImageCapture#getImageCaptureCapabilities()للتطبيقات من أجل الاستعلام عن إمكانات مرحلة ما بعد العرض ومستوى تقدّم عملية الالتقاط. يمكن للتطبيقات تفعيل ميزة "العرض اللاحق" باستخدامImageCapture.Builder#setPostviewEnabled(). يمكن اختيار حجم العرض بعد النقر باستخدامImageCapture.Builder#setPostviewResolutionSelector(). عند استدعاءtakePicture()، يمكن تنفيذonPostviewBitmapAvailableوonCaptureProcessProgressedفيOnImageSavedCallbackأوOnImageCapturedCallbackللحصول على إشعار تقدّم المعالجة والعرض اللاحق إذا كان ذلك متاحًا. (I5cd88) - واجهات برمجة تطبيقات لحساب تحويل الإحداثيات من أداة الاستشعار إلى المخزن المؤقت الحالي، مع علامة تشير إلى ما إذا كان السطح يحتوي على معلومات اتجاه الكاميرا (I59096)
- إتاحة واجهة برمجة التطبيقات لطلب البحث عن
PreviewCapabitlityفي الإصدار الأوليUseCase(Ie5b6c) - تمت إضافة واجهات برمجة تطبيقات لإتاحة المزيد من مستويات الجودة في "
VideoCapture". يمكن استخدامRecorder.Builder#setVideoCapabilitiesSource(int)معVIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIESلإنشاء مثيلRecorderيتيح استخدام سمات أكثر منVIDEO_CAPABILITIES_SOURCE_CAMCORDER_PROFILE. من حالات الاستخدام الشائعة عندما يسعى التطبيق إلى تسجيل فيديو بدقة فائقة كلما أمكن ذلك، ولكن لا يتضمّنCamcorderProfileفي الجهاز إعدادات الدقة الفائقة، على الرغم من أنّ برنامج الترميز قادر على تسجيل فيديو بدقة فائقة. (Iedbe2، b/263961771) - إضافة دالة getter/setter لتنسيق الناتج
ImageAnalysisإلىCameraController(I9a96c، b/308240643)
إصلاح الأخطاء
- من الكاميرا
1.3.1: تم تحسين أداءProcessCameraProvider#bindToLifecycle(). يتمثّل التغيير الرئيسي في تحسين عملية تحديد مجموعات المقاسات الأنسب لـ "UseCases". تختلف النتائج المثلى استنادًا إلى مجموعاتUseCaseالمحدّدة وعدد أحجام الإخراج المتوافقة مع أجهزة الاختبار. (I454f2) - السماح باستخدام "
VideoCapture" عندما تكون الإضافات مفعَّلة (I91f32) - تم إصلاح مشكلة التقاط صور JPEG كبيرة الحجم على أجهزة Samsung من السلسلتَين A71 وM51. تحتوي صور JPEG التي تم التقاطها على بيانات حشو زائدة من الأصفار في قسم بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن تكون الصور الملتقَطة بحجم ملف كبير جدًا. ستتم إزالة بيانات المساحة المتروكة الزائدة التي تحتوي على أصفار لكي تصبح أحجام ملفات الصور الملتقَطة عادية. (I01afc، b/288828159)
- إيقاف ميزة
ImageAnalysisعلى أجهزة Pixel لتجنُّب الخطأ الذي يعرض عن طريق الخطأ الأحجام غير الفارغة المتوافقة معImageAnalysis(I7ec31) - تم إصلاح مشكلة في الأداء حيث زاد تحميل وحدة المعالجة المركزية واستهلاك الطاقة عند تفعيل الإضافات. (Ibdccb)
- تمت إضافة Snapdragon 480 إلى
CameraUseInconsistentTimebaseQuirk. يؤدي ذلك إلى حلّ مشكلة في Android 12 على الأجهزة التي تستخدم شريحة التعريف هذه، حيث يتم تعويض الصوت في التسجيلات بمقدار الوقت الذي يكون فيه الجهاز في حالة تعليق. (I58010)
الإصدار 1.4.0-alpha02
18 أكتوبر 2023
تم طرح androidx.camera:camera-*:1.4.0-alpha02. يتضمّن الإصدار 1.4.0-alpha02 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- أعِد تسمية واجهة برمجة التطبيقات إلى
setCameraOpenRetryMaxTimeoutInMillisWhileResumingوأعِد تسمية الوسيطة. (I72370) - إضافة واجهات برمجة تطبيقات للاستعلام عن إمكانات الجهاز وتفعيل ميزة تثبيت الفيديو/المعاينة (I87544)
- توفير واجهة برمجة تطبيقات لتخصيص الحد الأقصى لمهلة إعادة محاولة فتح الكاميرا (I0c642)
- تم إصدار
ProcessCameraProvider.shutdownAsyncكواجهة برمجة تطبيقات عامة للاختبار من أجل السماح باستخدام موفّر الكاميرا في العملية في الحزم الاختبارية التي قد تحتاج إلى إعداد CameraX بطرق مختلفة بين الاختبارات. (I9eca7) - إضافة واجهات برمجة تطبيقات لضبط النطاق الديناميكي لالتقاط الفيديو وعدد اللقطات في الثانية ووضع المرآة (Ifb8f7)
- إيقاف
OutputSizeنهائيًا واستبداله بـResolutionSelectorتوفّر واجهة برمجة التطبيقاتResolutionSelectorطريقة أكثر شمولاً لاختيار درجات الدقة، وهي متوافقة مع واجهة برمجة التطبيقات camera-core. (I93abd، b/286801438)
إصلاح الأخطاء
- تم إصلاح مشكلة ظهور معاينة سوداء على هاتف Samsung Galaxy S23 Ultra 5G عند تفعيل ميزة "الخلفية الضبابية" أو "تجميل الوجه" في الإضافات مع استخدام ميزة "
ImageAnalysis" في الكاميرا الخلفية. (I2e8b1) - تم إصلاح مشاكل المعاينة الثابتة و
VideoCaptureالممتدة على Moto E5 Play. (73dce2)
الإصدار 1.4.0-alpha01
20 سبتمبر 2023
تم طرح androidx.camera:camera-*:1.4.0-alpha01. يتضمّن الإصدار 1.4.0-alpha01 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- إضافة واجهة برمجة تطبيقات جديدة للوصول إلى معلومات سعة الصوت أثناء التسجيل (Id4925)
إصلاح الأخطاء
- تحسين ثبات الإضافات من خلال التأكّد من بدء أحداث الإعداد وإلغاء الإعداد بالترتيب الصحيح (Ib3b8e)
- تم إصلاح مشكلة تعذُّر ضبط جلسة الالتقاط بسبب تجاوز مجموعة الأسطح المتوافقة نتيجة إضافة سطح متكرّر إضافي داخليًا. (Id718c)
- تم إصلاح مشكلة التقاط صور JPEG كبيرة الحجم على جهاز Vivo S16. تحتوي صور JPEG التي تم التقاطها على بيانات حشو زائدة من الأصفار في قسم بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن تكون الصور الملتقَطة ذات حجم ملف كبير. ستتم إزالة بيانات المساحة المتروكة الزائدة التي تحتوي على أصفار لكي تصبح أحجام ملفات الصور الملتقَطة عادية. (I79505، b/299069235)
- تم إصلاح المشكلة المتمثّلة في تعذُّر ربط
ImageAnalysisمعImageCaptureو"المعاينة" عند تفعيل بعض أوضاع الإضافة على بعض الأجهزة. سيؤدي هذا الإصلاح إلى عرض القيمة الصحيحة عندما تطلب التطبيقات معلومات عن مدى توفّرImageAnalysisمن خلالExtensionsManager#isImageAnalysisSupported(). (I7d538) - يُرجى تعديل JavaDoc لمطابقة السلوك. بدلاً من الإكمال فورًا، تنتظر
#setZoomRatioو#setLinearZoomو#enableTorchحتى تصبح الكاميرا جاهزة. تمت أيضًا إضافة معلومات حول كيفية الحصول على الحد الأقصى لمجال الرؤية باستخدام واجهة برمجة التطبيقات#takePicture. (I23588)
الإصدار 1.3
الإصدار 1.3.4
12 يونيو 2024
تم طرح androidx.camera:camera-*:1.3.4. يتضمّن الإصدار 1.3.4 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثّلة في عرض
getZoomRatioلقيمة منخفضة بشكل غير صحيح عند تطبيق نسبة تكبير متزايدة. (I4aa0d، b/317543616) - تم إصلاح مشكلة عدم استخدام ميزة "التقاط صورة ثابتة" أو "النقر للتركيز" لقيم وضع التثبيت أو عدد اللقطات في الثانية للطلب المتكرر، ما قد يؤدي إلى إعادة إنشاء جلسة الالتقاط والتسبب في مشاكل في وقت الاستجابة أو تجميد المعاينة في بعض الأجهزة. (I7dc0b)
- تم إصلاح المشكلة المتمثّلة في ضبط عدد اللقطات في الثانية على قيمة أقل عند استدعاء
setTargetFrameRateباستخدامFRAME_RATE_RANGE_UNSPECIFIED. (I78c61)
الإصدار 1.3.3
17 أبريل 2024
تم طرح androidx.camera:camera-*:1.3.3. يتضمّن الإصدار 1.3.3 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة اختيار دقة
ImageAnalysisالمرتبطة بإعداد الدقة المستهدَفة التلقائية للمحلّل: تم الاحتفاظ بالدقة المستهدَفة بشكل غير صحيح على أنّها 640x480 حتى إذا ضبطت التطبيقات إعدادًا مختلفًا للدقة التلقائية للمحلّل. إذا واجهت التطبيقات هذه المشكلة (الإصدارات من 1.3.0 إلى 1.3.2) وتعذّرت ترقيتها لاستخدام الإصدارات الأحدث التي تحتوي على الحلّ، يمكن حلّ هذه المشكلة من خلال ضبطResolutionSelectorمباشرةً باستخدام درجة الدقة المفضّلة وAspectRatioStrategyمطابقة لحالة الاستخدامImageAnalysis. (I81f72، b/330091012)
الإصدار 1.3.2
6 آذار (مارس) 2024
تم طرح androidx.camera:camera-*:1.3.2. يتضمّن الإصدار 1.3.2 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة في البيانات الوصفية لملفات JPEG على أجهزة Samsung A24. تحفظ مكتبة CameraX الآن الصور بدقة، وتُرجع الدالة
ImageProxy.toBitmap()كائنات Bitmap صحيحة. (I8d6eb، b/309005680) - تمت إزالة خيار الدقة 9280x6944 على أجهزة Redmi Note 9 Pro بسبب مشاكل. (Ia23da)
الإصدار 1.3.1
13 ديسمبر 2023
تم طرح androidx.camera:camera-*:1.3.1. يتضمّن الإصدار 1.3.1 هذه التعديلات.
إصلاح الأخطاء
تم تحسين أداء "ProcessCameraProvider#bindToLifecycle()". يتمثّل التغيير الرئيسي في تحسين عملية تحديد مجموعات المقاسات الأنسب لـ "UseCases". تختلف النتائج المثلى استنادًا إلى مجموعات UseCase المحدّدة وعدد أحجام الإخراج المتوافقة مع أجهزة الاختبار. (I454f2)
في ما يلي بعض النتائج المرجعية لسيناريوهات مختلفة:
UseCases:Preview+ImageCapture+ImageAnalysis+VideoCapture- Google Pixel 7: من 430 ملي ثانية إلى 60 ملي ثانية تقريبًا
- Samsung Galaxy S23 Ultra: من 540 ملي ثانية إلى 45 ملي ثانية تقريبًا
- Samsung A53 5G: من 115 ملي ثانية إلى 70 ملي ثانية تقريبًا
ثلاثة
UseCases:Preview+ImageCapture+ImageAnalysis- Google Pixel 7: من 9 إلى 7 ملّي ثانية تقريبًا
- Samsung Galaxy S23 Ultra: من 6 إلى 5 ملي ثانية تقريبًا
- Samsung A53 5G: من 32 ملي ثانية إلى 12 ملي ثانية تقريبًا
تمت إضافة Snapdragon 480 إلى
CameraUseInconsistentTimebaseQuirk. يؤدي ذلك إلى حلّ مشكلة في Android 12 على الأجهزة التي تستخدم شريحة التعريف هذه، حيث يتم تعويض الصوت في التسجيلات بمقدار الوقت الذي يكون فيه الجهاز في حالة تعليق. (I58010)
الإصدار 1.3.0
18 أكتوبر 2023
تم طرح androidx.camera:camera-*:1.3.0. يتضمّن الإصدار 1.3.0 هذه التعديلات.
تغييرات مهمة منذ الإصدار 1.2.0
- ميزات الفيديو، بما في ذلك فيديو 10 بت بنطاق عالي الديناميكية والاقتصاص والمرآة/غير المرآة وكتم الصوت/إعادة الصوت وضبط معدّل عرض الإطارات والمزيد
- الكاميرا المزدوجة المتزامنة
- مكتبة المؤثرات
- أداة اختيار درجة الدقة
- اختيار الكاميرا ذات الزاوية الفائقة الاتساع والكاميرا المقرِّبة
- التبديل بين الكاميرات أثناء تسجيل الفيديو (ميزة تجريبية)
الإصدار 1.3.0-rc02
20 سبتمبر 2023
تم طرح androidx.camera:camera-*:1.3.0-rc02. يتضمّن الإصدار 1.3.0-rc02 هذه التعديلات.
إصلاح الأخطاء
- تحسين ثبات الإضافات من خلال التأكّد من بدء أحداث الإعداد وإلغاء الإعداد بالترتيب الصحيح تم حلّ بعض مشاكل المعاينة السوداء عند تبديل أوضاع الإضافات أو تبديل الكاميرات. (Iddaac)
- تم إصلاح المشكلة المتمثّلة في تعذُّر ربط
ImageAnalysisمعImageCaptureو"المعاينة" عند تفعيل بعض أوضاع الإضافة على بعض الأجهزة. سيؤدي الإصلاح إلى عرض القيمة الصحيحة عندما تطلب التطبيقات توفّرImageAnalysisعبرExtensionsManager#isImageAnalysisSupported(). (I7d538) - تم إصلاح مشكلة عدم مزامنة الصوت والفيديو المسجَّلين عند تفعيل وضع المرآة على جهاز Xiaomi Poco X3 NFC. (I20b4c)
الإصدار 1.3.0-rc01
23 أغسطس 2023
تم طرح androidx.camera:camera-*:1.3.0-rc01. يتضمّن الإصدار 1.3.0-rc01 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة
PendingRecording.asPersistentRecordingللسماح بمواصلة التسجيل أثناء إعادة ربط جهازVideoCaptureالمتصل به "المسجّلة الذكية". (I517c6)
إصلاح الأخطاء
- تم إصلاح عطل يحدث عند مشاركة بث مع كل من
VideoCaptureو"المعاينة". تم أيضًا إصلاح مشكلة الشاشة السوداء على الأجهزة القديمة عند تفعيل ميزة مشاركة البث. - تم إصلاح مشكلة التقاط صور JPEG كبيرة الحجم على أجهزة Samsung S7 (SM-G930T وSM-G930V). تحتوي صور JPEG التي تم التقاطها على بيانات حشو زائدة من الأصفار في قسم بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن تكون الصور الملتقَطة ذات حجم ملف كبير. ستتم إزالة بيانات المساحة المتروكة الزائدة التي تحتوي على أصفار لكي تصبح أحجام ملفات الصور الملتقَطة عادية. (I407b0، b/288828159)
- تم إصلاح مشكلة التقاط صور JPEG كبيرة الحجم على أجهزة Samsung S22 (SM-S901B وSM-S901B/DS) وS22+ (SM-S906B). تحتوي صور JPEG التي تم التقاطها على بيانات حشو زائدة من الأصفار في قسم بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن يكون حجم ملف الصور الملتقَطة كبيرًا، أي حوالي 13 ميغابايت على جهاز S22 SM-S901B/DS. ستتم إزالة بيانات المساحة المتروكة الزائدة التي تحتوي على أصفار لكي تصبح أحجام ملفات الصور الملتقَطة عادية. (I73be9، b/288828159)
- تم إصلاح مشكلة التقاط صور JPEG كبيرة الحجم على أجهزة Samsung من السلسلة A5 وA52 وA70 وA72. تحتوي صور JPEG التي تم التقاطها على بيانات حشو زائدة من الأصفار في قسم بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن يكون حجم الصور الملتقَطة كبيرًا جدًا (مثلاً حوالي 32 ميغابايت أو حتى 96 ميغابايت). ستتم إزالة بيانات الحشو الزائدة التي تحتوي على أصفار لكي تصبح أحجام ملفات الصور الملتقَطة عادية. (I97c4d، b/288828159)
- تم إصلاح العطل الداخلي في نظام التشغيل عند التقاط صور مع تفعيل الإضافات (I698f5)
الإصدار 1.3.0-beta02
26 تموز (يوليو) 2023
تم طرح androidx.camera:camera-*:1.3.0-beta02. يتضمّن الإصدار 1.3.0-beta02 هذه التعديلات.
إصلاح الأخطاء
- استخدام المصباح اليدوي كفلاش في طرازات Pixel 4 و5 لتحسين جودة التقاط الصور في الإضاءة المنخفضة (I56ff5، b/280221967)
- تم إصلاح مشكلة التقاط صور JPEG كبيرة الحجم على أجهزة Samsung من السلسلة A5 (2017). تحتوي صور JPEG التي تم التقاطها على بيانات حشو زائدة من الأصفار في قسم بيانات JFIF المضغوطة. ويؤدي ذلك إلى أن يكون حجم ملف الصور الملتقَطة حوالي 32 ميغابايت. ستتم إزالة بيانات المساحة المتروكة الزائدة التي تحتوي على أصفار لجعل الصور الملتقَطة ذات أحجام ملفات صور عادية. (I29837، b/288828159)
- تم إصلاح مشكلة عدم بدء إعادة المحاولة بشكل صحيح في حال تعذُّر الالتقاط في الأجهزة التي بها مشاكل والمذكورة في
CaptureFailedRetryQuirk. (I7b589)
الإصدار 1.3.0-beta01
21 حزيران (يونيو) 2023
تم طرح androidx.camera:camera-*:1.3.0-beta01. يتضمّن الإصدار 1.3.0-beta01 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إعادة تسمية الدالة
ResolutionSelector.Builder#setHighResolutionEnabledFlag(int)إلىsetAllowedResolutionModeوإعادة تسمية الثوابتResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONإلىPREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION/PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE. (If84e8) - تمت إزالة واجهات برمجة التطبيقات المتوقفة نهائيًا
ImageAnalysis.setTargetRotationDegrees(int)وImageCapture.setTargetRotationDegrees(int)وVideoCapture.setTargetRotationDegrees(int). (Id8e77) - تمثّل الفئة
DynamicRangeالنطاق الديناميكي للصور. يمكن استخدام هذا الخيار لتحديد تنسيقات النطاق العالي الديناميكية كناتج منVideoCaptureإلىVideoCapture.Builder#setDynamicRange(). (Ib0377) - تمت إضافة واجهة برمجة تطبيقات
isImageAnalysisSupportedإلىExtensionsManagerيمكن للتطبيقات من خلالها تحديد ما إذا كان يمكن ربط حالة استخدامImageAnalysisمع "المعاينة" وImageCaptureعند تفعيل "الإضافات". (I1bc63) - يمكن استخدام فئة
VideoCapabilitiesالجديدة التي تم الحصول عليها منRecorderللاستعلام عن النطاقات الديناميكية ودرجات الجودة المتوافقة لتسجيل الفيديو على الجهاز. سيتم إيقاف الدالتينgetSupportedQualities()وisQualitySupported()فيQualitySelectorنهائيًا. يُرجى استخدام الطريقتَينgetSupportedQualities()وisQualitySupported()فيVideoCapabilitiesبدلاً من ذلك. (I04014) - تمت إعادة تسمية
CameraController#setVideoCaptureTargetQuality()إلىsetVideoCaptureQualitySelector، وهي تأخذ الوسيطةQualitySelectorالتي توفّر مرونة أكبر في إعداد جودة الفيديو. يتم تغييرCameraController#getVideoCaptureTargetQuality()إلىgetVideoCaptureQualitySelectorوفقًا لذلك. (I520ed) - تمت إزالة التعليق التوضيحي التجريبي لميزات الفيديو. أصبحت ميزات الفيديو مستقرة الآن. (I1a113)
إصلاح الأخطاء
- استخدِم الكشاف كفلاش في طُرز Samsung SM-A320 لتحسين السرعة وجودة الصورة الملتقَطة في الإضاءة المنخفضة. (I6a022، b/286190938)
- إضافة دعم لتنسيق
ImageFormat.JPEGفيImageProxy.toBitmap()إذا تعذّر فك ترميز مصفوفة بايت JPEG، سيتم عرضUnsupportedOperationException. (I81958، b/282057603)
الإصدار 1.3.0-alpha07
24 مايو 2023
تم طرح androidx.camera:camera-*:1.3.0-alpha07. يتضمّن الإصدار 1.3.0-alpha07 هذه التعديلات.
الميزات الجديدة
- تتيح واجهة برمجة التطبيقات
VideoCapture.Builder# setTargetFrameRate(Range)الجديدة التقاط تسجيلات الفيديو بمعدّلات عدد اللقطات في الثانية الأخرى غير المعدّل التلقائي للجهاز. يمكن الاستعلام عن عدد اللقطات في الثانية المتاحة للتسجيلات من خلال واجهة برمجة التطبيقاتCameraInfo#getSupportedFrameRates()الجديدة.
التغييرات في واجهة برمجة التطبيقات
- تمت إعادة تسمية الثوابت
ResolutionSelector#HIGH_RESOLUTION_FLAG_OFF/ONإلىALLOWED_RESOLUTIONS_NORMAL/SLOWوإعادة تسمية اسم دالة أداة الإنشاءsetHighResolutionEnabledFlagإلىsetAllowedResolutionMode. (Iae817) - تعرض الدالة
CameraInfo#getSupportedFrameRateRanges()الآنSetبدلاً منListلتمثيل النطاقات غير المرتبة بشكل أفضل. (I02f43) - يجب إضافة مستمع للأخطاء إلى
CameraEffectلمعالجة الأخطاء غير القابلة للإصلاح (Ice471) - إضافة طريقة وضع تصميم عامة في
ResolutionInfoلتحسين إمكانية الاختبار (If6d1c) - تم توفير واجهة برمجة التطبيقات
UseCase.snapToSurfaceRotation(int)لاستبدال استخدامsetTargetRotationDegreesوإيقاف واجهات برمجة التطبيقاتImageAnalysis.setTargetRotationDegrees(int)وImageCapture.setTargetRotationDegrees(int)وVideoCapture.setTargetRotationDegrees(int)نهائيًا. (Ia9010) - تمت إضافة واجهتَي برمجة التطبيقات الجديدتَين
Preview#getTargetFrameRateوPreview.Builder#setTargetFrameRateلضبط عدد اللقطات المستهدَف في الثانية واسترداده لحالة استخدام "المعاينة" (If4f22) - ستكتمل الآن دالة
VideoRecordEvent.Finalizeبرمز الخطأERROR_RECORDING_GARBAGE_COLLECTEDعند إيقاف عنصرRecordingبسبب تجميع المهملات. (Iba974)
إصلاح الأخطاء
- تم إصلاح
NullPointerExceptionعندما تكون أحجام المخرجات المخزّنة مؤقتًا فيStreamConfigurationMapCompatفارغة. (Idf124، b/282025204) - تم حلّ المشكلة المتمثّلة في أنّ
Preview.setSurfaceProvider(null)لا يوقف المعاينة مؤقتًا في "الإضافات" (Ia903e) - تم إصلاح مشكلة ظهور الخطأ
ConcurrentModificationExceptionأثناء فتح الكاميرا عندما يكونVideoCaptureمرتبطًا. (Ic8ac4)
الإصدار 1.3.0-alpha06
19 أبريل 2023
تم طرح androidx.camera:camera-*:1.3.0-alpha06. يتضمّن الإصدار 1.3.0-alpha06 هذه التعديلات.
الميزات الجديدة
- "الكاميرا المتزامنة" هي ميزة جديدة تم تقديمها في Android 11، وتتيح البث المتزامن من أجهزة الكاميرا، على سبيل المثال، تتيح للجهاز تشغيل الكاميرتَين الأمامية والخلفية في الوقت نفسه. لا تتيح مكتبة CameraX حاليًا سوى استخدام كاميرتَين متزامنتَين، ما يسمح بتشغيل كاميرتَين في الوقت نفسه، مع ربط حالتَي استخدام {@link UseCase} كحدّ أقصى لكلّ منهما. الحد الأقصى للدقة هو 720p أو 1440p، ويمكنك الاطّلاع على مزيد من التفاصيل في الرابط التالي: CameraManager#getConcurrentCameraIds()
- نقدّم لك واجهة برمجة التطبيقات الجديدة
ResolutionSelectorالتي تغطي الميزات التالية:- يمكن للتطبيقات تحديد استراتيجيات نسبة العرض إلى الارتفاع والدقة لاختيار أفضل دقة تناسب احتياجاتها.
- يتم التعبير عن جميع مَعلمات الحجم ونسبة العرض إلى الارتفاع في إحداثيات أداة استشعار الكاميرا.
- يمكن للتطبيقات تنفيذ فلتر دقة مخصّص لترتيب الأحجام المتوافقة بالترتيب المطلوب.
- يمكن للتطبيقات أيضًا تفعيل ميزة الالتقاط بدقة عالية للحصول على صور بدقة أعلى. ومع ذلك، يُرجى العِلم أنّ استخدام دقة عالية قد يؤدي إلى إبطاء أوقات الالتقاط.
- تمت إضافة واجهات برمجة تطبيقات النسخ المتطابق
VideoCapture. لا يتم تلقائيًا قلب الفيديوهات التي يتم تسجيلها باستخدام "VideoCapture". ومع ذلك، يتم عرض معاينة الكاميرا بشكل معكوس على الكاميرا الأمامية تلقائيًا.VideoCaptureتتيح واجهات برمجة التطبيقات الخاصة بالانعكاس محاذاة معاينة الكاميرا عند استخدام الكاميرا الأمامية. هناك ثلاثةMirrorModeوOFFوONوON_FRONT_ONLY. للمحاذاة مع معاينة الكاميرا، ننصح باستخدامON_FRONT_ONLY، ما يعني أنّ ميزة "المرآة" غير مفعَّلة للكاميرا الخلفية ولكنّها مفعَّلة للكاميرا الأمامية.
التغييرات في واجهة برمجة التطبيقات
- تم عرض واجهة برمجة تطبيقات جديدة لـ
ResolutionSelector. يمكن للتطبيقات تحديد استراتيجيات نسبة العرض إلى الارتفاع والدقة باستخدام قواعد احتياطية أو فلتر دقة مخصّص للحصول على النتائج المطلوبة. يمكن للتطبيقات تحديد علامة لتفعيل ميزة التسجيل بدقة عالية. سيسمح ذلك لواجهة CameraX باختيار درجات دقة أعلى عند التقاط الصور أو الفيديوهات. ومع ذلك، يُرجى العلم أنّ استخدام دقة عالية قد يؤدي إلى بطء أوقات الالتقاط. (Ibed95) - يمكن الآن الاستعلام عن نطاقات عدد اللقطات في الثانية التي تتيحها خوارزمية التعريض التلقائي من خلال
CameraInfo#getSupportedFrameRateRanges(). (Iaa67f) - دمج أسماء جميع طرق عدد اللقطات في الثانية في استخدام "FrameRate". تصحيح خطأ javadoc في
VideoCapture#getTargetFrameRate()(I83304) - تم إيقاف واجهتَي برمجة التطبيقات القديمتَين
setTargetAspectRatioوsetTargetResolutionنهائيًا. يُرجى استخدام واجهة برمجة التطبيقات الجديدةResolutionSelectorبدلاً من ذلك. (I542c3) - تمت إضافة واجهات برمجة تطبيقات عامة للكاميرا المزدوجة المتزامنة، بما في ذلك
List<List<CameraInfo>> getAvailableConcurrentCameraInfos()ConcurrentCamera bindToLifecycle(@NonNull ConcurrentCameraConfig concurrentCameraConfig)-
boolean isConcurrentCameraModeOn()وConcurrentCameraConfigوSingleCameraConfigوConcurrentCamera(Iab1c1)
- جعل
ImageProcessor.Response#getOutputImageغير فارغ (Ib9c60) - تمت إضافة واجهات برمجة تطبيقات النسخ المتطابق
VideoCapture، بما في ذلكVideoCapture.Builder.setMirrorMode(int)وVideoCapture.getMirrorMode(). تُعدّ واجهات برمجة التطبيقات مفيدة للتطبيقات التي تتطلّب أن يكون تسجيل الفيديو متوافقًا مع سلوك معاينة الكاميرا الشائع، أي أنّ معاينة الكاميرا الخلفية لا يتم عكسها، ولكن يتم عكس معاينة الكاميرا الأمامية. (I713b6، b/194634656) - إضافة واجهة برمجة التطبيقات
setTargetFrameRate()فيVideoCapture.Builderوواجهة برمجة التطبيقاتgetTargetFramerate()فيVideoCapture(I109d4) - يجب جعل
SurfaceOutputيوسّع Closable وإخفاء الدالة الإنشائية العامة لـ SurfaceOutput.Event. (I60ea8) - تمت إضافة
Recording.muteلكتم صوت تسجيل قيد المعالجة أو إعادة الصوت إليه بشكل ديناميكي. سيحتويRecordingStatsعلىAudioStats.AUDIO_STATE_MUTEDعندما يتم كتم صوت التسجيل قيد المعالجة بشكل صريح. (Ie17fc) - تم جعل مَعلمة
#setEffects()غير فارغة. إضافة واجهة برمجة تطبيقات#clearEffects()لمحو المؤثرات على التطبيق استدعاء#clearEffects()لإزالة التأثيرات. (I4b4d9) - إضافة طريقة وضع تصميم ثانية لـ
ViewfinderSurfaceRequest.Builderمن أجل استخدام أداة إنشاء لطريقة وضع تصميم النسخ (I621a7)
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثّلة في احتمال تعطُّل التطبيقات التي تستدعي Extensions API عند إغلاق الكاميرا (Ib27e5)
- تم إصلاح مشكلة عدم عمل ميزة "
VideoCapture" مع الكاميرا الأمامية على بعض الأجهزة. على سبيل المثال، على هاتف Samsung Galaxy S23 وXiaomi 2107113SG. (Ibec7e، b/270656244) - تم إصلاح المشكلة التي تؤدي إلى تعذُّر التقاط الصور دائمًا باستخدام "الملف" في المجلد العام لوحدة التخزين الخارجية في نظام التشغيل Android 10 أو الإصدارات الأحدث. يُرجى العِلم أنّه في نظام التشغيل 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على UseCaseVideoCapture، وسيتم تطبيق المؤثرات التي تستهدفPREVIEW|VIDEO_CAPTUREعلى بث مشترك قبل النسخ إلى "المعاينة" وبثVideoCapture. (Iee6f3)
إصلاح الأخطاء
- من الكاميرا
1.2.2: تم إصلاح المشكلة المتمثّلة في عدم عمل إضافات CameraX بشكل صحيح عند تفعيل ProGuard على بعض الأجهزة، مثل Pixel (I90aa2) - تم إصلاح خطأ في
PreviewViewيتسبّب في تشويه المعاينة عند تدوير الشاشة إذا كان التطبيق يتعامل مع اتجاه الشاشة بنفسه. يحدث ذلك على أجهزة معيّنة فقط. ويمكن إعادة إنتاجها على هواتف Pixel a4 وPixel 5 وPixel 6a. (I14340، b/223488673)
الإصدار 1.3.0-alpha04
22 فبراير 2023
تم طرح androidx.camera:camera-*:1.3.0-alpha04. يتضمّن الإصدار 1.3.0-alpha04 هذه التعديلات.
الميزات الجديدة
ميزة جديدة تتيح استخدام مجموعات Surface التي لم تكن متوافقة في السابق من خلال مشاركة بث واحد مع UseCases متعددة.
- في السابق، عند ربط "المعاينة والتقاط الفيديو وتحليل الصور" على مستوى جهاز الكاميرا FULL والإصدارات الأقدم، أو ربط "المعاينة والتقاط الفيديو والتقاط الصور" على مستوى الجهاز LEGACY، كانت واجهة CameraX تعرض الخطأ
IllegalArgumentException. - السلوك الجديد هو أنّ عمليات الربط ستعمل بدون ظهور استثناءات. بدلاً من ذلك، تستخدم CameraX واجهة OpenGL لنسخ بث مشترك إلى كل من Preview وVideoCapture.
- قد يلاحظ التطبيق زيادة في وقت الاستجابة واستهلاك الطاقة، وذلك بسبب تكلفة نسخة المخزن المؤقت.
التغييرات في واجهة برمجة التطبيقات
- إضافة واجهة برمجة تطبيقات لتحويل
ImageProxyإلىBitmapتنسيقImageProxyالمتوافق هوImageFormat.YUV_420_888وPixelFormat.RGBA_8888. إذا كان التنسيق غير صالح، سيتم عرضIllegalArgumentException. (Ic7110) - تمت إضافة
CoroutineCameraViewfinderلإتاحة ضبط عدسة الكاميرا باستخدام دوال التعليق في Kotlin. (I657bc) - يُرجى إضافة طريقة وضع تصميم عامة جديدة لـ "
ViewfinderSurfaceRequest". ويوفّر هذا الخيار المرونة عندما يتعذّر على المستخدم تقديمCameraCharacteristics. (Ie6549)
إصلاح الأخطاء
- تم إصلاح مشكلة تعطُّل الإضافات التي تحدث على بعض أجهزة Samsung عند إيقاف التطبيق مؤقتًا أو استئنافه بسرعة كبيرة (Iaca26)
الإصدار 1.3.0-alpha03
25 يناير 2023
تم طرح androidx.camera:camera-*:1.3.0-alpha03. يتضمّن الإصدار 1.3.0-alpha03 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة
CameraInfo.getIntrinsicZoomRatioلتوفير معلومات عن زاوية العرض بالنسبة إلى الكاميرا التلقائية. (Ib300c) - تمت إضافة السمة
CameraInfo.getLensFacingلتقديم معلومات عن اتجاه العدسة. تمت إضافةCameraSelector#LENS_FACING_EXTERNALكميزة تجريبية لاختيار الكاميرات الخارجية. (Icaf3e) - إضافة
#setEffect()إلىCameraControllerللسماح بإضافة تأثيرات إلى مخرجات الكاميرا (I1d21f) - أضِف طريقة
invalidate()إلىSurfaceRequest. يمكن لموفّر مساحة العرض إرسال إشعار بأنّ مساحة العرض التي تم توفيرها سابقًا لم تعُد صالحة. (Idc649) - أضِف واجهة برمجة تطبيقات
ImageProcessor. هذه الواجهة مخصّصة لإدخال تأثيرات المعالجة اللاحقة في مسارImageCapture. (I575c6) - تمت إضافة واجهة برمجة التطبيقات
Recorder.Builder.setAspectRatio()التي يمكن دمجها معQualitySelectorلإتاحة المزيد من درجات دقة الفيديو. (I8a082) - تمت إضافة
Recorder.Builder#setTargetVideoEncodingBitRateلضبط ترميز الفيديو المستهدَفBitRateوRecorder#getTargetVideoEncodingBitRateللحصول على معدل نقل البيانات لترميز الفيديو المستهدَف. (I5984d)
إصلاح الأخطاء
- تم إصلاح مشكلة تعذُّر تنفيذ
ImageCaptureعندما لا تكون هناك وحدة فلاش ويكون وضع الفلاش مفعَّلاً. (I9e8b4، b/263391112) - تم إصلاح مشكلة تلف صور JPEG في حال كتابة بيانات الموقع الجغرافي بتنسيق Exif على بعض أجهزة Samsung التي تعمل بنظام التشغيل Android 12. (Ib7086، b/263747161، b/263289024)
- عند ضبط المصباح/التكبير قبل اكتمال إعداد الكاميرا، مثلاً عند استدعاء
CameraController#enableTorch، يتم تخزين الإجراء المعلّق مؤقتًا وإرساله بعد اكتمال الإعداد. (I11e92، b/264157663)
الإصدار 1.3.0-alpha02
7 ديسمبر 2022
تم طرح androidx.camera:camera-*:1.3.0-alpha02. يتضمّن الإصدار 1.3.0-alpha02 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- إضافة واجهة برمجة تطبيقات جديدة لتطبيق تأثير المعالجة اللاحقة على مخرجات المعاينة (Ic17d5)
- تمت إعادة تسمية
OutputOptions.getDurationLimitإلىOutputOptions.getDurationLimitMillisوOutputOptions.setDurationLimitإلىOutputOptions.setDurationLimitMillis. (I91f0c) - أضِف فئة
AudioConfigللتعامل مع الإعدادات ذات الصلة بالصوت أثناء تسجيل الفيديو. تم نقل التعليق التوضيحي@RequiresPermissionمن دوالstartRecordingإلىAudioConfigلتجنُّب طلبات الحصول على إذن غير ضرورية في الحالات التي لا يكون فيها الصوت مطلوبًا. (I28755) - إزالة فئات البيانات الوصفية و
OnVideoSavedCallbackوOutputFileOptionsوOutputFileResultsالتي لم تعُد مستخدَمة بعد تطبيق واجهة برمجة التطبيقات الجديدة لالتقاط الفيديو (I38cd8) - تطبيق واجهة برمجة التطبيقات الجديدة لتسجيل الفيديو تم استبدال الطريقتَين
getVideoCaptureTargetSizeوsetVideoCaptureTargetSizeبالطريقتَينgetVideoCaptureTargetQualityوsetVideoCaptureTargetQualityعلى التوالي، لأنّsetTargetResolutionلم يعُد متاحًا. (I2a1d5)
إصلاح الأخطاء
- إزالة واجهة برمجة التطبيقات
core.VideoCaptureالتي تم إيقافها نهائيًا (I531e0) - تم إصلاح مشكلة عدم استدعاء دالة الاستدعاء
onErrorعند التقاط الصور بدون إذن التخزين.(I936db، b/244807669) - تحسين جودة إضافات الكاميرا وموثوقيتها تم إيقاف إضافات الكاميرا على أجهزة Motorola التي تستخدم الإصدار 1.1.0 من إضافات الكاميرا والإصدارات الأقدم بسبب مشاكل في ميزة "الخلفية الضبابية" والتقاط الصور وعدم استئناف المعاينة. (Id3ce3)
- تم إصلاح عطل داخلي في نظام التشغيل عند تفعيل ميزة اقتصاص الفيديو من خلال
ViewPortعلى الأجهزة القديمة. (I16b8a، b/251357665)
الإصدار 1.3.0-alpha01
9 نوفمبر 2022
تم طرح androidx.camera:camera-*:1.3.0-alpha01. يتضمّن الإصدار 1.3.0-alpha01 هذه التعديلات.
الميزات الجديدة
- تم نشر "
Camera-viewfinder" رسميًا. يوفّرCamera-viewfinderتطبيقًا مصغّرًا أساسيًا لعدسة الكاميرا يمكنه عرض خلاصة الكاميرا في Camera2. يُرجى الاطّلاع على الرمز النموذجي للحصول على مثال.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة السمة
OutputOptions.setDurationLimitللسماح بضبط الحدّ الأقصى لمدة الفيديو. سيتم إنهاء التسجيل تلقائيًا عند تجاوز الحد الأقصى المحدّد للمدة. (I902a0) - تمت إضافة حالة الخطأ "
AudioStats.AUDIO_STATE_SOURCE_ERROR" في الصوت أثناء تسجيل الفيديو. يتم إرسال هذا الحدث عند تعذُّر إعداد مصدر الصوت أو حدوث خطأ ما. (I37410)
إصلاح الأخطاء
- تمت إضافة ميزة تتيح لبعض الأجهزة التي تواجه مشاكل إعادة محاولة الالتقاط مرة واحدة عند حدوث أخطاء في الالتقاط. (Id4795)
- تم إصلاح مشكلة الشاشة السوداء في تنفيذ
PreviewViewSurfaceViewعلىViewPager2. كجزء من عملية الإصلاح، سيعيد "PreviewView" استخدام "SurfaceView" إذا لم يتم تغيير درجة الدقة المطلوبة. (Ib3f27) - إتاحة اقتصاص الفيديو (ميزة WYSIWYG) عند استخدام واجهة برمجة التطبيقات
ViewPortأوCameraController(Ifbba8، b/201085351) - تم إصلاح مشكلة تعذُّر تسجيل الفيديو الذي تم التقاطه بالكاميرا الأمامية على هاتف Huawei P40 lite. (I87c57، b/250807400)
الإصدار 1.2
الإصدار 1.2.3
24 مايو 2023
تم طرح androidx.camera:camera-*:1.2.3. يتضمّن الإصدار 1.2.3 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة عدم عمل ميزة "
VideoCapture" مع الكاميرا الأمامية على بعض الأجهزة. على سبيل المثال، على هاتف Samsung Galaxy S23 وXiaomi 2107113SG. (Ibec7e، b/270656244)
الإصدار 1.2.2
22 مارس 2023
تم طرح androidx.camera:camera-*:1.2.2. يتضمّن الإصدار 1.2.2 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثّلة في عدم عمل إضافات CameraX بشكل صحيح عند تفعيل ProGuard على بعض الأجهزة، مثل Pixel (I90aa2)
الإصدار 1.2.1
25 يناير 2023
تم طرح androidx.camera:camera-*:1.2.1. يتضمّن الإصدار 1.2.1 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تلف صور JPEG في حال كتابة بيانات الموقع الجغرافي بتنسيق Exif على بعض أجهزة Samsung التي تعمل بنظام التشغيل Android 12. (b/263289024)
الإصدار 1.2.0
7 ديسمبر 2022
تم طرح androidx.camera:camera-*:1.2.0. يتضمّن الإصدار 1.2.0 هذه التعديلات.
تغييرات مهمة منذ الإصدار 1.1.0
- مكتبة جديدة: camera-mlkit-vision يمكنك دمج CameraX بسهولة مع العديد من ميزات MLKit، بما في ذلك مسح الرمز الشريطي ضوئيًا والتعرّف على الوجوه والتعرّف على النص وما إلى ذلك. تمت إضافة
MLKitAnalyzerكواجهات برمجة تطبيقات جديدة. - واجهة برمجة تطبيقات تجريبية جديدة لالتقاط الصور بدون تأخير تعمل هذه الميزة على تحسين مسار الالتقاط لتقليل وقت الاستجابة مع الحفاظ على جودة الصورة. عند ضبط وضع الالتقاط على
CAPTURE_MODE_ZERO_SHUTTER_LAG، من المتوقّع تقليل وقت الاستجابة بين النقر على زر الغالق والتقاط الصورة، مقارنةً بأوضاع الالتقاط الأخرى. على الأجهزة التي لا تتوافق معZERO_SHUTTER_LAG، سيتم استخدامCAPTURE_MODE_MINIMIZE_LATENCY. - إيقاف
android.camera.core.VideoCaptureنهائيًا - تمت إضافة
setStreamUseCase()كواجهة برمجة تطبيقاتCamera2Interopعلنية. - تمت إضافة متطلبات مستوى واجهة برمجة التطبيقات لـ "
setOutputImageRotationEnabled". - تمت إعادة تسمية "
ImageAnalysis.Analyzer#getTargetResolutionOverride()" إلى "ImageAnalysis.Analyzer#getDefaultTargetResolution()". - تمت إضافة واجهة برمجة تطبيقات لضبط البيانات الوصفية للموقع الجغرافي في الفيديو المحفوظ.
- تم إصلاح مشكلة انخفاض معدّل عرض الإطارات عند استخدام حالات استخدام
VideoCaptureوالمعاينة بنسبة عرض إلى ارتفاع 16:9 - تم إصلاح مشكلة المعاينة السوداء التي تحدث عند تفعيل إضافة BOKEH على بعض أجهزة Samsung وتبديل المستخدم للكاميرات.
- تم إصلاح مشكلة تمدّد
Preview/VideoCaptureعلى أجهزة Samsung J7 Prime (SM-G610M) وJ7 (SM-J710MN) التي تعمل بمستوى واجهة برمجة التطبيقات 27. - تم إيقاف الحل البديل لقلب منطقة التركيز التلقائي أفقيًا في الكاميرات الأمامية على أجهزة Samsung التي تعمل بنظام التشغيل Android T بعد حلّ المشكلة
الإصدار 1.2.0-rc01
24 أكتوبر 2022
تم طرح androidx.camera:camera-*:1.2.0-rc01. يتضمّن الإصدار 1.2.0-rc01 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- إضافة واجهة برمجة التطبيقات "
setStreamUseCase" لـ "OutputConfiguration" يمكن للمستخدم تحديد حالة استخدام البث لجلسة البث، وتجاوز المنطق الداخلي لـ CameraX لاختيار حالة استخدام البث من أجل تحسينها وفقًا لاحتياجاته. (Ib1a95)
إصلاح الأخطاء
- تم إصلاح مشكلة تمدّد
Preview/VideoCaptureعلى أجهزة Samsung J7 Prime (SM-G610M) وJ7 (SM-J710MN) التي تعمل بمستوى واجهة برمجة التطبيقات 27. تؤدي درجة الدقة 1920x1080 إلى تمديد صورPreview/VideoCapture. تمت إضافة حل بديل لعدم اختيار درجة الدقة 1920x1080 في "المعاينة" أو "VideoCapture" لتجنُّب مشكلة تمديد الصورة. (I0e04e) - تم إصلاح مشكلة انخفاض معدّل عرض الإطارات عند استخدام حالات استخدام
VideoCaptureو"المعاينة" بنسبة عرض إلى ارتفاع 16:9 على بعض أجهزة Huawei. (If8c88، b/223643510) - تم إصلاح مشكلة تعذُّر فتح الكاميرا عندما لا يتم ضبط
SurfaceProviderفي "المعاينة". كجزء من عملية الإصلاح، لن يتم ضبط ميزة "المعاينة" بدون ضبطSurfaceProviderفي جلسة التقاط الكاميرا. (I99681)
الإصدار 1.2.0-beta02
21 سبتمبر 2022
تم طرح androidx.camera:camera-*:1.2.0-beta02. يتضمّن الإصدار 1.2.0-beta02 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- إضافة متطلبات مستوى واجهة برمجة التطبيقات لـ
setOutputImageRotationEnabled(I26e3e، b/240993561)
إصلاح الأخطاء
- تم إيقاف الحل البديل لقلب منطقة التركيز التلقائي أفقيًا في الكاميرات الأمامية على أجهزة Samsung Android T بعد حلّ المشكلة. (I05f69)
- تم إصلاح مشكلة المعاينة السوداء التي تحدث عند تفعيل إضافة "
BOKEH" على بعض أجهزة Samsung وتبديل المستخدم للكاميرات. (If6168)
الإصدار 1.2.0-beta01
24 أغسطس 2022
تم طرح androidx.camera:camera-*:1.2.0-beta01. يتضمّن الإصدار 1.2.0-beta01 هذه التعديلات.
الميزات الجديدة
- مكتبة جديدة:
camera-mlkit-visionيمكنك دمج CameraX بسهولة مع العديد من ميزات MLKit، بما في ذلك مسح الرمز الشريطي ضوئيًا والتعرّف على الوجوه والتعرّف على النص وما إلى ذلك. يُرجى الاطّلاع على الرمز النموذجي هنا. - واجهة برمجة تطبيقات تجريبية جديدة لالتقاط الصور بدون تأخير تعمل هذه الميزة على تحسين مسار الالتقاط لتقليل وقت الاستجابة مع الحفاظ على جودة الصورة. عند ضبط وضع الالتقاط على CAPTURE_MODE_ZERO_SHUTTER_LAG، من المتوقّع تقليل وقت الاستجابة بين النقر على زر الغالق والتقاط الصورة، مقارنةً بأوضاع الالتقاط الأخرى. على الأجهزة التي لا تتيح استخدام ZERO_SHUTTER_LAG، سيتم الرجوع إلى CAPTURE_MODE_MINIMIZE_LATENCY.
- تم جعل
ImageAnalysis.AnalyzerوMLKitAnalyzerواجهتَي برمجة تطبيقات رسميتَين. - تم عرض واجهة برمجة التطبيقات لضبط البيانات الوصفية للموقع الجغرافي في الفيديو المحفوظ.
- تمّت إعادة تسمية
ImageAnalysis.Analyzer#getTargetResolutionOverride()إلىImageAnalysis.Analyzer#getDefaultTargetResolution().
إصلاح الأخطاء
- تم إصلاح مشكلة التقاط الصور في Alps k61v1_basic_ref. تحتوي صور JPEG التي تم التقاطها من HAL على بيانات وصفية غير صحيحة لـ Exif. لا تحتوي بيانات Exif الوصفية على العلامة 0xffd9 أو 0xffda لكي يتمكّن
ExifInterfaceمن تحليل السمات بشكل صحيح. التقاط الصور بتنسيق YUV ثم ضغطها إلى صور JPEG لحلّ هذه المشكلة (I45abb)
الإصدار 1.2.0-alpha04
27 يوليو 2022
تم طرح androidx.camera:camera-*:1.2.0-alpha04. يتضمّن الإصدار 1.2.0-alpha04 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمّت إعادة تسمية
ImageAnalysis.Analyzer#getTargetResolutionOverride()إلىImageAnalysis.Analyzer#getDefaultTargetResolution(). تم أيضًا تغيير السلوك بحيث يمكن استبدال القيمة التي تعرضها هذه الطريقة بقيمةImageAnalysis#setTargetResolution(). (If1d36) - تم عرض واجهة برمجة التطبيقات لضبط البيانات الوصفية للموقع الجغرافي في الفيديو المحفوظ. يمكن ضبط عنصر
android.location.Locationمن خلال واجهة برمجة التطبيقات الجديدةandroidx.camera.video.OutputOptions.Builder.setLocation(Location). (I313a0، b/204197544)
إصلاح الأخطاء
- تم إصلاح مشكلة التقاط صورة باستخدام معاينة غير مرتبطة (Ie70b6، b/235119898)
- تم إصلاح عطل في
Recorderعند محاولة التسجيل عندما يكون مصدر الصوت غير متاح. (I9f652)
الإصدار 1.2.0-alpha03
29 يونيو 2022
تم طرح androidx.camera:camera-*:1.2.0-alpha03. يتضمّن الإصدار 1.2.0-alpha03 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إزالة التعليق التوضيحي التجريبي لـ
ImageAnalysis.AnalyzerوMLKitAnalyzer. (I0ff22)
إصلاح الأخطاء
- تمت إضافة مهلة تلقائية للتركيز التلقائي تبلغ 5000 ملي ثانية، والتي ستكمل جزء التركيز التلقائي باستخدام
isFocusSuccessfulfalse إذا لم يتم إلغاءFocusMeteringActionولم يتم تقارب جزء التركيز التلقائي في المدة. (Ibc2e3) - تم إصلاح مشكلة التقاط صورة باستخدام معاينة غير مرتبطة (I1d3a2، b/235119898)
- تم تفعيل تنفيذ الإضافات المتقدّمة وتحديث إصدار واجهة إضافات دعم CameraX إلى 1.2 (I92256)
الإصدار 1.2.0-alpha02
1 يونيو 2022
تم طرح androidx.camera:camera-*:1.2.0-alpha02. يتضمّن الإصدار 1.2.0-alpha02 هذه التعديلات.
الميزات الجديدة
- إتاحة واجهة برمجة التطبيقات CameraX Zero-Shutter Lag API كواجهة تجريبية
التغييرات في واجهة برمجة التطبيقات
- أضِف وضع التقاط جديدًا
CAPTURE_MODE_ZERO_SHUTTER_LAGفيImageCaptureوأضِفisZslSupportedفيCameraInfoللاستعلام عن إمكانات الجهاز. يهدف وضع "CAPTURE_MODE_ZERO_SHUTTER_LAG" إلى توفير الحد الأدنى من وقت الاستجابة لالتقاط الصور الفوري. ويتم تنفيذها استنادًا إلى مخزن مؤقت دائري يخزّن مؤقتًا نتائج الالتقاط الوسيطة لإعادة معالجتها لاحقًا عندما يضغط المستخدم على الأزرار لالتقاط الصور. إذا كان {@link VideoCapture} مرتبطًا أو كان وضع الفلاش غير مفعَّل أو كانت إضافة المصنّع الأصلي للجهاز مفعَّلة، سيتم إيقاف هذا الوضع تلقائيًا. (I9ae74) - إضافة طريقة
ImageAnalysis.getBackgroundExecutor()(Icc945)
إصلاح الأخطاء
- تم إصلاح مشكلة إيقاف طريقة
ImageCapturetakePicture للمصباح اليدوي على الأجهزة التي تم الإبلاغ عنها. (Ib5eb5، b/228272227) - تم إصلاح خطأ يتعلّق بعدم معالجة
AssertionErrorعند الحصول على السمةCONTROL_ZOOM_RATIO_RANGE.(/Ia248a، b/231701345)
الإصدار 1.2.0-alpha01
18 مايو 2022
تم طرح androidx.camera:camera-*:1.2.0-alpha01. يتضمّن الإصدار 1.2.0-alpha01 هذه التعديلات.
الميزات الجديدة
- تم إطلاق مكتبة camera-mlkit-vision الجديدة
إصلاح الأخطاء
- تم إصلاح مشكلة تعذُّر تسجيل فيديو بدقة فائقة (UHD) على جهاز
QualitySelectorعند تفعيل استراتيجية احتياطية. تحدث المشكلة عندما يكونVideoCaptureمرتبطًا بـImageCaptureو"المعاينة" على جهاز كاميرا بمستوى أجهزة FULL أو أعلى. تؤدي استراتيجية الاحتياطية "QualitySelector" إلى حصول "VideoCapture" على دقة FHD بشكل غير صحيح. تتوفّر دقة UHD في هذه الحالة، لذا يجب استخدامها. (I0e788، b/230651237) - تم حلّ المشكلة "
NullPointerException" في ImageCapture.takePicture(). (I92366، b/230454568، b/229766155) - تم إصلاح سلوك الإيقاف المؤقت غير المتزامن لـ
androidx.camera.video.Recorder(Ia8ce8)
الإصدار 1.1.0 من Camera-Camera2 وCamera-Core وCamera-Lifecycle وCamera-Video
الإصدار 1.1.0
29 يونيو 2022
تم طرح androidx.camera:camera-*:1.1.0. يتضمّن الإصدار 1.1.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.0.0
- تم طرح الإصدار التجريبي الأول من مكتبات View وExtension وVideo Capture. بدءًا من الإصدار 1.1.0-beta01، ستستخدم جميع مكتبات CameraX رقم الإصدار نفسه. سيساعد ذلك المطوّرين في تتبُّع الإصدارات بسهولة أكبر وتقليل تعقيد مصفوفات التوافق مع الإصدارات الكبيرة.
- تم تقديم واجهات برمجة تطبيقات وميزات جديدة متاحة للجميع، بما في ذلك:
- أضِف مكتبة camera-video الرسمية لإتاحة حالات استخدام التقاط الفيديو.
- إمكانية تحويل YUV إلى RGB والتدوير (
ImageAnalysis.Builder.setOutputImageRotationEnabledوsetOutputImageFormat) - يتيح وضع النوافذ المتعددة من خلال السماح لتطبيقات CameraX باستئناف استخدام الكاميرا عندما يقاطع تطبيق آخر استخدامها ويعود التركيز إليها.
- يضمن عمل CameraX بشكل جيد في الأجهزة القابلة للطي من خلال إصلاح بعض مشاكل المعاينة.
- تمت إضافة واجهة برمجة تطبيقات
CameraStateسيتم عرضها من خلال CameraInfo. - تمت إضافة واجهة برمجة التطبيقات
ProcessCameraProvider.getAvailableCameraInfos()لاسترداد المعلومات مباشرةً حول الكاميرات المتاحة - تنسيق الإخراج JPEG لـ "
ImageCapture#OnImageCapturedCallback" عند تفعيل الإضافات - تمت إضافة واجهة برمجة التطبيقات
isFocusMeteringSupportedفيCameraInfo، والتي تتيح للتطبيقات التحقّق مما إذا كانFocusMeteringActionالمحدّد متوافقًا مع الكاميرا الحالية أم لا. - تم عرض واجهة برمجة التطبيقات
getResolutionInfoلتوفير معلومات الدقة لكل من "المعاينة" وImageCaptureوImageAnalysis. - تمت إضافة واجهة برمجة تطبيقات جديدة
ImageCapture.Builder#setJpegQualityللسماح بتغيير جودة ضغط صور JPEG الناتجة عند التقاط الصور. - تمت إضافة
CameraSelector#filterإلى واجهة برمجة التطبيقات العامة لفلترة قائمةCameraInfosاستنادًا إلىCameraSelector. - تمت إضافة
Camera2CameraControl.clearCaptureRequestOptionsلمحو خيارات طلب الالتقاط الحالية. - تمت إضافة واجهة برمجة تطبيقات تجريبية لاستخدام
CameraControllerمع مكتبات معالجة الصور الخارجية، مثل MLKit - تمت إضافة واجهة برمجة التطبيقات التجريبية
CameraInfo#getCameraSelector()التي تعرضCameraSelectorفريدًا للكاميرا - تمت ترقية العديد من واجهات برمجة التطبيقات التجريبية إلى واجهات برمجة تطبيقات عامة رسمية
- تم استبدال التعليق التوضيحي
@Experimentalبـ@RequiresOptInفي واجهات برمجة التطبيقات التجريبية. لاستدعاء واجهات برمجة التطبيقات التجريبية، استخدِم androidx.annotation.OptIn بدلاً من androidx.annotation.experimental.UseExperimental التي تم إيقافها نهائيًا. - تمت ترقية واجهات برمجة التطبيقات التجريبية التالية إلى واجهات برمجة تطبيقات رسمية:
CameraXConfig.Builder#setAvailableCamerasLimiter()وCameraXConfig.Builder#setMinimumLoggingLevel()وCameraXconfig.Builder#setSchedulerHandler()وCameraXConfig#getAvailableCamerasLimiter()وCameraXConfig#getMinimumLoggingLevel()وCameraXConfig#getCameraExecutor()وCameraXConfig#getSchedulerHandler()، - واجهتا برمجة تطبيقات (
@ExperimentalCameraFilter) - واجهات برمجة التطبيقات التجريبية لتعويض درجة الإضاءة
- تمت ترقية واجهة برمجة التطبيقات التجريبية
UseCaseGroupلكل من camera-core وcamera-lifecycle وcamera-video. تمت إضافةViewPort#getLayoutDirectionوViewPort.Builder#setLayoutDirectionوViewPort.Builder#setScaleTypeلتخصيص إطار العرض. - تمت ترقية
ExperimentalUseCaseGroupLifecycleإلى واجهات برمجة تطبيقات عامة رسمية. - التغييرات على واجهات برمجة التطبيقات الحالية
Renamed MediaStoreOutputOptions.getCollectionمن أجلMediaStoreOutputOptions.getCollectionUri.- تمت إعادة تسمية
ActiveRecordingإلى "تسجيل" لتقليل الإسهاب. - تم تغيير واجهة برمجة التطبيقات الخاصة بإنشاء
QualitySelectorإلى واجهة برمجة تطبيقات مستندة إلى القوائم
إصلاح الأخطاء
- تم إصلاح مشكلة
YuvToJpegProcessorEOFExceptionعند تفعيل وضع الإضافة وضبط وضعImageCapture#CAPTURE_MODE_MAX_QUALITY. - تم إصلاح مشكلة تعذُّر ضبط برنامج الترميز بسبب إغلاق تسجيل الفيديو
- تم إصلاح مشكلة تمدُّد نسبة العرض إلى الارتفاع في المعاينة أو الفيديو عند التسجيل بدقة FHD
- تم إصلاح مشكلة عدم مزامنة الصوت/الفيديو بعد الإيقاف المؤقت والاستئناف على بعض الأجهزة
- تم إصلاح المشكلة المتمثّلة في تشغيل الفلاش أثناء النقر للتركيز (
startFocusAndMetering) عندما يكون وضع الفلاش مضبوطًا على "تلقائي" أو "تشغيل دائمًا" في بيئة منخفضة الإضاءة.
الإصدار 1.1.0-rc02
1 يونيو 2022
تم طرح androidx.camera:camera-*:1.1.0-rc02. يتضمّن الإصدار 1.1.0-rc02 هذه التعديلات.
إصلاح الأخطاء
- تم حلّ المشكلة "
NullPointerException" في ImageCapture.takePicture(). (I92366، b/230454568، b/229766155) - تم إصلاح خطأ يتعلّق بعدم معالجة
AssertionErrorعند الحصول على السمةCONTROL_ZOOM_RATIO_RANGE. (Ia248a، b/231701345)
الإصدار 1.1.0-rc01
11 مايو 2022
تم طرح androidx.camera:camera-*:1.1.0-rc01. يتضمّن الإصدار 1.1.0-rc01 هذه التعديلات.
الميزات الجديدة
- إصدار أول نسخة مرشحة للإصدار من camera-video وcamera-view وcamera-extension
إصلاح الأخطاء
- تم إصلاح مشكلة عدم إصدار برنامج ترميز الفيديو عند إلغاء ربط
VideoCapture<Recorder>، ما يؤدي إلى تعذُّر استخداماتVideoCapture<Recorder>اللاحقة في التسجيل باستخدامMediaCodec.CodecException، خاصةً على أجهزة واجهة برمجة التطبيقات 21-22. (Ie7f68) - إصلاح مشكلة عدم حذف الصور الملتقَطة لـ "
CameraExtensionsActivity" في "ImageCaptureTest"
الإصدار 1.1.0-beta03
6 أبريل 2022
تم طرح androidx.camera:camera-*:1.1.0-beta03. يتضمّن الإصدار 1.1.0-beta03 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تم حظر الدالة الإنشائية
CaptureRequestOptions. (I261b6) - تمت إضافة واجهة برمجة تطبيقات تجريبية لاستخدام
CameraControllerمع مكتبات معالجة الصور الخارجية، مثل MLKit (I4ea71).
إصلاح الأخطاء
- تم إصلاح مشكلة ظهور المعاينة بشكل جانبي في
PreviewViewعندما لا تتم إعادة تشغيل النشاط بعد تدوير الأجهزة في وضع النوافذ المتعددة. (I1ea36، b/223488673) - تم إصلاح مشكلة في ميزة "النوافذ المتعددة"، حيث يتعذّر على التطبيق استئناف استخدام الكاميرا عند عودة التركيز إليه في الحالتَين التاليتَين: (1) عندما يفتح تطبيق آخر ذو أولوية عالية كاميرا مختلفة (2) عندما يكون الجهاز من أجهزة Samsung التي تعمل بنظام التشغيل Android 12. (I7e9f2)
- تم تضمين حل بديل للأجهزة التي تتعطّل عند التحقّق من توفّر الفلاش. ولن يتوفّر المصباح اليدوي على هذه الأجهزة. (If26a3، b/216667482)
- تم إصلاح مشكلة
AbstractMethodErrorالتي كانت تحدث عندما تستخدم التطبيقات الإضافات وتفعّل ProGuard. (I7cbaf، b/222726805) - فرض إيقاف وضع إضافة الخلفية الضبابية على جهاز Motorola razr 5G، ما سيؤدي إلى ظهور شاشة معاينة سوداء (I35d49)
- تم إصلاح مشكلة عدم مزامنة الصوت/الفيديو بعد الإيقاف المؤقت والاستئناف على بعض أجهزة Samsung التي تعمل بإصدارات سابقة من المستوى 29 لواجهة برمجة التطبيقات. (I64622، b/202798609، b/202798572)
- تم إصلاح مشكلة عدم مزامنة الصوت/الفيديو بعد الإيقاف المؤقت والاستئناف على جهاز Sony G3125. (I2a1a5، b/202799148)
- تم إصلاح عطل حدث عندما واجه تطبيق "المسجّلة الذكية"
InvalidConfigException. ومع ذلك، يمنع هذا الإصلاح تعطُّل التطبيق فقط، ولكنّه لا يحلّ سبب حدوثInvalidConfigException. إذا تعذّر ضبطRecorder، ستتلقّى التطبيقات معاودة اتصال تتضمّن رسالة خطأ عند بدء التسجيل. (I89c29، b/213617227)
مساهمة خارجية
- تم تعديل واجهة برمجة التطبيقات :compose:ui:ui-test (updateApi) بسبب نقل البيانات من test-coroutines-lib (I3366d)
الإصدار 1.1.0-beta02
23 فبراير 2022
تم طرح androidx.camera:camera-*:1.1.0-beta02. يتضمّن الإصدار 1.1.0-beta02 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- إضافة إمكانية تحديد رقم تعريف الكاميرا الفعلية من خلال Camera2Interop (I5aed8)
إصلاح الأخطاء
- تم حلّ مشكلة تمدّد المعاينة على جهاز Oppo Find N (I7d004)
- تم إصلاح مشكلة في هاتف Galaxy J7 Prime تؤدي إلى تشويه المعاينة. (I4c500)
- استخدِم معدّل نقل بيانات متوافقًا للعثور على برنامج ترميز الفيديو. (d969052)
الإصدار 1.1.0-beta01
26 يناير 2022
تم طرح androidx.camera:camera-*:1.1.0-beta01. يتضمّن الإصدار 1.1.0-beta01 هذه التعديلات.
الميزات الجديدة
- بدءًا من الإصدار 1.1.0-beta01، ستستخدم جميع مكتبات CameraX رقم الإصدار نفسه. سيساعد ذلك المطوّرين في تتبُّع الإصدارات بسهولة أكبر وتقليل تعقيد مصفوفة توافق الإصدارات الكبيرة.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة
Camera2CameraControl.clearCaptureRequestOptionsلمسح خيارات طلب الالتقاط الحالية. (Ifa07d)
إصلاح الأخطاء
- تم إصلاح مشكلة التعطُّل عند تسجيل الفيديو على بعض الأجهزة التي تعمل بإصدارات أقدم من Android O(المستوى 26 من واجهة برمجة التطبيقات). (I88fdf، b/212328261)
- تم إصلاح مشكلة منطقة التركيز التلقائي غير الصحيحة عند استخدام
cameraControl#startFocusAndMetering()على الكاميرا الأمامية في أجهزة Samsung (Ifbf59، b/210548792) - استخدام المصباح كفلاش على هاتفَي Pixel 3a وPixel 3a XL لتحسين السرعة وجودة الصورة الملتقَطة في الظلام (Ib12b6، b/211474332)
- تمكين التطبيقات من استئناف استخدام الكاميرا عندما تتم مقاطعة استخدام الكاميرا من قِبل تطبيق آخر ذي أولوية أعلى في وضع النوافذ المتعددة، ثم يعود التركيز إلى التطبيق. يُرجى العِلم أنّه قد يكون هناك بعض التأخير(من ثانية واحدة إلى 10 ثوانٍ أو أكثر) بين تغييرات التركيز وإعادة فتح الكاميرا بسبب بعض المشاكل في إطار العمل. (I4d092)
الإصدار 1.1.0-alpha12
15 ديسمبر 2021
تم طرح androidx.camera:camera-*:1.1.0-alpha12. يتضمّن الإصدار 1.1.0-alpha12 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إزالة تعليقات
@RequiresApi(21)التوضيحية غير الضرورية من الفئات/الواجهات الداخلية. (I8e286، b/204917951) - تم تغيير ثوابت الجودة وثوابت استراتيجية الاحتياط في
QualitySelectorليتم تمثيلها بواسطة كائنات الفئة. على سبيل المثال، يتم تغييرQualitySelector.QUALITY_HDإلىQuality.HD، ويتم تغييرQualitySelector.FALLBACK_STRATEGY_LOWERإلى المثيل الذي تعرضهFallbackStrategy.lowerQualityOrHigherThan(Quality). تم تغيير واجهة برمجة التطبيقات المستخدَمة لإنشاءQualitySelectorإلى واجهة برمجة تطبيقات مستندة إلى القوائم. ستشير واجهة برمجة التطبيقات الجديدةQualitySelector.fromOrderedList(List<Quality>)إلى ترتيب قائمة جودة الإدخال بدلاً من الترتيب الذي تم إنشاؤه بواسطةQualitySelector.Procedure. تمت إزالة صف واحد (QualitySelector.Procedure). (I43343) - تمت إزالة
PendingRecording.withEventListener()ويجب الآن تمرير متتبِّع الأحداث إلىPendingRecording.start(). يهدف شرط متتبِّع الأحداث هذا إلى تشجيع معالجة الأخطاء غير المتزامنة التي يتم الإبلاغ عنها في الحدثVideoRecordEvent.Finalize. (I1e71d) - تمت إعادة تسمية "
ActiveRecording" إلى "Recording" لتقليل الإسهاب. (I77ceb)
إصلاح الأخطاء
- تم حلّ مشكلة التقاط صور في وضع "
FLASH_AUTO" بإضاءة منخفضة في ظروف الإضاءة المظلمة على هاتفَي Pixel 3a وPixel 3a XL (I13f19، b/205373142) - استخدام أحدث حجم للعرض دائمًا لتحديد المعاينة
Resolution(I4a694) - تمت فلترة الكاميرات التي لا تتضمّن
REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE. تتضمّن الكاميرات التي تتوافق معREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEالحدّ الأدنى من الإمكانات التي تتوفّر في كل جهاز كاميرا. قد تكون الكاميرا التي لا تتضمّنREQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLEمخصّصة لتوفير وظائف خاصة ولا تتيح إخراج الألوان العادية. لا يمكن لـ "CameraX" إتاحة حالات استخدامPreviewأوImageCaptureأوImageAnalysisأوVideoCaptureلهذه الكاميرات. لذلك، يجب فلترة هذه الكاميرات لمنع الاستخدام غير الصحيح. (Ib8cda) - لم يعُد
CameraSelector#filterيعرضIllegalArgumentExceptionعندما تكون مجموعة النتائج فارغة. (I27804) - يتم الآن استخدام أساليب إرشادية أكثر ذكاءً لاختيار إعدادات برنامج الترميز استنادًا إلى الملفات الشخصية التي يحدّدها المصنّع الأصلي للجهاز. (Iaeef0)
- تم إصلاح مشكلة ظهور خطوط ملونة متداخلة في المعاينة بعد بدء تسجيل فيديو بدقة فائقة على هاتف Pixel1. (I833c6، b/205340278)
الإصدار 1.1.0-alpha11
17 تشرين الثاني (نوفمبر) 2021
تم طرح androidx.camera:camera-*:1.1.0-alpha11. يتضمّن الإصدار 1.1.0-alpha11 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة CameraSelector#filter إلى واجهة برمجة التطبيقات العلنية لفلترة قائمة CameraInfos استنادًا إلى CameraSelector. (I105d0)
إضافة واجهة برمجة التطبيقات setOutputImageRotationEnabled لضبط ImageAnalysis يمكن للمستخدم تفعيل التدوير لمخزن صور YUV/RGB المؤقت. درجة التدوير هي تدوير نسبي يتم احتسابه استنادًا إلى تدوير أداة الاستشعار والتدوير المستهدَف لإبقاء الصورة في المقدّمة.
إضافة واجهة برمجة التطبيقات setOutputImageRotationEnabled لإعدادات ImageAnalysis يمكن للمستخدم تفعيل التدوير لمخزن صور YUV/RGB المؤقت. درجة التدوير هي تدوير نسبي يتم احتسابه استنادًا إلى تدوير أداة الاستشعار والتدوير المستهدَف لإبقاء الصورة في المقدّمة.
تمت إضافة واجهة برمجة التطبيقات
getSensorToBufferTransformMatrixفي ImageInfo. المصفوفة التي يتم عرضها هي عملية ربط من إحداثيات أداة الاستشعار إلى إحداثيات المخزن المؤقت، أي من قيمةCameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZEإلى(0, 0, image.getWidth, image.getHeight). يمكن استخدام المصفوفة لربط الإحداثيات من {UseCase} إلى آخر. على سبيل المثال، تعيين إحداثيات الوجه الذي تم التعرّف عليه باستخدام ImageAnalysis إلى Preview. (I9ff1e)تمت إضافة واجهة برمجة تطبيقات جديدة ImageCapture.Builder#setJpegQuality للسماح بتغيير جودة ضغط صور JPEG الناتجة عند التقاط صورة. (I8dcf4)
تمت إعادة تسمية MediaStoreOutputOptions.getCollection إلى MediaStoreOutputOptions.getCollectionUri. (I16639)
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثّلة في تشغيل الفلاش أثناء النقر للتركيز (startFocusAndMetering) عندما يكون وضع الفلاش تلقائيًا أو قيد التشغيل دائمًا في بيئة منخفضة الإضاءة. (Id4c11)
- تم إيقاف ميزة HDR+ على هاتفَي Pixel 2 XL وPixel 3 XL في وضع MINIMIZE_LATENCY لتقليل وقت الاستجابة. (Ib6270، b/203505523)
مساهمة خارجية
الإصدار 1.1.0-alpha10
13 أكتوبر 2021
تم طرح androidx.camera:camera-*:1.1.0-alpha10. يتضمّن الإصدار 1.1.0-alpha10 هذه التعديلات.
الميزات الجديدة
- تم إصدار الإصدار
androidx.camera:camera-video:1.1.0-alpha10كأول إصدار أولي رسمي من Video. هناك عدّة مشاكل معروفة سيتم إصلاحها في الإصدارات اللاحقة.
التغييرات في واجهة برمجة التطبيقات
- تمّت إضافة التعليق التوضيحي
@RequiresApi(21)إلى جميع فئات CameraX وتمّت إزالة minSdkVersion من AndroidManifest.xml. سيسمح ذلك بدمج camera-core بسهولة في التطبيقات التي تتضمّن minSdkVersion أقل من 21، ولكنها تريد استخدام مسارات الرموز البرمجية بشكل مشروط والتي تعتمد على واجهة برمجة التطبيقات 21 والإصدارات الأحدث. بالنسبة إلى أي تطبيق يتضمّن الإصدار 21 من حزمة minSdkVersion أو الإصدارات الأعلى، لا يتطلّب هذا التغيير اتّخاذ أي إجراء. (Ie7f2e، b/200599470)
إصلاح الأخطاء
- يتم طرح InitializationException ليتمكّن التطبيق من معالجة AssertionError الذي حدث عند إنشاء CameraCharacteristics بشكل سلس. (Ibec79)
الإصدار 1.1.0-alpha09
29 سبتمبر 2021
تم إصدار "androidx.camera:camera-camera2:1.1.0-alpha09" و"androidx.camera:camera-core:1.1.0-alpha09" و"androidx.camera:camera-lifecycle:1.1.0-alpha09". يتضمّن الإصدار 1.1.0-alpha09 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إزالة التعليق التوضيحي ExperimentalUseCaseGroup لأنّ واجهات برمجة التطبيقات لم تعُد تجريبية. (I01ef5)
إصلاح الأخطاء
- تم إصلاح المشكلة التي تؤدي إلى تمويه الصور التي يتم التقاطها
في وضع "
MAXIMIZE_QUALITY". (I173a9، b/193823892) - تم إصلاح مشكلة في هاتف Samsung Galaxy J5 تؤدي إلى توقّف الكاميرا عن العمل بعد التقاط صور باستخدام الفلاش في الوضع التلقائي أو وضع التشغيل في بيئة مظلمة (I3aab9)
- عند الحاجة إلى اقتصاص الصورة في ImageCapture، يتم ضغط الصورة الناتجة بعد الاقتصاص بمستوى جودة JPEG المحدّد وفقًا لوضع الالتقاط الذي تم ضبطه. إذا كان وضع الالتقاط هو
CAPTURE_MODE_MINIMIZE_LATENCY، ستكون جودة ضغط JPEG 95. إذا كان وضع الالتقاط هوCAPTURE_MODE_MAXIMIZE_QUALITY، ستكون جودة ضغط JPEG 100. (Ieb37c، b/142856426)
الإصدار 1.1.0-alpha08
18 أغسطس 2021
تم إصدار "androidx.camera:camera-camera2:1.1.0-alpha08" و"androidx.camera:camera-core:1.1.0-alpha08" و"androidx.camera:camera-lifecycle:1.1.0-alpha08". يتضمّن الإصدار 1.1.0-alpha08 هذه التعديلات.
الميزات الجديدة
- إضافة واجهة برمجة التطبيقات setOutputImageFormat لضبط تحليل الصور يمكن للمستخدم اختيار ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888 أو ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888. سيتم تلقائيًا اختيار ImageAnalysis.OUTPUT_IMAGE_FORMAT_YUV_420_888. (I7902d)
التغييرات في واجهة برمجة التطبيقات
- تمت إزالة التعليق التوضيحي ExperimentalUseCaseGroupLifecycle لأنّ واجهات برمجة التطبيقات لم تعُد تجريبية. (I17b85)
إصلاح الأخطاء
- تم إصلاح مشكلة سطوع شاشة المعاينة بشكل كبير على جهاز Huawei P20 Lite. تحدث هذه المشكلة فقط عند استخدام درجات دقة معيّنة خاصة في "المعاينة" مع قيمة تكبير كبيرة. (Idefce، b/192129158)
- تم إصلاح مشكلة عدم عمل الفلاش على بعض الأجهزة عند ضبط وضع الفلاش على FLASH_MODE_ON ثم التقاط الصور بعد ذلك بوقت قصير. (Ieb49b)
- تم حلّ المشكلة التي تؤدي إلى توقّف المعاينة لفترة من الوقت عند التقاط الصور في حال ربط VideoCapture وImageCapture وPreview. (I56197، b/193864120)
- يسمح هذا الإعداد لـ ImageAnalysis باختيار دقة أكبر من 1080p. يمكن لجهاز بمستوى LIMITED أو أعلى أن يتيح دقة بحجم RECORD لحالة الاستخدام ImageAnalysis عندما تكون مرتبطة بحالتَي الاستخدام Preview وImageCapture. في المقابل، يجب أن تكون درجة الدقة المحدّدة لـ ImageCapture هي نفسها درجة الدقة المحدّدة لـ RECORD. لاختيار درجة دقة بحجم RECORD بنجاح لـ ImageAnalysis، يجب ضبط درجة دقة مستهدَفة بحجم RECORD على كل من ImageCapture وImageAnalysis. يشير ذلك إلى أنّ التطبيق يفهم بوضوح المفاضلة ويفضّل أن تكون دقة ImageAnalysis أكبر بدلاً من أن تكون دقة ImageCapture هي MAXIMUM. للاطّلاع على تعريفات RECORD وMAXIMUM ومزيد من التفاصيل، يُرجى الانتقال إلى https://developer.android.com/reference/android/hardware/camera2/CameraDevice#regular-capture. يشير حجم RECORD إلى أقصى دقة تسجيل تتيحها الكاميرا، وفقًا لما يحدّده CamcorderProfile. يشير الحجم الأقصى إلى الحد الأقصى لدرجة دقة الإخراج في جهاز الكاميرا لهذا التنسيق أو الهدف من StreamConfigurationMap.getOutputSizes(int). (I1ee97، b/192911449)
- أضِف معلومات Exif إلى الصورة التي تم التقاطها. (I01ff0، b/193342619)
- في ImageCapture، يمكنك عرض معرّف الموارد المنتظم (URI) للصورة المحفوظة إذا كان موقع الحفظ هو "ملف". (Ib5b49، b/149241379)
- تم إصلاح مشكلة التقاط صور مظلمة باستخدام الفلاش على العديد من الأجهزة. (I4e510)
الإصدار 1.1.0-alpha07
21 يوليو 2021
تم إصدار "androidx.camera:camera-camera2:1.1.0-alpha07" و"androidx.camera:camera-core:1.1.0-alpha07" و"androidx.camera:camera-lifecycle:1.1.0-alpha07". يتضمّن الإصدار 1.1.0-alpha07 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة في هاتف Samsung Galaxy Note 5 حيث تتوقف الكاميرا عن العمل بعد التقاط صور باستخدام الفلاش في الوضع التلقائي أو وضع التشغيل في بيئة مظلمة (If6871)
- تم إصلاح مشكلة
YuvToJpegProcessorEOFException عند تفعيل وضع الإضافة وضبط وضعImageCapture#CAPTURE_MODE_MAX_QUALITY. (I538bd، b/192017012)
الإصدار 1.1.0-alpha06
30 يونيو 2021
تم إصدار "androidx.camera:camera-camera2:1.1.0-alpha06" و"androidx.camera:camera-core:1.1.0-alpha06" و"androidx.camera:camera-lifecycle:1.1.0-alpha06". يتضمّن الإصدار 1.1.0-alpha06 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- الترويج لواجهات برمجة التطبيقات التجريبية لتعويض درجة الإضاءة في camera-core (I08ee8)
- تمت إضافة واجهة برمجة التطبيقات isFocusMeteringSupported في CameraInfo التي تسمح للتطبيقات بالتحقّق مما إذا كان FocusMeteringAction المحدّد متوافقًا مع الكاميرا الحالية أم لا. (Ib45ae، b/188606490)
- تم عرض واجهة برمجة التطبيقات getResolutionInfo لتوفير معلومات الدقة لكل من Preview وImageCapture وImageAnalysis. (I2b613، b/188600718)
- تمت ترقية واجهات برمجة التطبيقات التجريبية التالية إلى واجهات برمجة تطبيقات رسمية: CameraXConfig.Builder#setAvailableCamerasLimiter() و CameraXConfig.Builder#setMinimumLoggingLevel() و CameraXconfig.Builder#setSchedulerHandler() و CameraXConfig#getAvailableCamerasLimiter() و CameraXConfig#getMinimumLoggingLevel() و CameraXConfig#getCameraExecutor() و CameraXConfig#getSchedulerHandler(). (I2ade2)
- تم عرض واجهة CameraProvider لتوفير إمكانية الوصول إلى مجموعة من الكاميرات. (I1a7b1)
- الترويج لواجهة برمجة التطبيقات UseCaseGroup التجريبية لكل من camera-core وcamera-lifecycle وcamera-video تمت إضافة
ViewPort#getLayoutDirectionوViewPort.Builder#setLayoutDirectionوViewPort.Builder#setScaleTypeلتخصيص إطار العرض. (I7cee8)
الإصدار 1.1.0-alpha05
2 يونيو 2021
تم إصدار "androidx.camera:camera-camera2:1.1.0-alpha05" و"androidx.camera:camera-core:1.1.0-alpha05" و"androidx.camera:camera-lifecycle:1.1.0-alpha05". يتضمّن الإصدار 1.1.0-alpha05 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إزالة صف واحد (
Camera2CameraFilter). نقترح اختيار الكاميرا من خلال CameraFilter واسترداد CameraCharacteristics أو غيرها من المعلومات ذات الصلة بـ Camera2 من خلال Camera2CameraInfo إذا لزم الأمر. (Ib887c) - أصبحت واجهات برمجة التطبيقات
ExperimentalCameraFilterالآن خارج المرحلة التجريبية وأصبحت واجهات برمجة تطبيقات رسمية. ويمكن استخدامها بدون OptIn مع تعليقات توضيحية. (I4bc94) - تمت إضافة واجهة برمجة تطبيقات لحالة الكاميرا يتم عرضها من خلال
CameraInfo#getCameraState(). (Ia86b4) - تمت إضافة واجهة برمجة التطبيقات التجريبية
CameraInfo#getCameraSelector()التي تعرض CameraSelector فريدًا للكاميرا (I77f9f)
إصلاح الأخطاء
- تم إصلاح المشكلة التي تمنع اكتمال ListenableFuture الذي تم عرضه في setZoomRatio وsetLinearZoom على بعض أجهزة Android 11 (I716d7)
- تسريع التبديل بين الكاميرات وتقليل معدّل حدوث الأخطاء في جهاز الكاميرا (I34c99)
- تم استبدال ExperimentalUseCaseGroupLifecycle بـ ExperimentalUseCaseGroup. (I3b2ef، b/159033688)
الإصدار 1.1.0-alpha04
21 أبريل 2021
تم إصدار "androidx.camera:camera-camera2:1.1.0-alpha04" و"androidx.camera:camera-core:1.1.0-alpha04" و"androidx.camera:camera-lifecycle:1.1.0-alpha04". يتضمّن الإصدار 1.1.0-alpha04 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تسرُّب الذاكرة الناتجة عن وصول سلاسل محادثات متعددة إلى المجموعة نفسها في الوقت نفسه. قد يؤدي تسرّب الذاكرة إلى الاحتفاظ بـ Activity أو Fragment من خلال مثيل Preview. (I7b4b8)
- تم استبدال التعليق التوضيحي
@Experimentalبـ@RequiresOptInفي واجهات برمجة التطبيقات التجريبية. لاستدعاء واجهات برمجة التطبيقات التجريبية، استخدِمandroidx.annotation.OptInبدلاً منandroidx.annotation.experimental.UseExperimentalالتي تم إيقافها نهائيًا. (Iff226) - تم إصلاح مشكلة التقاط صور باهتة على هاتف Samsung Galaxy S7 عند استخدام ميزة ImageCapture مع تفعيل الفلاش أو ضبطه على الوضع التلقائي. (I30001)
- تمت إضافة واجهة برمجة تطبيقات CameraState التي سيتم عرضها من خلال CameraInfo. (I75392)
الإصدار 1.1.0-alpha03
24 مارس 2021
تم إصدار "androidx.camera:camera-camera2:1.1.0-alpha03" و"androidx.camera:camera-core:1.1.0-alpha03" و"androidx.camera:camera-lifecycle:1.1.0-alpha03". يتضمّن الإصدار 1.1.0-alpha03 هذه التعديلات.
إصلاح الأخطاء
- تنسيق الإخراج JPEG لـ "
ImageCapture#OnImageCapturedCallback" عند تفعيل أوضاع "الإضافات" (I0d7b1) - تم إصلاح مشكلة تعذُّر الإعداد على أجهزة UMIDIGI BISON (I57d9e، b/180818665)
- تم إصلاح مشكلة تمدّد المعاينة في PreviewView على أجهزة Samsung A3. (Iacb30، b/180121821)
الإصدار 1.1.0-alpha02
24 فبراير 2021
تم إصدار "androidx.camera:camera-camera2:1.1.0-alpha02" و"androidx.camera:camera-core:1.1.0-alpha02" و"androidx.camera:camera-lifecycle:1.1.0-alpha02". يتضمّن الإصدار 1.1.0-alpha02 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة واجهة برمجة التطبيقات
ProcessCameraProvider.getAvailableCameraInfos()لاسترداد المعلومات مباشرةً حول الكاميرات المتاحة، سواء كانت جميع كاميرات الجهاز أو تلك التي تم اختيارها من خلالCameraSelectorالمقدَّمة فيCameraXConfig.Builder.setAvailableCamerasLimiter(CameraSelector). (Ieac08)
إصلاح الأخطاء
- تحاول واجهة CameraX الآن فرض فتح الكاميرا في المحاولة الأولى، وقد يؤدي ذلك إلى استيلاء واجهة CameraX على الكاميرا من برامج الكاميرا الأخرى عندما يكون لتطبيقها أولوية أعلى. (Iab069، b/175820568)
- تم إصلاح مشكلة تعذُّر اختبار Robolectric عند استخدام setAvailableCamerasLimiter في CameraXConfig. (Ice307)
- يرصد هذا التغيير الاستثناء عندما تصل قائمة انتظار الصور إلى الحد الأقصى في ImageAnalysis. لذلك، بدلاً من تعطُّل التطبيق، قد تلاحظ أنّ حالات الاستخدام الأخرى متوقفة أو بطيئة، مثل المعاينة المتوقفة أو البطيئة. (Ic12da، b/175851631)
- تم إصلاح ExtensionsErrorListener للإبلاغ عن الأخطاء عند ربط Preview أو ImageCapture فقط. (I5ae39)
- تم إصلاح مشكلة تراجع أداء ImageCapture من خلال إزالة عملية التحقّق من الموقع الجغرافي المحفوظ للصورة قبل التقاطها. بعد إجراء هذا التغيير، إذا كانت وجهة الحفظ غير صالحة، سيستغرق الحصول على استجابة الفشل وقتًا أطول لأنّه سيحاول حفظ الصورة بعد التقاطها. (I1fd4e، b/177061560)
- تم إصلاح مشكلة تراجُع أداء ImageCapture مع OutputFileOptions من النوع "ملف". (I5164a، b/177061560)
- تم تعديل المستندات لتنصح بعدم استخدام
ProcessCameraProvider.configureInstance(...)من رمز المكتبة. (Ib8a9f)
الإصدار 1.1.0-alpha01
27 يناير 2021
تم إصدار "androidx.camera:camera-camera2:1.1.0-alpha01" و"androidx.camera:camera-core:1.1.0-alpha01" و"androidx.camera:camera-lifecycle:1.1.0-alpha01". يتضمّن الإصدار 1.1.0-alpha01 هذه التعديلات.
إصلاح الأخطاء
- تم تضمين حل بديل لبيانات الصور التالفة المتقطعة في ملفات JPEG على الكاميرا الخلفية SM-G930T. (I52001، b/159831206)
- تم إصلاح مشكلة
IllegalArgumentExceptionالتي حدثت عندما كانت جميع الأحجام المتوافقة مع المعاينة أصغر من 640×480 وكان حجم العرض أكبر من 640×480. (I2a63c، b/150506192) - أصبحت الموارد في المكتبات التي لا تتضمّن موارد عامة معلَن عنها صراحةً (مثل public.xml) خاصة بشكل تلقائي. (Ia1dcc، b/170882230)
الإصدار 1.0.2 من Camera-Camera2 وCamera-Core وCamera-Lifecycle
الإصدار 1.0.2
29 سبتمبر 2021
تم إصدار "androidx.camera:camera-camera2:1.0.2" و"androidx.camera:camera-core:1.0.2" و"androidx.camera:camera-lifecycle:1.0.2". يتضمّن الإصدار 1.0.2 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح المشكلة التي تؤدي إلى تمويه الصور التي يتم التقاطها
في وضع "
MAXIMIZE_QUALITY". (I173a9، b/193823892) - تم إصلاح مشكلة كانت تؤدي إلى ظهور الصورة الملتقَطة باستخدام الفلاش مظلمة على العديد من الأجهزة. (I4e510)
الإصدار 1.0.1 من Camera-Camera2 وCamera-Core وCamera-Lifecycle
الإصدار 1.0.1
21 يوليو 2021
تم إصدار "androidx.camera:camera-camera2:1.0.1" و"androidx.camera:camera-core:1.0.1" و"androidx.camera:camera-lifecycle:1.0.1". يتضمّن الإصدار 1.0.1 هذه التعديلات.
إصلاح الأخطاء
تم إصلاح المشكلة المتمثّلة في أنّ
ListenableFutureالذي تم عرضه فيsetZoomRatioوsetLinearZoomلا يمكن إكماله على بعض أجهزة Android 11 (I716d7)تم إصلاح المشكلة المتمثّلة في توقّف الكاميرا عند حالة الإغلاق على بعض الأجهزة وظهور معاينة سوداء. (I34c99)
الإصدار 1.0.0 من Camera-Camera2 وCamera-Core وCamera-Lifecycle
الإصدار 1.0.0
5 مايو 2021
تم إصدار "androidx.camera:camera-camera2:1.0.0" و"androidx.camera:camera-core:1.0.0" و"androidx.camera:camera-lifecycle:1.0.0". يتضمّن الإصدار 1.0.0 هذه التعديلات.
الميزات الرئيسية في الإصدار 1.0.0
- تتيح مكتبة CameraX استخدام المعاينة والتقاط الصور والتحليل
- تدير مكتبة CameraX مراحل نشاط الكاميرا من خلال واجهة برمجة تطبيقات سهلة الاستخدام
- تهدف CameraX إلى توفير طبقة توافق تعمل على حلّ العديد من المشاكل في منظومة كاميرا Android المتكاملة
المشاكل المعروفة
- يُرجى الاطّلاع على قائمة المشاكل المعروفة
الإصدار 1.0.0-rc05
21 أبريل 2021
تم إصدار "androidx.camera:camera-camera2:1.0.0-rc05" و"androidx.camera:camera-core:1.0.0-rc05" و"androidx.camera:camera-lifecycle:1.0.0-rc05". يتضمّن الإصدار 1.0.0-rc05 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة التقاط صور باهتة على هاتف Samsung Galaxy S7 عند استخدام ميزة ImageCapture مع تفعيل الفلاش أو ضبطه على الوضع التلقائي. (I30001)
الإصدار 1.0.0-rc04
24 مارس 2021
تم إصدار "androidx.camera:camera-camera2:1.0.0-rc04" و"androidx.camera:camera-core:1.0.0-rc04" و"androidx.camera:camera-lifecycle:1.0.0-rc04". يتضمّن الإصدار 1.0.0-rc04 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تعذُّر الإعداد على أجهزة UMIDIGI BISON (I57d9e، b/180818665)
الإصدار 1.0.0-rc03
24 فبراير 2021
تم إصدار "androidx.camera:camera-camera2:1.0.0-rc03" و"androidx.camera:camera-core:1.0.0-rc03" و"androidx.camera:camera-lifecycle:1.0.0-rc03". يتضمّن الإصدار 1.0.0-rc03 هذه التعديلات.
إصلاح الأخطاء
- يُرجى إصلاح خطأ التنسيق في مستند
ProcessCameraProvider#getInstance - تم إصلاح مشكلة تعذُّر اختبار Robolectric عند استخدام setAvailableCamerasLimiter في CameraXConfig.
- تم إصلاح مشكلة تراجع أداء ImageCapture من خلال إزالة عملية التحقّق من الموقع الجغرافي المحفوظ للصورة قبل التقاطها. بعد إجراء هذا التغيير، إذا كانت وجهة الحفظ غير صالحة، سيستغرق الحصول على استجابة الفشل وقتًا أطول لأنّه سيحاول حفظ الصورة بعد التقاطها
- يرصد هذا التغيير الاستثناء عندما تصل قائمة انتظار الصور إلى الحد الأقصى في ImageAnalysis. لذلك، بدلاً من تعطُّل التطبيق، قد تلاحظ أنّ حالات الاستخدام الأخرى متوقفة أو بطيئة، مثل المعاينة المتوقفة أو البطيئة.
- تم تضمين حل بديل لبيانات الصور التالفة المتقطعة في ملفات JPEG على الكاميرا الخلفية SM-G930T. (I52001، b/159831206)
- يرصد هذا التغيير الاستثناء عندما تصل قائمة انتظار الصور إلى الحد الأقصى في ImageAnalysis. لذلك، بدلاً من تعطُّل التطبيق، قد تلاحظ أنّ حالات الاستخدام الأخرى متوقفة أو بطيئة، مثل المعاينة المتوقفة أو البطيئة. (Ic12da، b/175851631)
- تم إصلاح مشكلة تعذُّر اختبار Robolectric عند استخدام setAvailableCamerasLimiter في CameraXConfig. (Ice307)
- تم إصلاح مشكلة تراجع أداء ImageCapture من خلال إزالة عملية التحقّق من الموقع الجغرافي المحفوظ للصورة قبل التقاطها. بعد إجراء هذا التغيير، إذا كانت وجهة الحفظ غير صالحة، سيستغرق الحصول على استجابة الفشل وقتًا أطول لأنّه سيحاول حفظ الصورة بعد التقاطها. (I1fd4e، b/177061560)
- تم إصلاح مشكلة تراجُع أداء ImageCapture مع OutputFileOptions من النوع "ملف". (I5164a، b/177061560)
الإصدار 1.0.0-rc02
27 يناير 2021
تم إصدار "androidx.camera:camera-camera2:1.0.0-rc02" و"androidx.camera:camera-core:1.0.0-rc02" و"androidx.camera:camera-lifecycle:1.0.0-rc02". يتضمّن الإصدار 1.0.0-rc02 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة IllegalArgumentException التي حدثت عندما كانت جميع الأحجام المتوافقة مع المعاينة أصغر من 640×480 وكان حجم العرض أكبر من 640×480. (b/150506192)
تحديد عدد محاولات إعادة فتح الكاميرا عند محاولة حلّ بعض المشاكل عند فتح الكاميرا، لن تحاول واجهة برمجة التطبيقات CameraX إعادة فتح الكاميرا إلى أجل غير مسمى، بل ستتوقف بعد إعادة المحاولة لمدة 10 ثوانٍ.I435d2
تم إصلاح مشكلة
IllegalArgumentExceptionالتي حدثت عندما كانت جميع الأحجام المتوافقة مع المعاينة أصغر من 640×480 وكان حجم العرض أكبر من 640×480. (I2a63c، b/150506192)
الإصدار 1.0.0-rc01
16 ديسمبر 2020
تم إصدار "androidx.camera:camera-camera2:1.0.0-rc01" و"androidx.camera:camera-core:1.0.0-rc01" و"androidx.camera:camera-lifecycle:1.0.0-rc01". يتضمّن الإصدار 1.0.0-rc01 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تم تغيير CameraFilter وCamera2Filter لاستخدام CameraInfo. (I6883d)
- تمت إضافة الفئة التجريبية Camera2CameraControl للسماح بالتشغيل التفاعلي مع واجهات برمجة تطبيقات Camera2 بشكل ديناميكي. (I45cf3)
- تمت إعادة تسمية Camera2CameraInfo#fromCameraInfo إلى #from. (Ia2bd6)
- تمت إضافة واجهة برمجة تطبيقات تجريبية setAvailableCamerasLimiter إلى CameraXConfig للسماح للتطبيقات بتحسين وقت استجابة الإعداد من خلال تجنُّب إعداد الكاميرات غير المستخدَمة. (I6cf88)
- تمت إضافة الطريقة التجريبية
CameraXConfig.Builder#setMinimumLoggingLevel()للسماح بضبط الحد الأدنى لمستوى التسجيل في سجلّات CameraX. في حال عدم ضبطه، يتم ضبطه تلقائيًا علىLog#DEBUG. (Ic3245)
إصلاح الأخطاء
- تم تضمين حل بديل لبيانات الصور التالفة المتقطعة في ملفات JPEG على الكاميرا الخلفية SM-G930V. (I5aca5، b/159831206)
- تم إصلاح المشكلة المتمثّلة في عدم الحصول على نتائج عند التقاط الصور في حال تفعيل الفلاش دائمًا أو تفعيله في بيئة مظلمة على أجهزة Samsung SM-A716. (If98b2، b/172036589)
- تم إصلاح المشكلة المتمثّلة في تعذُّر إيقاف المعاينة من خلال طلب
Preview.setSurfaceProvider(null). (I3ac18) - تم إصلاح مشكلة الاتجاه عند التقاط صور بنسبة عرض إلى ارتفاع 4:3 على بعض الأجهزة. (I0e3fb، b/171492111)
الإصدار 1.0.0-beta12 من Camera Camera2 وCore وLifecycle
11 تشرين الثاني (نوفمبر)، 2020
تم إصدار "androidx.camera:camera-camera2:1.0.0-beta12" و"androidx.camera:camera-core:1.0.0-beta12" و"androidx.camera:camera-lifecycle:1.0.0-beta12". يتضمّن الإصدار 1.0.0-beta12 هذه التعديلات.
إصلاح الأخطاء
- تم إيقاف الفلاش التلقائي على أجهزة Samsung A3 لإصلاح العطل عند التقاط صورة باستخدام وضع التعريض التلقائي للفلاش على أجهزة Samsung A3. (Ia5fe3، b/157535165)
- تم إصلاح مشكلة تمدُّد المعاينة على أجهزة Nexus 4 التي تعمل بنظام التشغيل Android L (مستويَي واجهة برمجة التطبيقات 21 و22). (I4d407، b/158749159)
- لم يعُد تنفيذ الصنف الأساسي
OnImageCapturedCallback#onCaptureSuccessيغلق الصورة. وذلك لمنع حدوث سلوك غير متوقَّع للمطوّرين. يجب ألا يعتمد المطوّرون على super.onCaptureSuccess لإغلاق الصورة. (Ifbf9c) - تم إيقاف صيغة androidx من التعليق التوضيحي Experimental نهائيًا لتوفير التكافؤ مع Kotlin. تم استبداله بالتعليق التوضيحي RequiresOptIn، وتم تعديل أداة linter التي تواجه Java لتتوافق مع كل من التعليق التوضيحي الجديد في Kotlin ومتغيّر androidx الجديد. (I52495، b/151331381)
الإصدار 1.0.0-beta11 من Camera-Camera2
14 أكتوبر 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta11. يتضمّن الإصدار 1.0.0-beta11 هذه التعديلات.
الميزات الجديدة
- يتيح هذا الإصدار استخدام واجهة برمجة تطبيقات Android 11
CONTROL_ZOOM_RATIOللتكبير على أجهزة Android 11 أو الإصدارات الأحدث التي تحتوي علىCONTROL_ZOOM_RATIO_RANGEصالح. (I62cc6)
إصلاح الأخطاء
- تم إصلاح مشكلة NumberFormatException التي حدثت عندما يكون معرّف الكاميرا غير صحيح. (Ib2228)
- تم تحسين وقت استجابة إعداد CameraX و bindToLifecycle (I61dc5)
- لا يتطلّب إنشاء UseCases إكمال عملية إعداد CameraX. يتم ضبط جميع الإعدادات الخاصة بالتنفيذ على UseCase بعد ربطها بمثيل Camera، وهو
ProcessCameraProvider.bindToLifecycle()لواجهة برمجة التطبيقات العامة. (Ia5411) - ستعرض الدالة
<UseCase>.getTargetRotation()القيمةSurface.ROTATION_0إذا تم استدعاؤها قبل إرفاقها بمثيل Camera، ما لم يتم ضبط targetRotation على Builder أو UseCase. (I80fcd)
الإصدار 1.0.0-beta11 من Camera-Core
14 أكتوبر 2020
تم طرح androidx.camera:camera-core:1.0.0-beta11. يتضمّن الإصدار 1.0.0-beta11 هذه التعديلات.
الميزات الجديدة
- تتيح هذه الميزة استخدام واجهة برمجة تطبيقات Android 11 CONTROL_ZOOM_RATIO للتكبير على أجهزة Android 11 أو الإصدارات الأحدث التي تحتوي على CONTROL_ZOOM_RATIO_RANGE صالح. (I62cc6)
إصلاح الأخطاء
- تم إصلاح مشكلة NumberFormatException التي حدثت عندما كان معرّف الكاميرا غير صحيح. (Ib2228)
- لا يتطلّب إنشاء UseCases إكمال عملية إعداد CameraX. يتم ضبط جميع الإعدادات الخاصة بالتنفيذ على UseCase بعد ربطها بمثيل Camera، وهو
ProcessCameraProvider.bindToLifecycle()لواجهة برمجة التطبيقات العامة. (Ia5411) - ستعرض الدالة
<UseCase>.getTargetRotation()القيمةSurface.ROTATION_0إذا تم استدعاؤها قبل إرفاقها بمثيل Camera، ما لم يتم ضبط targetRotation على Builder أو UseCase. (I80fcd)
الإصدار 1.0.0-beta10 من Camera-Core
23 سبتمبر 2020
تم طرح androidx.camera:camera-core:1.0.0-beta10. يتضمّن الإصدار 1.0.0-beta10 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح خطأ في التحقّق من صحة وجهة حفظ الملفات لالتقاط الصور (I8c565، b/167697553)
الإصدار 1.0.0-beta10 من Camera-Camera2
23 سبتمبر 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta10. يتضمّن الإصدار 1.0.0-beta10 هذه التعديلات.
إصلاح الأخطاء
- إصدار متوافق مع Camera-Core 1.0.0-beta10
الإصدار 1.0.0-beta09 من Camera-Camera2
16 أيلول (سبتمبر) 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta09. يتضمّن الإصدار 1.0.0-beta09 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- بدلاً من توفير طرق ثابتة، تأخذ Camera2CameraInfo مثيل CameraInfo عند إنشائها لاسترداد المعلومات ذات الصلة بـ Camera2 منها. (I5b844)
إصلاح الأخطاء
- تم إصلاح مشكلة نسبة العرض إلى الارتفاع المستهدَفة على الأجهزة اللوحية. يجب اختيار حجم 16:9 عندما تكون نسبة العرض إلى الارتفاع المستهدَفة مضبوطة على
AspectRatio.RATIO_16_9. (Ib7fcf، b/151969438) - يجب عرض
InitializationExceptionليتمكّن التطبيق من معالجة خطأ AssertionError الذي حدث عند إنشاء CameraCharacteristics. (I89c8c، b/160524721) - تمت إضافة واجهات تجريبية لـ ExposureCompensation (If96c7)
الإصدار 1.0.0-beta09 من Camera-Core
16 أيلول (سبتمبر) 2020
تم طرح androidx.camera:camera-core:1.0.0-beta09. يتضمّن الإصدار 1.0.0-beta09 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تم إصلاح الخطأ الذي تسبَّب في وضع علامة على إطار العرض بأنّه غير فارغ في UseCaseGroup. يجب أن يتمكّن المطوّرون من إنشاء إطار عرض بدون ضبطه. (Ie3d2e)
- تمت إضافة واجهات تجريبية لـ
ExposureCompensation(If96c7) - السماح بتدوير الهدف عشوائيًا في "المعاينة" يتم احتساب معلومات التحويل وإرجاعها إلى المستخدم بشكل فوري من خلال دالة استدعاء جديدة من النوع
TranformationInfoListener. (I21470)
إصلاح الأخطاء
- تم إصلاح مشكلة عدم إيقاف الفلاش على بعض الأجهزة، والتي تحدث عند ضبط وضع الفلاش على
FLASH_MODE_ONلالتقاط صورة، ثم تغييره إلىFLASH_MODE_OFFعند تشغيل الفلاش. تظهر المشكلة كما لو كان وضع المصباح مفعَّلاً. (Ib4451، b/162568128) - تم فرض استخدام TextureView على PreviewView في حال تفعيل تأثير الإضافة، وإذا كان تنفيذ مكتبة المورّد يتطلّب إجراء عملية خاصة على مساحة العرض الناتجة. (I0c3cc)
- تم إصلاح تسرُّب النشاط/الجزء عند تمرير سياق النشاط/الجزء إلى
ProcessCameraProvider.getInstance(Context).
المشاكل المعروفة
- عند ضبط ViewPort، قد يكون مستطيل الاقتصاص في ImageCapture غير صحيح على الأجهزة التي تدوّر مخزن الصور المؤقت في HAL. سيتم حلّ هذه المشكلة في الإصدار التالي.
الإصدار 1.0.0-beta08 من Camera-Camera2
19 أغسطس 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta08. يتضمّن الإصدار 1.0.0-beta08 هذه التعديلات.
إصلاح الأخطاء
- تم تحسين bindToLifecycle ليعمل بسرعة على سلسلة التعليمات الرئيسية. (I1d57e)
- يستخدم DisplayOrientedMeteringPointFactory مثيل CameraInfo بدلاً من CameraSelector، لذا هناك ربط مباشر بالكاميرا التي سينشئ المصنع نقاطًا لها. جميع الفئات التي تستخدم DisplayOrientedMeteringPointFactory تستخدم أيضًا مثيل CameraInfo بدلاً من CameraSelector. (I400c1)
- تم إصلاح مشكلة تجميع حجم نسبة العرض إلى الارتفاع للدقة التلقائية، حيث يتم اختيار حجم mod16 بنسبة 16:9 (864x480) عندما يكون إعداد الدقة المستهدفة 2016x1080 وهناك حجم آخر بنسبة 16:9 (1920x1080) متاح. (I53167، b/159363774)
- تم إصلاح مشكلة CameraControl التي تمنع عمله بسبب حالة السباق (I2279f، b/152333890، b/160714166)
الإصدار 1.0.0-beta08 من Camera-Core
19 أغسطس 2020
تم طرح androidx.camera:camera-core:1.0.0-beta08. يتضمّن الإصدار 1.0.0-beta08 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تستخدم الدالة
DisplayOrientedMeteringPointFactoryمثيلCameraInfoبدلاً منCameraSelector، لذا هناك ربط مباشر بالكاميرا التي ستنشئ الدالة نقاطًا لها. جميع الفئات التي تستخدمDisplayOrientedMeteringPointFactoryتستخدم أيضًا مثيلCameraInfoبدلاً منCameraSelector. (I400c1)
إصلاح الأخطاء
- بالنسبة إلى التقاط الصور، يمكنك استبدال علامة "القلب أفقيًا" في البيانات الوصفية استنادًا إلى اتجاه الكاميرا. (I28499)
- من المفترض ألا يتعطّل الإعداد بعد الآن عند استخدام Context
لا يعرض عنصر Application من
Context.getApplicationContext(). (I3d3c9، b/160817073)
الإصدار 1.0.0-beta07 من Camera-Camera2
22 يوليو 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta07. يتضمّن الإصدار 1.0.0-beta07 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تمدّد المعاينة على جهاز Android 5.0 القديم. (I0c03a)
- تم استبعاد بعض الأحجام المتوافقة مع تنسيق JPEG والتي قد تؤدي إلى حدوث مشكلة في WYSIWYG على بعض الأجهزة. (Ib5128)
الإصدار 1.0.0-beta07 من Camera-Core
22 يوليو 2020
تم طرح androidx.camera:camera-core:1.0.0-beta07. يتضمّن الإصدار 1.0.0-beta07 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- يمكنك دمج أسلوب الملاءمة "
FIT_CENTER" و"FIT_START" و"FIT_END" مع "FIT".FITيعني أنّ مستطيل الاقتصاص الذي يتم عرضه سيكون أكبر مستطيل ممكن لأداة الاستشعار. (Ia73c3) - يتم ضبط مستطيل اقتصاص المعاينة من خلال إطار العرض. يجب أن تظهر للمستخدمين النهائيين المنطقة التي يغطيها مستطيل الاقتصاص فقط. (I142a4)
إصلاح الأخطاء
- تم إصلاح مشكلة تمدّد المعاينة على جهاز Android 5.0 القديم. (I0c03a)
- تم إصلاح مشكلة استثناء
ConcurrentModificationExceptionعند إلغاء ربط حالات الاستخدام. (I371c0)
الإصدار 1.0.0-beta06 من Camera-Camera2
24 يونيو 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta06. يتضمّن الإصدار 1.0.0-beta06 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة واجهات تجريبية لفلترة الكاميرات حسب معرّف الكاميرا وخصائصها. (I28f61)
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثّلة في تعذُّر تركيز startFocusAndMetering بنجاح على Samsung Galaxy S7. (If3be7، b/159039233)
- تم إصلاح مشكلة عدم إمكانية إغلاق الكاميرا بعد الخروج من التطبيق. (I7a7b3)
- تم إصلاح مشكلة توقُّف المعاينة عند تبديل الكاميرا بشكل متكرر عند استخدام تنفيذ SurfaceView في PreviewView (I920ce)
- ستفشل الدالة
CameraControl#startFocusAndMeteringإذا لم يتمكّن أي من عناصر MeteringPoint المحدّدة من إنشاء مستطيلات قياس صالحة. (Id53ce)
الإصدار 1.0.0-beta06 من Camera-Core
24 يونيو 2020
تم طرح androidx.camera:camera-core:1.0.0-beta06. يتضمّن الإصدار 1.0.0-beta06 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة واجهات تجريبية لفلترة الكاميرات حسب معرّف الكاميرا وخصائصها. (I28f61)
إصلاح الأخطاء
- يمكن الآن ضبط CameraX باستخدام
ProcessCameraProvider#configureInstance()قبل استدعاءProcessCameraProvider#getInstance(). يتيح ذلك تخصيصCameraXConfigبدون الحاجة إلى تنفيذCameraXConfig.Providerفي فئة التطبيق. (Ia1a8d) - ستفشل الدالة
CameraControl#startFocusAndMeteringإذا لم يتمكّن أي من عناصر MeteringPoint المحدّدة من إنشاء مستطيلات قياس صالحة. (Id53ce)
الإصدار 1.0.0-beta05 من Camera-Camera2
10 يونيو 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta05. يتضمّن الإصدار 1.0.0-beta05 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تعطُّل التطبيق عند بدء تشغيله أثناء إعداد CameraX عندما يكون الهاتف في وضع "عدم الإزعاج". يحتوي
InitializationExceptionعلىCameraUnavailableExceptionسيتم ضبطه علىListenableFutureلنتيجة الإعداد بدلاً من تعطُّل التطبيق. (I9909a، b/149413835) - تم إصلاح العطل الذي يحدث عند استدعاء
startFocusAndMeteringعلى الأجهزة التي تكون قيمةCONTROL_AF_STATEفيها فارغة. (Ife55e، b/157084254)
الإصدار 1.0.0-beta05 من Camera-Core
10 يونيو 2020
تم طرح androidx.camera:camera-core:1.0.0-beta05. يتضمّن الإصدار 1.0.0-beta05 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تم إصلاح مشكلة تعطُّل التطبيق عند بدء تشغيله أثناء إعداد CameraX عندما يكون الهاتف في وضع "عدم الإزعاج". سيتم ضبط
InitializationExceptionيحتوي علىCameraUnavailableExceptionعلىListenableFutureلنتيجة الإعداد بدلاً من تعطُّل التطبيق. (I9909a، b/149413835)
إصلاح الأخطاء
- تم تعديل مستندات javadocs لكل من
setTargetResolutionوsetTargetRotation. (Iae16f)
الإصدار 1.0.0-beta04 من Camera-Camera2
27 مايو 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta04. يتضمّن الإصدار 1.0.0-beta04 هذه التعديلات.
إصلاح الأخطاء
- تم السماح للتطبيقات بضبط أي مَعلمات لطلبات التقاط الصور في Camera2 من خلال
Camera2Interopبدون حدوث عطل. يُرجى العِلم أنّه في حال حدوث مشاكل نتيجة إلغاء المَعلمات، لا يمكن ضمان الثبات والسلوك عند إلغاء المَعلمات باستخدام Camera2Interop. (Ibe5a1، b/149103700) - تم إصلاح مشكلة الإعداد التلقائي عند استخدام تطبيق على جهاز يستخدم لغة زائفة. (I3bef3، b/154767663)
- تم تحويل سجلّ الأخطاء المتعلّق بحالة الاستخدام المنفصلة إلى سجلّ تصحيح الأخطاء في Camera2CameraImpl. (I1a565، b/154422490)
- تم إصلاح المشكلة المتمثّلة في التقاط صورة داكنة جدًا في بعض الأحيان على الرغم من تشغيل الفلاش. (I5d9fa، b/149729613)
- تم إصلاح الخطأ الذي كان يمنع إرجاع المخزن المؤقت في
ImageProxyمنImageCapture(I0c455، b/153249512) - تم إصلاح المشاكل التي تحدث عند ربط ImageCapture فقط: (1) تعذُّر التقاط الصور باستخدام MAX_QUALITY، و(2) إنشاء جودة صورة سيئة بسبب عدم عمل التعريض التلقائي. (I17782، b/145326998)
- تم تحسين موثوقية إعادة فتح الكاميرا عندما يتم فصل CameraX من خلال عملية أخرى أو مسار رمز يسرق الكاميرا (I1fbc3، b/153714651)
الإصدار 1.0.0-beta04 من Camera-Core
27 مايو 2020
تم طرح androidx.camera:camera-core:1.0.0-beta04. يتضمّن الإصدار 1.0.0-beta04 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تضيف واجهة برمجة تطبيقات تجريبية، وهي
CameraXConfig.Builder#setSchedulerHandler()، لضبط المعالج المستخدَم داخليًا من خلال حزمة كاميرا CameraX. من المفترض أن تتيح واجهة برمجة التطبيقات الجديدة هذه معCameraXConfig.Builder#setCameraExecutor()التحكّم الكامل في سلاسل المحادثات التي تستخدمها حزمة كاميرا CameraX. (I7bf32، b/121160431)
إصلاح الأخطاء
- يتم إصلاح العطل في
ImageAnalysisحيث يتم الوصول إلىImageProxyبعد إغلاقImageReaderProxy. يؤدي ذلك أيضًا إلى إغلاق جميعImageProxyالتي تلقّاهاAnalyzerقبل إغلاقImageReaderProxy. (I4b299، b/145956416، b/154155377، b/156357269) - تمّت إزالة المَعلمة
CameraInfoمنPreviewView#createSurfaceProvider()، وتستردّهاPreviewViewالآن داخليًا منSurfaceRequest. (If18f0، b/154652477) - تم إصلاح مشكلة الإعداد التلقائي عند استخدام تطبيق على جهاز يستخدم لغة زائفة. (I3bef3، b/154767663)
- تم إصلاح المشكلة المتمثّلة في التقاط صورة داكنة جدًا في بعض الأحيان على الرغم من تشغيل الفلاش. (I5d9fa، b/149729613)
- تم إصلاح مشكلة في
ImageAnalysisحيث أدّت الطلبات المتعدّدة إلى setAnalyzer/clearAnalyzer إلى عدم تلقّي المحلّل صورًا لتحليلها. (I6169f، b/151605317، b/153514544) - تم إصلاح الخطأ الذي كان يمنع إرجاع المخزن المؤقت في
ImageProxyمنImageCapture(I0c455، b/153249512) - تم إصلاح مشكلة عدم اختيار الكاميرا الأولى دائمًا في القائمة المتوافقة من
CameraManagerلاستخدامها. (I4c624، b/153418028) - تم إصلاح مشكلة التعطُّل المتقطّع الناتجة عن عدم تحرير الإعداد
Preview.SurfaceProviderللسطح المطلوب سابقًا. “java.lang.IllegalStateException: Camera surface session should only fail with request cancellation”(I8e4e7، b/155936225)
الإصدار 1.0.0-beta03 من Camera-Camera2
نيسان (أبريل) 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta03. يتضمّن الإصدار 1.0.0-beta03 هذه التعديلات.
إصلاح الأخطاء
- إصلاحات لدعم إصدار
camera-core
الإصدار 1.0.0-beta03 من Camera-Core
نيسان (أبريل) 2020
تم طرح androidx.camera:camera-core:1.0.0-beta03. يتضمّن الإصدار 1.0.0-beta03 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تراجُع الأداء من الإصدار beta03 حيث يؤدي استدعاء
bindToLifecycle()بدونUseCaseإلى حدوث استثناء. وقد منع ذلك استردادCameraبدون ربطUseCase.
الإصدار 1.0.0-beta02 من Camera-Camera2
1 أبريل 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح
ImageInfo.getRotationDegrees()منImageProxyالذي تم إنشاؤه بواسطةImageCaptureليتطابق مع قيمة دوران اتجاه EXIF. (Id4281، b/150802561) - لم يعُد الترتيب الصريح لتبعيات CameraX ضمن
build.gradleمطلوبًا لاستخدام عملية التنفيذ التلقائية لـ CameraX/Camera2. في الحالات التي يكون فيها تعريف التبعيات الصارمة مطلوبًا، يمكن الآن تضمين جميع تبعيات CameraX في ملف الإصدار. (I46e88) - تم إصلاح مشكلة
IllegalArgumentExceptionالتي تحدث على الأجهزة التي يقلّ حجم شاشتها عن 640×480. (Ife3f2، b/150506192) - تم إصلاح
bindToLifecycleبحيث لا يتم تعديل UseCase إلا إذا تم ربطه بنجاح. في السابق، عند استدعاءbindToLifecycleلإجراء عمليات حسابية للدقة، كان يتم تعديل UseCase. لم يعُد من الضروري الآن تعديل UseCase لإجراء العمليات الحسابية (I78d9e)
الإصدار 1.0.0-beta02 من Camera-Core
1 أبريل 2020
تم طرح androidx.camera:camera-core:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح
ImageInfo.getRotationDegrees()منImageProxyالذي تم إنشاؤه بواسطةImageCaptureليتطابق مع قيمة دوران اتجاه EXIF. (Id4281، b/150802561) - تم إصلاح
bindToLifecycleبحيث لا يتم تعديل UseCase إلا إذا تم ربطه بنجاح. في السابق، عند استدعاءbindToLifecycleلإجراء عمليات حسابية للدقة، كان يتم تعديل UseCase. لم يعُد من الضروري الآن تعديل UseCase لإجراء العمليات الحسابية (I78d9e). - تم إصلاح مشكلة عدم تحديث جلسة الالتقاط لحالة استخدام
Previewعند تغيير سطح المعاينة بعد طلبPreview.setSurfaceProvider()أكثر من مرة.
الإصدار 1.0.0-beta01 من Camera-Camera2
26 فبراير 2020
تم طرح androidx.camera:camera-camera2:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.
إصلاح الأخطاء
- تمت إعادة تسمية
SurfaceRequest.setSurface(Surface)إلىSurfaceRequest.provideSurface(Surface)، وSurfaceRequest.setWillNotComplete()إلىSurfaceRequest.willNotProvideSurface(). (I224fe) - تم إصلاح مشكلة عدم صحة نسبة العرض إلى الارتفاع للصورة المحفوظة
بعد تغيير قيمة التدوير المستهدَفة باستخدام
ImageCapture.setTargetRotation(). (I474ea، b/148763432) - تم إصلاح عملية إعداد نُسخ التطبيق مع تفعيل ProGuard من خلال الاحتفاظ بالعلامة التي تضبط موفّر
CameraXConfigالتلقائي. (I2d6c1)
الإصدار 1.0.0-beta01 من Camera-Core
26 فبراير 2020
تم طرح androidx.camera:camera-core:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تم استبدال
ListenableFutureفيSurfaceRequest.provideSurface()بـExecutorوCallback. يؤدي ذلك إلى تبسيط واجهة برمجة التطبيقات من خلال عدم الحاجة إلى معالجة الاستثناءات فيprovideSurface()وفرض عدم إلغاء طلب معاودة الاتصال فيprovideSurface(). يساعد ذلك في منع تعطُّل الأجهزة القديمة بسبب إصدار الأسطح قبل الأوان. يُستخدم الكائنSurfaceRequest.Resultالآن لتتبُّع كيفية استخدامSurfaceRequestلـSurfaceالمقدَّم. (I7854b) - تمت إعادة تسمية
SurfaceRequest.setSurface(Surface)إلىSurfaceRequest.provideSurface(Surface)وSurfaceRequest.setWillNotComplete()إلىSurfaceRequest.willNotProvideSurface(). (I224fe)
إصلاح الأخطاء
- تم إصلاح مشكلة عدم صحة نسبة العرض إلى الارتفاع للصورة المحفوظة
بعد تغيير قيمة التدوير المستهدَفة باستخدام
ImageCapture.setTargetRotation(). (I474ea، b/148763432) - تم إصلاح عملية إعداد نُسخ التطبيق مع تفعيل ProGuard من خلال الاحتفاظ بالعلامة التي تضبط موفّر
CameraXConfigالتلقائي. (I2d6c1) - تم تعديل مستندات واجهات برمجة التطبيقات الخاصة بوضع الفلاش لتشمل القيم المحتملة. (I4a3ec)
الإصدار 1.0.0-alpha10 من Camera-Camera2
10 فبراير 2020
تم طرح androidx.camera:camera-camera2:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.
إصلاح الأخطاء
- تم تحسين الثبات على أجهزة
INFO_SUPPORTED_HARDWARE_LEVEL_LEGACYمن خلال ضمان الاحتفاظ بـSurfaceفقط طوال مدة الاستخدام من خلال Camera2. (I9dac2) - تم إصلاح مشكلة المعاينة غير المعرَّضة للضوء بشكل كافٍ على الأجهزة القديمة من خلال ضبط
CONTROL_AE_TARGET_FPS_RANGEبشكل صحيح. (1224638)
الإصدار 1.0.0-alpha10 من Camera-Core
10 فبراير 2020
تم طرح androidx.camera:camera-core:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تم تعديل "
ImageCapture" للسماح بحفظ الصور في "Uri" و"OutputStream". تم دمج طرقtakePictureالمتعدّدة في طريقة واحدة. تم تعديل التطبيق التجريبي لاستخدامUriكمثال أساسي. (Ia3bec) - تم تغيير اسم "
Preview.PreviewSurfaceProvider" إلى "Preview.SurfaceProvider". لم تعُد واجهات برمجة التطبيقاتSurfaceProviderتتطلّب من المطوّرين إنشاءListenableFutureخاصة بهم، وأصبح توفيرSurfaceيتم الآن من خلال عنصرSurfaceRequestجديد. تمت إزالة الطريقةPreview.getPreviewSurfaceProvider()بسبب احتمال إساءة استخدامها عند إقرانPreviewبفئات أخرى مثلPreviewView. (I20105) - تمت إضافة
getTargetRotation()وgetTargetName()إلىPreview. (Iceee7) - تمت إضافة "
getTargetRotation()" و"getBackpressureStrategy()" و"getImageQueueDepth()" في "ImageAnalysis". (I9d6d9) - تمّت إضافة
getTargetRotation()وgetCaptureMode()فيImageCapture()(I5bc17) - تم الآن استبدال الوسيطات التي تم تمريرها سابقًا في
ImageCapture.OnImageSavedCallback.onError()وImageCapture.OnImageCapturedCallback.onError()بوسيطة واحدةImageCaptureException، والتي لا تزال تحتوي على جميع المعلومات التي تم تمريرها سابقًا. - تمت إزالة وسيطة الملف التي تم تمريرها سابقًا في
ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2) - تم الآن وضع علامة "نهائي" على الصفَّين
PreviewوImageCapture. (I2500b) - تم تعديل واجهة برمجة التطبيقات، حيث تم دمج الطرق
getZoomRatio()وgetMaxZoomRatio()وgetMinZoomRatio()وgetLinearZoom()منCameraInfoفيgetZoomState()التي تعرض مثيلZoomState. (Ib19fe) - تمت إزالة حقلَي واجهة برمجة التطبيقات
OPTION_TARGET_CLASSوOPTION_TARGET_NAMEمنCameraXConfigلأنّهما مخصّصان للاستخدام الداخلي في المكتبة فقط. تمت إزالة الدالة الإنشائية لـ "CameraXConfig.Builder". (I96912) - تمت إزالة الشرط الذي يفرض على التطبيق تمديد
Applicationلتهيئة CameraX. سيتم الآن إعداد CameraX باستخدام إعدادات Camera2 التلقائية طالما أنّ العنصرcamera-camera2مضمّن فيbuild.gradleالتطبيق. (I58ff5) (b/146923574)
الإصدار 1.0.0-alpha09 من Camera-Camera2
22 يناير 2020
تم طرح androidx.camera:camera-camera2:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
تمت إضافة مسار التشغيل التفاعلي لـ Camera2 من أجل استخراج معرّف كاميرا Camera2. يمكنك استخراج معرّف الكاميرا من
CameraInfoباستخدامCamera2CameraInfo.extractCameraId(). توضّح عيّنة التعليمات البرمجية التالية كيفية استخدام هذه الميزة:Camera camera = provider.bindToLifecycle(...); String cameraId = Camera2CameraInfo.extractCameraId(camera.getCameraInfo());تتطلّب الفئة
Camera2CameraInfoاستخدام markerClass من النوعExperimentalCamera2Interop.
الإصدار 1.0.0-alpha09 من Camera-Core
22 يناير 2020
تم طرح androidx.camera:camera-core:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية المَعلمة
SurfaceOrientedMeteringPointFactoryuseCaseForSurfaceإلىuseCaseForAspectRatioوتمت توسعة المستندات المرجعية. - تم استبدال طرق
FocusMeteringAction.Builder.from()بالدوال الإنشائيةFocusMeteringAction.Builder(). - تمت إزالة "
DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float)". يجب أن تستخدم التطبيقات الدالة الإنشائية التي تأخذ مَعلمةDisplayوتمرّرها في العرض الحالي. - تحسينات Javadoc لواجهات برمجة التطبيقات الخاصة بالتركيز والقياس في ما يتعلّق بـ
MeteringModeوعلامات 3A واستخدام مَعلمةDisplay - تم توسيع المستندات المرجعية لـ
setZoomRatioوsetLinearZoom.
إصلاح الأخطاء
- تم إصلاح المشاكل التي تحدث عند إغلاق الكاميرات ثم فتحها، ما يؤدي إلى تعذُّر التحقّق من "الشرط الأساسي".
- تم إصلاح
ConcurrentModificationExceptionقد يحدث عند استخدام واجهات برمجة التطبيقات الخاصة بالفلاش والتكبير/التصغير. - تم إصلاح المشكلة المتعلقة باختيار درجات دقة أقرب إلى درجة الدقة المطلوبة عندما يكون حجم أبعاد mod16 متاحًا.
startFocusMeteringandcancelFocusMeteringAPIs now behave as documented, with correct timing and potentially returning errors when they occur.- تم إصلاح المشكلة التي تحدث عند طلب دقة مستهدَفة معيّنة مع نسبة عرض إلى ارتفاع للاقتصاص على جهاز لا يتيح هذه الأحجام. الآن، سيتم اختيار حجم غير مقتطع بدقة كافية لربط الطلب الأصلي عندما يكون متاحًا.
الإصدار 1.0.0-alpha08 من Camera-Camera2
18 ديسمبر 2019
تم طرح androidx.camera:camera-camera2:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.
المشاكل المعروفة
- لا تعمل بعض خيارات طلبات الالتقاط في Camera2 عند استخدام إمكانية التشغيل التفاعلي في Camera2. إذا كان الخيار المطلوب غير متاح، سيتعذّر بدء الجلسة وقد يحدث خطأ مثل:
09-09 14:04:13.643 10117 26020 26036 E AndroidRuntime: java.lang.IllegalArgumentException: Unsupported session configuration combination
إصلاح الأخطاء
- تم إصلاح مشكلة ظهور شاشة سوداء في المعاينة بعد تدوير الكاميرا أو تبديلها في المستويَين 21 و22 من واجهة برمجة التطبيقات.
التغييرات في واجهة برمجة التطبيقات
- ميزة تجريبية: تمت إضافة مسار تشغيل متبادل لواجهة Camera2 من أجل استخراج معرّف الكاميرا.
الإصدار 1.0.0-alpha08 من Camera-Core
18 ديسمبر 2019
تم طرح androidx.camera:camera-core:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.
المشاكل المعروفة
- قد تظهر معاينة نسبة العرض إلى الارتفاع بشكل غير صحيح في التطبيقات التي تستخدم
PreviewViewأوCameraView. يحدث ذلك بعد الإيقاف المؤقت أو الاستئناف على بعض الأجهزة التي تتضمّن ميزات كاملة، مثل Pixel2.
إصلاح الأخطاء
- تم تعديل المستندات الخاصة بـ
FocusMeteringActionوCameraControl. - تم تنفيذ
TorchControlلـenableTorch()وgetTorchState().
التغييرات في واجهة برمجة التطبيقات
- تم إخفاء IntDefs ونقل ثوابت IntDef خارج تعريف IntDef.
- تم نقل "
rotationDegrees" من الصف "OnImageCaptureCallback" إلى "ImageInfo". - تم نقل "
rotationDegrees" من الصف "Analyzer" إلى "ImageInfo".
الإصدار 1.0.0-alpha07 من Camera-Camera2
4 ديسمبر 2019
تم طرح androidx.camera:camera-camera2:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 من camera-camera2 هذه التعديلات
- أصبح "
Camera2Config" متاحًا الآن للاستخدام مع إعداد وضبط تنفيذ مستند إلى Camera2 لمكتبة CameraX. تتوفّر المزيد من التفاصيل حول كيفية استخدام هذه الميزة في عملية الإعداد في قسم camera-core ضمن ملاحظات الإصدار. - تم الآن وضع علامة "تجريبية" على وظيفة التشغيل التفاعلي لـ Camera2 ونقلها إلى حزمة منفصلة، وهي
androidx.camera.camera2.interop.
الإصدار 1.0.0-alpha07 من Camera-Core
4 ديسمبر 2019
تم طرح androidx.camera:camera-core:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 من camera-core هذه التعديلات
يُرجى العِلم أنّ هناك بعض التغييرات الجوهرية في إصدار Alpha هذا بينما نستعد لإصدار Beta. ننصحك بمراجعة التغييرات ومشاركة أي ملاحظات لديك في مجموعة CameraX على Google. بالنسبة إلى المطوّرين الذين يستخدمون CameraX في التطبيقات المتوفّرة على "متجر Google Play"، ننصحهم بانتظار الإصدار التجريبي الرسمي قبل ترقية المكتبة داخل تطبيقاتهم.
تغييرات واجهة برمجة التطبيقات
ملاحظة مهمة: تم تغيير عملية إعداد CameraX. يجب أن تنفّذ التطبيقات
CameraXConfig.Provider، وأن تستخدمCamera2Configالتلقائي الذي يوفّرهandroidx.camera.camera2. في ما يلي مثال على الاستخدام المعتاد:import androidx.camera.camera2.Camera2Config import androidx.camera.core.CameraXConfig public class MyCameraXApplication : Application(), CameraXConfig.Provider { override fun getCameraXConfig(): CameraXConfig { return Camera2Config.defaultConfig(this) } }تمت إزالة فئة CameraX. أصبحت الآن
bindToLifecycle()وunbind()وunbindAll()وisBound()وhasCamera()التي كانت توفّرها سابقًا فئة CameraX متاحة من خلالProcessCameraProvider.يتم الحصول على مثيل لكل عملية من
ProcessCameraProviderبشكل غير متزامن باستخدام الطريقة الثابتةProcessCameraProvider.getInstance()، والتي تعرض كائنًا مستقبليًا قابلاً للاستماع، والذي يوفّرProcessCameraProviderعند الاكتمال. يتم عرضه هنا بالعملةonCreate()للاستخدام العادي. يمكنك إجراء طلبات إلىgetInstance()في وقت لاحق من مراحل نشاط التطبيق لتأجيل وقت استجابة الإعداد إلى وقت لاحق (مثلاً عندما يفتح إجراء المستخدم واجهة مستخدم الكاميرا).import androidx.camera.lifecycle.ProcessCameraProvider import com.google.common.util.concurrent.ListenableFuture class MainActivity : AppCompatActivity() { private lateinit var cameraProviderFuture : ListenableFuture<ProcessCameraProvider> override fun onCreate(savedInstanceState: Bundle?) { cameraProviderFuture = ProcessCameraProvider.getInstance(this); }يمكن إضافة مستمع إلى
ListenableFutureالذي يعرضهgetInstance(). يضمن ذلك إمكانية استرداد مزوّد الكاميرا منFutureبدون حظرFuture.get()cameraProviderFuture.addListener(Runnable { val cameraProvider = cameraProviderFuture.get() cameraProvider.bindToLifecycle(...) }, ContextCompat.getMainExecutor(this))يتم الآن اختيار الكاميرا من خلال أداة اختيار الكاميرا، بدلاً من اختيارها لكل حالة استخدام
val cameraSelector = CameraSelector.Builder().requireLensFacing(LensFacing.BACK).build()يتم منح
CameraProvider.bindToLifecycleمالك مراحل النشاط وأداة اختيار الكاميرا وحالات الاستخدام، والتي يتم ربطها بعد ذلك بمالك مراحل النشاط المحدّد وتشغيلها للكاميرا المحدّدة.cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageAnalysis)تمت إزالة فئات "Config" لحالات الاستخدام. بدلاً من ذلك، يمكنك إنشاء حالات الاستخدام مباشرةً، وضبط الخيارات في كل أداة إنشاء حالات استخدام. على سبيل المثال:
preview = Preview.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9).build()تم تعديل حالة استخدام "المعاينة" لقبول مساحة عرض تم إنشاؤها وإدارتها بواسطة التطبيق لضمان اتّباع أفضل ممارسات Android. ننصحك بشدة باستخدام فئة العرض
PreviewViewالمتوفّرة في حزمة camera-view.preview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)يُرجى الاطّلاع على المستندات الخاصة بإرفاق مساحة عرض يديرها التطبيق. في هذه الحالات، يدير التطبيق مراحل نشاط السطح.
ملاحظة مهمة: يجب أن يستدعي تنفيذ طريقة
ImageAnalysisAnalyzer الدالةimage.close()على الصور التي تم تلقّيها عند الانتهاء من استخدامها. وإلا، قد لا يتم تلقّي صور جديدة أو قد تتوقف الكاميرا، وذلك حسب إعداد الضغط الخلفي. يُرجى الرجوع إلى المستندات المرجعية للحصول على التفاصيل.تم تغيير
ImageAnalysis ImageReaderModeالآن إلى استراتيجية الضغط العكسيintdef.تم وضع علامة "تجريبي" على "
ImageProxy.getImage()". يجب أن تضيف التطبيقات تعليقات توضيحية على الاستخدام، على سبيل المثال من خلال@androidx.camera.core.ExperimentalGetImageتمت إزالة شرط التعليق التوضيحي "
UIThread" لـ "Analyzer".تمت إضافة الدالة
ImageAnalysis.clearAnalyzer()لإزالة محلّل.تمت إعادة تسمية المستمعين الذين لديهم أكثر من طريقة واحدة إلى "رد الاتصال":
- "
ImageCapture.OnImageCapturedListener" أصبح الآن "ImageCapture.OnImageCapturedCallback" - "
ImageCapture.OnImageSavedListener" أصبح الآن "ImageCapture.OnImageSavedCallback" - "
VideoCapture.OnVideoSavedListener" أصبح الآن "VideoCapture.OnVideoSavedCallback"
- "
تم تغيير Enums إلى IntDef
تمت إضافة عناصر التحكّم في التكبير/التصغير:
CameraControl.setLinearZoom()CameraControl.setZoomRatio()CameraInfo.getLinearZoom()CameraInfo.getMaxZoomRatio()CameraInfo.getZoomRatio()
تمت إضافة
CameraInfo.hasFlashUnit()لتحديد ما إذا كان جهاز الفلاش/المصباح متوفّرًا.تمّت إزالة "
CameraInfo.isFlashAvailable()". يحلّ المصباح محلّ وظيفة الفلاش. يمكنك الاطّلاع على مزيد من التفاصيل في المستندات المرجعية.يتم استبدال حقول
ImageCapture.Metadataبدوال استرداد القيمة get/set/is.تعرض
startFocusMeteringوcancelFocusMeteringالآنListenableFuturesالتي تمثّل العملية غير المتزامنة للمكالمة.تعمل
MeteringPointsالآن كمقابض لإجراءات القياس، ويتم إنتاجها بواسطة المصانع. يجب أن تستخدم التطبيقات المصانع الحالية بدلاً من المصانع المخصّصة.
المشاكل التي تم إصلاحها
- تم إصلاح المشكلة التي كانت تحدث عند التقاط صورة بعد استئناف التسجيل (بعد أن كان هناك صور في انتظار اكتمال التقاطها قبل الإيقاف المؤقت).
- مشكلة معروفة: تعمل السمة
CameraControl.enableTorch()، ولكنّ السمةListenableFuture<Void>التي يتم عرضها تكون دائمًاcomplete(success)في المستقبل، حتى في حال عدم توفّر وحدة فلاش. ستعمل الإصدارات المستقبلية على إصلاح هذا السلوك النهائي: عندما لا تكون هناك وحدة فلاش، يفشلenableTorch(true)على الفور (لن يتم إرسال الطلب إلىCaptureSession)، ويظلTorchStateغير مفعَّل. - مشكلة معروفة: تبدأ الدالتان
startFocusAndMeteringوcancelFocusAndMeteringقياس التركيز وتلغيانه، ولكنّهما تعرضان نتيجةcompleted (success)مستقبلية فورية لا تمثّل السلوك الموثَّق. الحقلFocusMeteringResultمنListenableFuture<FocusMeteringResult> CameraControl.startFocusAndMetering()هو نتيجة مزيفةisFocusSuccessful()وتكون دائمًا "false"، وتختلف عن السلوك المقصود والموثَّق. - مشكلة معروفة: يتم تطوير مصنع نقاط قياس للاستخدام مع أحداث اللمس في
PreviewView. في الوقت الحالي، يمكن للتطبيقات التي تتصل بأسطح مُدارة مخصّصة استخدام فئات نقاط القياس الحالية، وإلا فلن تتوفّر وظيفة التركيز باللمس في "PreviewView".
الإصدار 1.0.0-alpha06 من Camera-Camera2 وCamera-Core
9 أكتوبر 2019
تم طرح androidx.camera:camera-camera2:1.0.0-alpha06 وandroidx.camera:camera-core:1.0.0-alpha06. هذه هي التعديلات المضمّنة في camera-camera2:1.0.0-alpha06 وهذه هي التعديلات المضمّنة في camera-core:1.0.0-alpha06.
الميزات الجديدة
التغييرات على إعدادات نِسب العرض إلى الارتفاع:
- تمت إضافة
setTargetAspectRatioMode()وتقبل وسيطة تعداد. يضبط هذا الخيار "وضع نسبة العرض إلى الارتفاع" علىRATIO_4_3أوRATIO_16_9بدلاً من نسبة عشوائية. يعكس هذا التغيير حقيقة أنّ الكاميرا توفّر نِسب عرض إلى ارتفاع معيّنة فقط، بدلاً من أي نسبة عشوائية.- في الوقت الحالي، تتوفر فقط النِسبتان 16:9 و4:3. في حالة 1:1، لا يتوفّر هذا الخيار إلا في أجهزة معيّنة من الكاميرا، ثم بدرجات دقة محدودة فقط. يجب أن تستخدم التطبيقات التي تصمم واجهة أو معالجة بنسبة 1:1 الخيارات الأكثر مرونة بنسبة 16:9 أو 4:3 واقتصاص الشاشة أو معالجة منطقة فرعية.
- يتم توجيه نِسب العرض إلى الارتفاع هذه لاستخدام أقصى مساحة من أداة الاستشعار.
- تمت إضافة
getTargetAspectRatio()إلى واجهات برمجة التطبيقات الخاصة بضبط حالة الاستخدام، ما يؤدي إلى عرض نسبة العرض إلى الارتفاع التي يستهدفها ناتج حالة الاستخدام. - تم تغيير طريقة
setTargetAspectRatio(Rational aspectRatio)إلىsetTargetAspectRatioCustom(Rational aspectRatio)في ImageCapture. عند ضبط هذه السمة، يتم اقتصاص مخرجات ImageCapture وفقًا لذلك.
واجهات برمجة التطبيقات الخاصة بالمنفّذ
- تقبل الدوال التالية مَعلمة منفّذ، ما يسمح للتطبيق بالتحكّم في المنفّذ الذي تعمل عليه الدالة.
- واجهة برمجة تطبيقات
Preview.setOnPreviewOutputUpdateListener()إذا لم يكن المنفّذ متوفّرًا لهذه الدالة، يتم تنفيذها في سلسلة التعليمات الرئيسية. Preview.setOnPreviewOutputUpdateListenerFocusMeteringAction.Builder.setAutoFocusCallbackImageAnalysis.setAnalyzerImageCapture.takePictureCameraView.takePictureCameraView.startRecordingVideoCapture.startRecording
- واجهة برمجة تطبيقات
تمت إضافة CameraInfo مع واجهتَي برمجة التطبيقات "التحقّق من توفّر الفلاش" و"دوران أداة الاستشعار"
تمت إضافة
CameraInfoوطريقةgetCameraInfo، ما يسمح للتطبيقات بالتحقّق من توفّر CameraInfo مواجِه للعدسة ومن توفّر فلاش في تلك الكاميرا. على سبيل المثال:try { CameraInfo cameraInfo = CameraX.getCameraInfo(currentCameraLensFacing); LiveData<Boolean> isFlashAvailable = cameraInfo.isFlashAvailable(); flashToggle.setVisibility(isFlashAvailable.getValue() ? View.VISIBLE : View.INVISIBLE); } catch (CameraInfoUnavailableException e) { Log.w(TAG, "Cannot get flash available information", e); flashToggle.setVisibility(View.VISIBLE); }تمت إضافة
CameraInfo.getSensorRotationDegrees(). وتوفّر اتجاه أداة استشعار الكاميرا بالنسبة إلى الاتجاه الطبيعي للجهاز، أو لتسهيل الأمر، بالنسبة إلى الاتجاه الذي يحدّده دوران السطح (الذي يصف الاتجاه بالنسبة إلى الاتجاه الطبيعي).
تغييرات في واجهة برمجة التطبيقات وإصلاح الأخطاء
- نِسب العرض إلى الارتفاع: لكل حالة استخدام، يجب أن تستدعي التطبيقات إما
setTargetResolution()أوsetTargetAspectRatio()فقط. ويؤدي استدعاء كليهما في أداة الإنشاء نفسها إلى ظهور خطأ.- ننصح بشكل عام باستخدام
setTargetAspectRatio()استنادًا إلى تصميم واجهة المستخدم في التطبيق. تستند الحلول المحدّدة إلى حالة الاستخدام. على سبيل المثال، تكون المعاينة قريبة من درجات دقة الشاشة، وتوفّر ميزة التقاط الصور لقطات ثابتة عالية الدقة. يمكنك الاطّلاع على جدول الحلول التلقائية لمزيد من المعلومات. - استخدِم
setTargetResolution()في حالات أكثر تحديدًا، مثلاً عندما يكون الحد الأدنى (لتوفير العمليات الحسابية) أو الحد الأقصى للدقة (لمعالجة التفاصيل) مطلوبًا.
- ننصح بشكل عام باستخدام
- Executor API: تمت إزالة طلب
setCallbackHandler()من واجهات برمجة التطبيقات لإعداد حالات الاستخدام. بدلاً من ذلك، يمكن للتطبيقات ضبط المنفِّذ كمَعلمة في واجهات برمجة تطبيقات أخرى مختلفة تضبط دالة رد اتصال. - تم تعديل التعليقات التوضيحية الفارغة لدوال مختلفة.
- تم إصلاح مشكلة كانت تؤدي إلى ظهور الخطأ
java.lang.IllegalStateException at Camera$StateCallback.onErrorعند فتح الكاميرا. - تم إصلاح مشكلة اختيار درجات دقة صغيرة جدًا (أقل من 640×480) عندما يطلب التطبيق درجات دقة أكبر أو تلقائية، ما يؤدي إلى ظهور صورة معاينة ضبابية أو غير واضحة. ويمكن للتطبيقات التي تحتاج تحديدًا إلى درجات دقة أقل أن تطلبها صراحةً.
- تم إصلاح مشكلة ظهور شاشة سوداء في الكاميرا (تعذّر تشغيل الكاميرا) بعد العودة من إجراء أدى إلى تشغيل تطبيق كاميرا آخر.
- تم إصلاح خطأ كان يؤدي إلى ظهور رسالة الخطأ التالية عند بدء تشغيل التطبيقات أو إيقافها بشكل متكرر:
java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface! - تم إصلاح الخطأ التالي الذي يحدث عند إيقاف ImageAnalysis:
java.lang.IllegalStateException: maxImages (4) has already been acquired, call #close before acquiring more. - تمت إضافة اختبارات إضافية لعملية إلغاء ربط الكاميرا.
- تم تحسين فعالية نظام الاختبار عند إجراء اختبارات متتالية للكاميرا.
الإصدار 1.0.0-alpha05 من Camera-Camera2 وCamera-Core
5 سبتمبر 2019
تم طرح androidx.camera:camera-camera2:1.0.0-alpha05 وandroidx.camera:camera-core:1.0.0-alpha05. هذه هي عمليات النشر المضمّنة في camera-camera2:1.0.0-alpha05 وهذه هي عمليات النشر المضمّنة في camera-core:1.0.0-alpha05.
تغيير في واجهة برمجة التطبيقات: تمت إعادة تسمية متغيّرات أخطاء حالات الاستخدام:
- تمت إعادة تسمية "
ImageCapture.UseCaseError" إلى "ImageCapture.ImageCaptureError" - تمت إعادة تسمية "
VideoCapture.UseCaseError" إلى "VideoCapture.VideoCaptureError"
- تمت إعادة تسمية "
تمت إضافة واجهة برمجة التطبيقات
CameraControlمع واجهات برمجة التطبيقات "النقر للتركيز"تمت إضافة واجهة برمجة تطبيقات للحصول على
CameraControlمن CameraX لكاميرا يتم اختيارها حسب اتجاه العدسة:CameraX.getCameraControl(LensFacing lensFacing)تمت إضافة
MeteringPointFactoryوMeteringPointوMeteringModeوFocusMeteringActionلتشغيل ميزة "النقر للتركيز":MeteringPointFactory factory = new SensorOrientedMeteringPointFactory(width, height); MeteringPoint point = factory.createPoint(x, y); FocusMeteringAction action = FocusMeteringAction.Builder.from(point, MeteringMode.AF_ONLY) .addPoint(point2, MeteringMode.AE_ONLY) // could have many .setAutoFocusCallback(new OnAutoFocusListener(){ public void onFocusCompleted(boolean isSuccess) { } }) // auto calling cancelFocusAndMetering in 5 sec. .setAutoCancelDuration(5, TimeUnit.Second) .build();تمت إضافة واجهة برمجة تطبيقات لـ
CameraControlلبدء قياس التركيز وإلغائه:getCameraControl(lensFacing).startFocusAndMetering(action);getCameraControl(lensFacing).cancelFocusAndMetering();تمت إضافة واجهات برمجة تطبيقات لفئات Metering Point Factory التي تساعد في تحويل إحداثيات النقر إلى إحداثيات أداة الاستشعار، استنادًا إلى فئات العرض:
MeteringPointFactory factory = new TextureViewMeteringPointFactory(textureView);MeteringPointFactory factory = new DisplayOrientedMeteringPointFactory(context, lensFacing, viewWidth, viewHeight);
يجب فرض استدعاء الطرق التالية في سلسلة واجهة المستخدم الرئيسية، مع عرض
IllegalStateExceptionفي حال عدم استدعائها. ستسمح الإصدارات المستقبلية بالاستخدام في سلاسل محادثات أخرى وضمان التسلسل.CameraX.bindToLifecycle()CameraX.unbind()CameraX.unbindAll()ImageAnalysis.setAnalyzer()ImageAnalysis.getAnalyzer()ImageAnalysis.removeAnalyzer()Preview.removePreviewOutputListener()Preview.getOnPreviewOutputUpdateListener()Preview.setOnPreviewOutputUpdateListener()
تقبل الآن إعدادات الضبط المختلفة مَعلمات فارغة، وقد تعرض دوال getter المقابلة قيمة فارغة.
تم إصلاح المشكلة التي تحدث عند الاختبار على المحاكيات التي لا تتوافق مع إعدادات التركيز التلقائي/التعرّض التلقائي/توازن اللون الأبيض التلقائي.
تم إصلاح خطأ التعطُّل عند التدوير أثناء تحليل الصورة.
تم إصلاح الخطأ الذي يتسبب في ظهور المعاينة باللون الأسود عند بدء التشغيل (بدون بيانات الكاميرا)، بعد التدوير أو التبديل بين الكاميرتَين الأمامية والخلفية.
تمت إزالة اختبار حالات استخدام متعددة لتحليل الصور في الوقت نفسه. لضمان التوافق، يجب أن ترفق التطبيقات حالة استخدام واحدة فقط لتحليل الصور.
تمت إضافة اختبارات Robolectric الأولية للكاميرا الزائفة في حزمة اختبار الكاميرا (قيد التنفيذ).
تمت إزالة اختبار Camera2Inititalizer لأنّ تغطيته كانت غير واضحة أو مضلِّلة.
الإصدار 1.0.0-alpha04 من Camera-Camera2 وCamera-Core
7 أغسطس 2019
تم طرح androidx.camera:camera-camera2:1.0.0-alpha04 وandroidx.camera:camera-core:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 هذه التعديلات.
الميزات الجديدة
تغييرات على اختيار نسبة العرض إلى الارتفاع ودرجة الدقة
هدف CameraX هو بدء جلسة الكاميرا بنجاح. وهذا يعني أنّ CameraX يقدّم تنازلات بشأن الدقة/نسب العرض إلى الارتفاع استنادًا إلى إمكانات الجهاز، وذلك لبدء جلسة التقاط كهدف أول، وبالتالي قد لا يتم تنفيذ الطلبات الدقيقة. قد يرجع ذلك إلى:
- الأجهزة التي لا تتوافق مع درجة الدقة المطلوبة
- مشاكل التوافق، مثل الأجهزة القديمة التي يجب استخدام درجات دقة معيّنة لتشغيلها بشكل صحيح
- على بعض الأجهزة، لا تتوفّر بعض التنسيقات إلا بنسب عرض إلى ارتفاع معيّنة
- يشير هذا الخيار إلى تفضيل "أقرب mod16" لترميز JPEG أو ترميز الفيديو. يمكنك الاطّلاع على
CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
على الرغم من أنّ CameraX تنشئ الجلسة وتديرها، يجب دائمًا التحقّق من أحجام الصور التي يتم عرضها في مخرجات حالة الاستخدام في الرمز البرمجي وضبطها وفقًا لذلك.
تم إجراء بعض التغييرات على إعدادات درجات الدقة ونِسب العرض إلى الارتفاع، وذلك بهدف جعل واجهة برمجة التطبيقات أكثر وضوحًا:
- أصبحت حالة استخدام المعاينة الآن تُعتبر ذات نسبة عرض إلى ارتفاع تلقائية تبلغ 4:3 في حال عدم ضبط أي نسبة.
- عندما تأخذ مكتبة CameraX في الاعتبار داخليًا التغييرات في درجات الدقة ونِسب العرض إلى الارتفاع المطلوبة استنادًا إلى إمكانات الجهاز، فإنّها تحاول أولاً الحفاظ على نسبة العرض إلى الارتفاع نفسها (على النحو المحدّد في أي من طلبات
setTargetAspectRatioأوsetTargetResolution) - يتم اعتبار نسخة "أقرب mod16" من درجة الدقة على أنّها نسبة العرض إلى الارتفاع نفسها.
وضع عدم الحظر في ImageAnalysis
- أصبح سلوك
ImageReaderMode.ACQUIRE_LATEST_IMAGEالآن غير محظور. ويحصل على أحدث صورة في قائمة الانتظار، ولكنه يتجاهل الصور غير المستخدمة باستمرار للسماح لمسار الكاميرا بتجنُّب الحظر. - يمكن للمحلّل الاحتفاظ بصورة واحدة إلى أجل غير مسمى بدون توقُّف مسار المعالجة.
- إذا قدّم التطبيق منفّذًا يحظر بعد ذلك، يتم حظر حالة استخدام ImageAnalysis.
- يعمل المنفّذ التلقائي الذي تم ضبطه داخليًا كمنفّذ غير محظور.
إصلاح الأخطاء
- تم إصلاح مشاكل المهلة في انتظار تقارب 3A عند التقاط الصور على الأجهزة التي لا تتوفّر فيها ميزات التركيز التلقائي والتعرّض التلقائي للضوء وتوازن اللون الأبيض التلقائي
- تم إصلاح المشكلة التي تحدث عند التقاط الصور بسرعة باستخدام ImageCapture. خطأ في الإصلاحات:
java.lang.IllegalStateException: maxImages (2) has already been acquired - تم إصلاح المشكلة المتمثلة في عدم استدعاء
setLensFacingلحالة استخدام، ما يؤدي إلىjava.lang.IllegalArgumentException: Unable to get camera ID for use case. - تم إصلاح المشكلة التي تتطلّب فيها الأجهزة القديمة نسبة عرض إلى ارتفاع معيّنة كحد أقصى لدقة JPEG
- تم إصلاح المشكلة التي كانت تحدث عند تشغيل التطبيق في الخلفية أثناء فتح الكاميرا
- تم إصلاح المشكلة في واجهة برمجة التطبيقات < 25، وتمت إزالة الخطأ
checkAndUpdateEglState: invalid current EGLDisplay - تم إصلاح المشكلة التي تحدث عند إلغاء ربط المعاينة بعد تفعيل الإضافات وبدء تشغيلها
- يتم الآن نشر عناصر الإصدار الخاصة بـ camera-view وcamera-extensions كإصدارات أولية
الإصدار 1.0.0-alpha03 من Camera-Camera2 وCamera-Core
2 يوليو 2019
تم طرح androidx.camera:camera-core:1.0.0-alpha03 وandroidx.camera:camera-camera2:1.0.0-alpha03. يتضمّن الإصدار 1.0.0-alpha03 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة توضيح javadoc لـ "target" في طلبات ضبط setTarget
Camera-Core
- تم إصلاح عطل في Input/Output Surface غير المضبوط عند الفتح/الإغلاق السريع أو الربط/إلغاء الربط
- الانتقال إلى عمليات التنفيذ الجديدة في Futures
- اختبار الإصلاحات لإجراء اختبار أكثر قوة
- يعرض اختبار الدمج الأساسي الآن وقت التقاط الصور
- تم تطوير فئة توافق داخلية لـ Executors
- يتم الانتظار حتى تكتمل عملية التقاط الصور السابقة في تطبيق اختبار التوقيت، وتم تحسين الثبات
الإضافات
- تمت إضافة عمليات التحقّق من الإصدارات
- تغطية اختبار إضافية - عمليات معاودة الاتصال لأحداث الإضافات
- تحسينات على الصور والبيانات الوصفية المتوافقة داخليًا
- إصلاحات في تبديل الوضع في تطبيق الاختبار
الإصدار 1.0.0-alpha02 من Camera-Camera2 وCamera-Core
5 يونيو 2019
تم طرح androidx.camera:camera-core:1.0.0-alpha02 وandroidx.camera:camera-camera2:1.0.0-alpha02. يتضمّن الإصدار 1.0.0-alpha02 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة القسمة على صفر عند استخدام المحاكي
- تم إصلاح خطأ NullPointerException/Surface Abandoned الذي يحدث على بعض الأجهزة عند التقاط الصور بسرعة أثناء إلغاء ربط حالات الاستخدام وإعادة ربطها بسرعة.
- تم إصلاح مشكلة داخلية لضمان أن تؤثر تعديلات طلبات التسجيل في جميع مساحات العرض بشكل متّسق
- تحسينات على الثبات عند إعادة تشغيل حالات الاستخدام في نُسخ التطبيق الجديدة
- تغييرات في البنية الداخلية استعدادًا لإتاحة المنفّذين في واجهة برمجة التطبيقات
- توضيحات إضافية في Javadoc حول فئة CameraX وإدارة مراحل النشاط
- تمت إضافة اختبار قياس حالة التطبيق لاختبار أداء Antelope
- إزالة الحاجة إلى "-keepattributes Signature" في إعدادات Proguard للتطبيق
Camera-Camera2 وCamera-Core 1.0.0-alpha01
7 مايو 2019
تم طرح androidx.camera:camera-core:1.0.0-alpha01 وandroidx.camera:camera-camera2:1.0.0-alpha01. يتضمّن الإصدار 1.0.0-alpha01 هذه التعديلات.
الإصدار 1.0.0-beta11 من Camera-Lifecycle
14 أكتوبر 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta11. يتضمّن الإصدار 1.0.0-beta11 هذه التعديلات.
إصلاح الأخطاء
- ستعرض الدالة
<UseCase>.getTargetRotation()القيمةSurface.ROTATION_0إذا تم استدعاؤها قبل إرفاقها بمثيل Camera، ما لم يتم ضبط targetRotation على Builder أو UseCase. (I80fcd)
الإصدار 1.0.0-beta10 من Camera-Lifecycle
23 سبتمبر 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta10. يتضمّن الإصدار 1.0.0-beta10 هذه التعديلات.
إصلاح الأخطاء
- إصدار متوافق مع Camera-Core 1.0.0-beta10
الإصدار 1.0.0-beta09 من Camera-Lifecycle
16 أيلول (سبتمبر) 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta09. يتضمّن الإصدار 1.0.0-beta09 هذه التعديلات.
الإصدار 1.0.0-beta08 من Camera-Lifecycle
19 أغسطس 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta08. يتضمّن الإصدار 1.0.0-beta08 هذه التعديلات.
إصلاح الأخطاء
- من المفترض ألا يتعطّل الإعداد بعد الآن عند استخدام Context
لا يعرض عنصر Application من
Context.getApplicationContext(). (I3d3c9، b/160817073)
الإصدار 1.0.0-beta07 من Camera-Lifecycle
22 يوليو 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta07. يتضمّن الإصدار 1.0.0-beta07 هذه التعديلات.
الإصدار 1.0.0-beta06 من Camera-Lifecycle
24 يونيو 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta06. يتضمّن الإصدار 1.0.0-beta06 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- يمكن الآن ضبط CameraX باستخدام ProcessCameraProvider#configureInstance() قبل طلب ProcessCameraProvider#getInstance(). يتيح ذلك تخصيص CameraXConfig بدون الحاجة إلى تنفيذ CameraXConfig.Provider في فئة التطبيق. (Ia1a8d)
الإصدار 1.0.0-beta05 من Camera-Lifecycle
10 يونيو 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta05. يتضمّن الإصدار 1.0.0-beta05 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تعطُّل التطبيق عند بدء تشغيله أثناء إعداد CameraX عندما يكون الهاتف في وضع "عدم الإزعاج". سيتم ضبط
InitializationExceptionيحتوي علىCameraUnavailableExceptionعلىListenableFutureلنتيجة الإعداد بدلاً من تعطُّل التطبيق. (I9909a، b/149413835)
الإصدار 1.0.0-beta04 من Camera-Lifecycle
27 مايو 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta04. يتضمّن الإصدار 1.0.0-beta04 هذه التعديلات.
الإصدار 1.0.0-beta03 من Camera-Lifecycle
نيسان (أبريل) 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta03. يتضمّن الإصدار 1.0.0-beta03 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تراجُع الأداء من الإصدار beta03 حيث يؤدي استدعاء
bindToLifecycle()بدونUseCaseإلى حدوث استثناء. وقد منع ذلك استردادCameraبدون ربطUseCase. - إصلاحات لدعم إصدار
camera-core
الإصدار 1.0.0-beta01 من Camera-Lifecycle
26 فبراير 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.
إصلاح الأخطاء
- تم تعديل المستندات للإشارة إلى أنّه عند الحصول على
ProcessCameraProviderأثناء الإعداد، يتم استخدام إعدادات تلقائية وأنّ تمديدApplicationهو أمر اختياري. (I5e395)
الإصدار 1.0.0-beta02 من Camera-Lifecycle
1 أبريل 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.
إصلاح الأخطاء
- تم تعديل هذا الإصدار لإتاحة إصلاح الأخطاء في عناصر
camera-camera2:1.0.0-beta02وcamera-core:1.0.0-beta02.
الإصدار 1.0.0-alpha10 من Camera-Lifecycle
10 فبراير 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة التعليق التوضيحي
@MainThreadإلى طرق BindToLifecycle وunbind وunbindAll. (I990d2)
الإصدار 1.0.0-alpha03 من Camera-Lifecycle
22 يناير 2020
تم طرح androidx.camera:camera-lifecycle:1.0.0-alpha03. يتضمّن الإصدار 1.0.0-alpha03 هذه التعديلات.
التحديثات
- إصلاحات وتحديثات متنوّعة لدعم تغييرات Camera Core وCamera2
الإصدار 1.0.0-alpha02 من Camera-Lifecycle
18 ديسمبر 2019
تم طرح androidx.camera:camera-lifecycle:1.0.0-alpha02. يتضمّن الإصدار 1.0.0-alpha02 هذه التعديلات.
التغييرات في التبعيات
- تم تعديلها لاستخدام
androidx.camera:camera-core:1.0.0-alpha08.
الإصدار 1.0.0-alpha01 من Camera-Lifecycle
4 ديسمبر 2019
تم طرح androidx.camera:camera-lifecycle:1.0.0-alpha01. يتضمّن الإصدار 1.0.0-alpha01 من camera-lifecycle هذه التعديلات
ملاحظات حول واجهة برمجة التطبيقات
- تمت إضافة عنصر camera-lifecycle، ما يوفّر واجهة
LifeCycleCameraProvider، وتنفيذًا يُسمىProcessCameraProviderيوفّر العديد من وظائف فئة CameraX السابقة في النواة ويتم الحصول عليه من خلال طريقةgetInstance(). - يجب أن تتضمّن التطبيقات مكتبة camera-lifecycle لاستخدام CameraX.
- يمكنك الاطّلاع على الملاحظات في قسم camera-core لمعرفة كيفية بدء استخدام CameraX من خلال
ProcessCameraProvider.
الإصدار 1.0.0 من Camera-Extensions وCamera-View
الإصدار 1.0.0-alpha32
15 ديسمبر 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha32 وandroidx.camera:camera-view:1.0.0-alpha32. يتضمّن الإصدار 1.0.0-alpha32 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إزالة تعليقات
@RequiresApi(21)التوضيحية غير الضرورية من الفئات/الواجهات الداخلية. (I8e286، b/204917951) - تعديل ملفات واجهة برمجة التطبيقات لملف camera-extensions (If683a، b/161377155)
إصلاح الأخطاء
- عدم السماح للتطبيق بتفعيل أوضاع الإضافة عند ربط
VideoCaptureلا تتوافق إضافات CameraX إلا معImageCaptureوPreview. لا يمكن استخدامVideoCaptureحاليًا. إذا ربط التطبيقVideoCaptureوفعّل أي وضع إضافة، سيتم عرضIllegalArgumentException. (I0d87b) - لم يعُد
CameraSelector#filterيعرضIllegalArgumentExceptionعندما تكون مجموعة النتائج فارغة. (I27804) - تمت إعادة تسمية واجهة برمجة التطبيقات
ExtensionsManager#getInstanceلتصبحgetInstanceAsyncلأنّها تعرضListenableFuture. يمكن أن تشير اللاحقة Async في اسم الدالة بوضوح إلى أنّها دالة غير متزامنة. (I279d2) - إزالة مَعلمة درجة الدقة من واجهة برمجة التطبيقات "
ExtensionsManager#getEstimatedCaptureLatencyRange" لأنّ المستخدمين لا يمكنهم معرفة الأحجام المتوافقة مع حالة استخدام "ImageCapture" ولا يمكنهم التمييز بين ما إذا كانت معلومات وقت الاستجابة التي تم عرضها تخصّ الحد الأقصى لحجم ناتج الالتقاط أو مَعلمة درجة دقة الإدخال. (I74bb2) - نقل مَعلمة
CameraProviderلدوالExtensionsManagerإلى واجهة برمجة التطبيقاتgetInstance()بهذه الطريقة، لن يحتاج المستخدمون إلى إدخال المَعلمةCameraProviderفي كل مرة يستدعون فيها دوالExtensionsManager. (Ic7e48)
الإصدار 1.0.0-alpha31
17 تشرين الثاني (نوفمبر) 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha31 وandroidx.camera:camera-view:1.0.0-alpha31. يتضمّن الإصدار 1.0.0-alpha31 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة CameraSelector#filter إلى واجهة برمجة التطبيقات العلنية لفلترة قائمة CameraInfos استنادًا إلى CameraSelector. (I105d0)
إصلاح الأخطاء
- تم إصلاح عطل يحدث عند التبديل بين وضعَي الإضافات بسرعة على أجهزة معيّنة. (Iebbef)
الإصدار 1.0.0-alpha30
13 أكتوبر 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha30 وandroidx.camera:camera-view:1.0.0-alpha30. يتضمّن الإصدار 1.0.0-alpha30 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة التعليق التوضيحي @RequiresApi(21) إلى جميع فئات CameraX وتم إسقاط minSdkVersion من AndroidManifest.xml. سيسمح ذلك بدمج camera-core بسهولة في التطبيقات التي تتضمّن minSdkVersion أقل من 21، ولكنها تريد استخدام مسارات الرموز البرمجية بشكل مشروط والتي تعتمد على واجهة برمجة التطبيقات 21 والإصدارات الأحدث. بالنسبة إلى أي تطبيق يتضمّن الإصدار 21 من حزمة minSdkVersion أو الإصدارات الأعلى، لا يتطلّب هذا التغيير اتّخاذ أي إجراء. (Ie7f2e، b/200599470)
إصلاح الأخطاء
- تم إصلاح مشكلة AbstractMethodError التي تحدث عند تفعيل proguard. (Iae468، b/201177844)
الإصدار 1.0.0-alpha29
29 سبتمبر 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha29 وandroidx.camera:camera-view:1.0.0-alpha29. يتضمّن الإصدار 1.0.0-alpha29 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إزالة التعليق التوضيحي ExperimentalUseCaseGroup لأنّ واجهات برمجة التطبيقات لم تعُد تجريبية. (I01ef5)
- إزالة
RotationProvider#removeAllListeners(). يُرجى استخدامRotationProvider#removeListener(...)بدلاً من هذه السياسة. (Id9d4a) - تم تعديل فئة RotationReceiver: تم تغيير set/clear Listener إلى add/remove/removeAll، وتمت إزالة صيغة setListener التي تستخدم سلسلة التعليمات الرئيسية تلقائيًا، وتمت إضافة تعليقات توضيحية للطرق. (Ib1669)
إصلاح الأخطاء
- تمت إعادة تسمية ExtensionMode#BEAUTY إلى FACE_RETOUCH لتقديم ما يتم تنفيذه من خلال وضع الإضافة بشكل صحيح. (I61f54، b/198515274)
- تم إصلاح مشكلة إغلاق الكاميرا بشكل غير متوقّع عند استخدام عدة عناصر من CameraController وPreviewView في نشاط واحد. (Ibfd18، b/197539358)
الإصدار 1.0.0-alpha28
18 أغسطس 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha28 وandroidx.camera:camera-view:1.0.0-alpha28. يتضمّن الإصدار 1.0.0-alpha28 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إزالة التعليق التوضيحي ExperimentalUseCaseGroupLifecycle لأنّ واجهات برمجة التطبيقات لم تعُد تجريبية. (I17b85)
- تمت إعادة تصميم RotationListener وإعادة تسميته إلى RotationProvider. وتواصل تقديم الميزة نفسها باستخدام واجهة برمجة تطبيقات مختلفة قليلاً. (Idffc5)
- إعادة تسمية TAP_TO_FOCUS_UNSUCCESSFUL إلى TAP_TO_FOCUS_NOT_FOCUSED وTAP_TO_FOCUS_SUCCESSFUL إلى TAP_TO_FOCUS_FOCUSED تم جعل OutputSize نهائيًا (I099fa)
إصلاح الأخطاء
- تمت إزالة فئات
<EffectName><UseCase>Extenderالمتوقفة نهائيًا وExtensionsErrorListener وواجهات برمجة التطبيقات ذات الصلة في ExtensionsManager. (I3b8c3)
الإصدار 1.0.0-alpha27
21 يوليو 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha27 وandroidx.camera:camera-view:1.0.0-alpha27. يتضمّن الإصدار 1.0.0-alpha27 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت ترقية واجهة برمجة التطبيقات viewport API من مرحلة تجريبية. أزِل التعليق التوضيحي التجريبي لواجهة برمجة التطبيقات. (I717ea)
- تم تغيير اسم
CoordinateTransform#getTransformإلىCoordinateTransform#transformوتعديل JavaDoc (I864ae)
إصلاح الأخطاء
- تم إصلاح مشكلة تمدّد وضع "
PreviewView PERFORMANCE" عند استخدامه مع واجهة مستخدم Compose. (Ie1137، b/183864890)
الإصدار 1.0.0-alpha26
30 يونيو 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha26 وandroidx.camera:camera-view:1.0.0-alpha26. يتضمّن الإصدار 1.0.0-alpha26 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- إضافة طريقة جديدة
CameraController#getTapToFocusState()تعرض أحدث نتيجة لميزة "النقر للتركيز" (Iaccb0) - إضافة المزيد من ميزات الكاميرا الأساسية إلى CameraController: دوال getter/setter لنسبة العرض إلى الارتفاع المستهدَفة والدقة المستهدَفة ووضع الالتقاط وCameraControl والمنفّذين المخصّصين (Iea8f2)
- أضِف فئة RotationReceiver التي تتلقّى تغييرات تدوير السطح. يمكن استخدام هذه السمة لضبط التدوير المستهدَف عندما يكون الجهاز في الوضع العمودي أو الوضع الأفقي الثابت. (Ib278f)
- تم عرض واجهات برمجة تطبيقات عامة جديدة من النوع getEstimatedCaptureLatencyRange في فئة ExtensionsManager. (I6a8ec)
- تم إيقاف ExtensionsErrorListener نهائيًا. حاليًا، لا تُستخدَم هذه الواجهة إلا لمراقبة ما إذا كانت ميزة "المعاينة" أو "التقاط الصور" غير متوفّرة عند تفعيل أوضاع الإضافة. ستضيف CameraX تلقائيًا Preview أو ImageCapture إضافية لتعمل وظائف الإضافة بشكل جيد. بعد ذلك، لن يتم الإبلاغ عن أي خطأ من خلال هذه الواجهة. (I47d9e)
- تم عرض واجهات برمجة التطبيقات العامة الجديدة ExtensionsManager getInstance وisExtensionAvailable وgetExtensionEnabledCameraSelector، وتم إيقاف فئات
<EffectName><UseCase>Extenderالقديمة وواجهات برمجة التطبيقات ذات الصلة نهائيًا. (I329e6)
الإصدار 1.0.0-alpha25
2 يونيو 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha25 وandroidx.camera:camera-view:1.0.0-alpha25. يتضمّن الإصدار 1.0.0-alpha25 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- خرجت واجهات برمجة التطبيقات ExperimentalCameraFilter الآن من المرحلة التجريبية وأصبحت واجهات برمجة تطبيقات رسمية. ويمكن استخدامها بدون OptIn مع تعليقات توضيحية. (I4bc94)
- أضِف أداة مساعدة تحوّل الإحداثيات بين حالات الاستخدام. مثال على الاستخدام: تحويل الإحداثيات التي تم رصدها في حالة استخدام ImageAnalysis وتمييز العنصر الذي تم رصده في المعاينة. (I63ab1، b/137515129)
- تمت إزالة جهة الاتصال "
CameraView". تم استبدال "CameraView" بـ "CameraController". يُرجى الاطّلاع على دليل نقل البيانات لمعرفة كيفية نقل البيانات: (Id5005)
إصلاح الأخطاء
- تم استبدال
ExperimentalUseCaseGroupLifecycleبـExperimentalUseCaseGroup. (I3b2ef، b/159033688)
الإصدار 1.0.0-alpha24
21 أبريل 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha24 وandroidx.camera:camera-view:1.0.0-alpha24. يتضمّن الإصدار 1.0.0-alpha24 هذه التعديلات.
إصلاح الأخطاء
- تم استبدال التعليق التوضيحي
@Experimentalبـ@RequiresOptInفي واجهات برمجة التطبيقات التجريبية. لاستدعاء واجهات برمجة التطبيقات التجريبية، استخدِمandroidx.annotation.OptInبدلاً منandroidx.annotation.experimental.UseExperimentalالتي تم إيقافها نهائيًا. (Iff226) - تم إصلاح مشكلة تمدّد PreviewView على جهاز Samsung J5 Prime (Ib10b6)
الإصدار 1.0.0-alpha23 من Camera Extensions وCamera View
24 مارس 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha23 وandroidx.camera:camera-view:1.0.0-alpha23. يتضمّن الإصدار 1.0.0-alpha23 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- سيتم إيقاف CameraView نهائيًا. يُرجى استخدام "
LifecycleCameraController" بدلاً منها. يُرجى الاطّلاع على دليل نقل البيانات (Idac2c). - تمت إضافة تعليق توضيحي FloatRange إلى setLinearZoom() (I69971)
إصلاح الأخطاء
- تم تثبيت تبعيات عرض الكاميرا للاعتماد على عناصر الإصدار 1.0.0. لن يؤدي الاعتماد على camera-view بعد الآن إلى ترقية camera-core وcamera-camera2 وcamera-lifecycle تلقائيًا إلى أحدث عناصر الإصدار 1.1.0 من خلال حلّ التبعيات في Gradle، على الرغم من أنّ camera-view لا يزال متوافقًا مع هذه العناصر إذا تم ضبطها صراحةً لاستخدام الإصدار 1.1.0. (Ic8fa1، b/181599852)
- تم إصلاح مشكلة تمدّد المعاينة في PreviewView على أجهزة Samsung A3. (Iacb30، b/180121821)
- تم إصلاح المشكلة المتمثّلة في تعذُّر ضبط أداة اختيار الكاميرا قبل إعداد الكاميرا. (Ic8bd0)
الإصدار 1.0.0-alpha22 من Camera Extensions & View
24 فبراير 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha22 وandroidx.camera:camera-view:1.0.0-alpha22. يتضمّن الإصدار 1.0.0-alpha22 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- إضافة دالة getter لـ CameraInfo إلى CameraController (Ib8138، b/178251727)
إصلاح الأخطاء
- تم إصلاح ExtensionsErrorListener للإبلاغ عن الأخطاء عند ربط Preview أو ImageCapture فقط. (I5ae39)
الإصدار 1.0.0-alpha21 من Camera Extensions وCamera View
27 يناير 2021
تم طرح androidx.camera:camera-extensions:1.0.0-alpha21 وandroidx.camera:camera-view:1.0.0-alpha21. يتضمّن الإصدار 1.0.0-alpha21 هذه التعديلات.
إصدار لدعم عناصر مكتبة الكاميرا الأخرى.
الإصدار 1.0.0-alpha20 من Camera Extensions وView
16 ديسمبر 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha20 وandroidx.camera:camera-view:1.0.0-alpha20. يتضمّن الإصدار 1.0.0-alpha20 هذه التعديلات.
إصدار لدعم عناصر مكتبة الكاميرا الأخرى.
الإصدار 1.0.0-alpha19 من Camera-Extensions وCamera-View
11 تشرين الثاني (نوفمبر)، 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha19 وandroidx.camera:camera-view:1.0.0-alpha19. يتضمّن الإصدار 1.0.0-alpha19 هذه التعديلات.
إصلاح الأخطاء
- تمت إضافة التعليق التوضيحي "
@ExperimentalVideo" إلى عرض الكاميرا. يُشير هذا التعليق التوضيحي إلى واجهات برمجة التطبيقات التي توفّر وظائف فيديو تجريبية قد تتغيّر بعد تطوير الميزات بالكامل. يجب أن تستخدم أي طريقة تستخدم واجهات برمجة التطبيقات هذه التعليق التوضيحي@UseExperimentalمعExperimentalVideoكـmarkerClass. (I6d729)
الإصدار 1.0.0-alpha18 من Camera-Extensions
14 أكتوبر 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha18. يتضمّن الإصدار 1.0.0-alpha18 هذه التعديلات.
إصلاح الأخطاء
- تم تحسين وقت استجابة إعداد CameraX و bindToLifecycle (I61dc5)
- ستعرض الدالة
<UseCase>.getTargetRotation()القيمةSurface.ROTATION_0إذا تم استدعاؤها قبل إرفاقها بمثيل Camera، ما لم يتم ضبط targetRotation على Builder أو UseCase. (I80fcd)
الإصدار 1.0.0-alpha18 من Camera-View
14 أكتوبر 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha18. يتضمّن الإصدار 1.0.0-alpha18 هذه التعديلات.
إصدار لدعم عناصر مكتبة الكاميرا الأخرى.
الإصدار 1.0.0-alpha17 من Camera-Extensions
23 سبتمبر 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha17. يتضمّن الإصدار 1.0.0-alpha17 هذه التعديلات.
إصلاح الأخطاء
- إصدار متوافق مع Camera-Core 1.0.0-beta10
الإصدار 1.0.0-alpha17 من Camera-View
23 سبتمبر 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha17. يتضمّن الإصدار 1.0.0-alpha17 هذه التعديلات.
إصلاح الأخطاء
- إصدار متوافق مع Camera-Core 1.0.0-beta10
الإصدار 1.0.0-alpha16 من Camera-Extensions
16 أيلول (سبتمبر) 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha16. يتضمّن الإصدار 1.0.0-alpha16 هذه التعديلات.
إصلاح الأخطاء
- تمت إضافة طريقة في
ExtensionsManagerللحصول على عنصرExtensionsيُستخدَم لتفعيل الإضافات وإرسال طلبات البحث عنها في نُسخ الكاميرا (I4fb7e)
الإصدار 1.0.0-alpha16 من Camera-View
16 أيلول (سبتمبر) 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha16. يتضمّن الإصدار 1.0.0-alpha16 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- تمت إزالة "
PreviewView#setDeviceRotationForRemoteDisplayMode()" و"PreviewView#getDeviceRotationForRemoteDisplayMode()". تُستخدَم الطريقتان لتخصيص تدوير المعاينة، عندما لا يكون التدوير المطلوب هو تدوير الشاشة، مثل الشاشة البعيدة. للتعامل مع تدوير المعاينة غير المعروضة الآن، اضبط التدوير المطلوب باستخدامPreview#setTargetRotation()وPreviewView#getViewPort(targetRotation)المُضاف حديثًا. (Ib62cc) - تمت إعادة تسمية "
createSurfaceProvider()" إلى "getSurfaceProvider()". ستعرض الطريقة دائمًا مثيل Preview.SurfaceProvider نفسه. (Iff83c)
إصلاح الأخطاء
- تم فرض استخدام TextureView على PreviewView في حال تفعيل تأثير الإضافة، وإذا كان تنفيذ مكتبة المورّد يتطلّب إجراء عملية خاصة على مساحة العرض الناتجة. (I0c3cc)
- السماح بتدوير الهدف عشوائيًا في "المعاينة" يتم احتساب معلومات التحويل وإرجاعها إلى المستخدم بشكل فوري من خلال دالة استدعاء جديدة من النوع
TranformationInfoListener. (I21470)
المشاكل المعروفة
- في PreviewView، لا يتم استدعاء
OnClickListener#onClick()عندما ينقر المستخدم النهائي على PreviewView. يتم استخدام حدث اللمس عن طريق الخطأ من خلال PreviewView#onTouchEvent(). سيتم حلّ هذه المشكلة في الإصدار التالي. - قد تكون قيمة MeteringPoint التي تم الحصول عليها من
PreviewView#getMeteringPointFactory()غير صحيحة في حال استخدام ViewPort مع PreviewView.
الإصدار 1.0.0-alpha15 من Camera-Extensions
19 أغسطس 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha15. يتضمّن الإصدار 1.0.0-alpha15 هذه التعديلات.
إصلاح الأخطاء
- تتلقّى الطريقة
ExtensionsManager.init()الآن سياقًا كمَعلمة بدلاً من عدم تلقّي أي وسيطات. (Ife754) من المفترض ألا يتعطّل الإعداد بعد الآن عند استخدام Context لا يعرض عنصر Application من
Context.getApplicationContext(). (I3d3c9، b/160817073)الإصدار 1.0.0-alpha15 من Camera-View
19 أغسطس 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha15. يتضمّن الإصدار 1.0.0-alpha15 هذه التعديلات.
إصلاح الأخطاء
- تستخدم الدالة
DisplayOrientedMeteringPointFactoryمثيلCameraInfoبدلاً منCameraSelector، لذا هناك ربط مباشر بالكاميرا التي ستنشئ الدالة نقاطًا لها. جميع الفئات التي تستخدمDisplayOrientedMeteringPointFactoryتستخدم أيضًا مثيلCameraInfoبدلاً منCameraSelector. (I400c1) - تمت إزالة جهة الاتصال "
TextureViewMeteringPointFactory". توفّرPreviewViewواجهة برمجة تطبيقات عامة (createMeteringPointFactory()) لإنشاء مصنع لنقاط القياس بغض النظر عمّا إذا كان يستخدمTextureViewأوSurfaceView. (Ide693) - إعادة تسمية وضعَي التنفيذ
SURFACE_VIEW/TEXTURE_VIEWفي PreviewView إلىPERFORMANCE/COMPATIBLE، حيث يمثّلPERFORMANCEوضعSURFACE_VIEWالقديم، ويمثّلCOMPATIBLEوضعTEXTURE_VIEWالقديم (I0edc2) - بالنسبة إلى التقاط الصور، يمكنك استبدال علامة "القلب أفقيًا" في البيانات الوصفية استنادًا إلى اتجاه الكاميرا. (I28499)
الإصدار 1.0.0-alpha14 من Camera-Extensions
22 يوليو 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha14. يتضمّن الإصدار 1.0.0-alpha14 هذه التعديلات.
الإصدار 1.0.0-alpha14 من Camera-View
22 يوليو 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha14. يتضمّن الإصدار 1.0.0-alpha14 هذه التعديلات.
الإصدار 1.0.0-alpha13 من Camera-Extensions
24 يونيو 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha13. يتضمّن الإصدار 1.0.0-alpha13 هذه التعديلات.
إصلاح الأخطاء
- تمت إضافة واجهات تجريبية لفلترة الكاميرات حسب معرّف الكاميرا وخصائصها. (I28f61)
الإصدار 1.0.0-alpha13 من Camera-View
24 يونيو 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha13. يتضمّن الإصدار 1.0.0-alpha13 هذه التعديلات.
إصلاح الأخطاء
- لم يعُد CameraView يتعطّل مع ظهور IllegalArgumentException عند الربط بـ LifecycleOwner الذي تنتقل دورة حياته إلى حالة DESTROYED بعد فترة وجيزة من الربط. لن تحاول عمليات ربط مراحل النشاط في حالة DESTROYED فتح الكاميرا. (I7c2b8)
- أصبحت PreviewView StreamState متاحة الآن من خلال CameraView.getPreviewStreamState() (I21a2b)
الإصدار 1.0.0-alpha12 من Camera-Extensions
10 يونيو 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha12. يتضمّن الإصدار 1.0.0-alpha12 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تعطُّل التطبيق عند بدء تشغيله أثناء إعداد CameraX عندما يكون الهاتف في وضع "عدم الإزعاج". سيتم ضبط
InitializationExceptionيحتوي علىCameraUnavailableExceptionعلىListenableFutureلنتيجة الإعداد بدلاً من تعطُّل التطبيق. (I9909a، b/149413835)
الإصدار 1.0.0-alpha12 من Camera-View
10 يونيو 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha12. يتضمّن الإصدار 1.0.0-alpha12 هذه التعديلات.
إصلاح الأخطاء
- إضافة واجهة برمجة التطبيقات
PreviewView#getBitmap()التي تعرض تمثيل Bitmap للمحتوى المعروض على مساحة العرض الخاصة بالمعاينة (I9b500، b/157659818)
الإصدار 1.0.0-alpha11 من Camera-Extensions
27 مايو 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha11. يتضمّن الإصدار 1.0.0-alpha11 هذه التعديلات.
الإصدار 1.0.0-alpha12 من Camera-View
10 يونيو 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha12. يتضمّن الإصدار 1.0.0-alpha12 هذه التعديلات.
الميزات الجديدة
التغييرات في واجهة برمجة التطبيقات
إصلاح الأخطاء
- إضافة واجهة برمجة التطبيقات
PreviewView#getBitmap()التي تعرض تمثيل Bitmap للمحتوى المعروض على مساحة العرض الخاصة بالمعاينة (I9b500، b/157659818)
الإصدار 1.0.0-alpha11 من Camera-View
27 مايو 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha11. يتضمّن الإصدار 1.0.0-alpha11 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- إضافة واجهة برمجة التطبيقات
PreviewView#getPreviewStreamStateالتي تسمح للتطبيقات بمراقبة ما إذا كان يتم بث المعاينة أم لا عندما يكون PreviewView في وضع TEXTURE_VIEW، تضمن حالة STREAMING أيضًا ظهور صورة المعاينة. (Ic0906، b/154652477) - تمت إضافة واجهة برمجة التطبيقات
PreviewView#setDeviceRotationForRemoteDisplayMode()لتوفير تدوير الجهاز لعمليات حساب التحويل إذا كان التطبيق يعمل في وضع العرض عن بُعد. (I59b95، b/153514525)
إصلاح الأخطاء
- تم إصلاح مشكلة تشويه المعاينة في كاميرات
FULL/LIMITED/LEVEL_3التي تعمل بنظام التشغيل Android 7.0 والإصدارات الأقدم. يتم فرض استخدام وضع "ImplementationMode#TEXTURE_VIEW" عندما يكون إصدار Android 7.0 أو إصدار أقدم. (I83e30، b/155085307) - تمّت إزالة المَعلمة
CameraInfoمنPreviewView#createSurfaceProvider()، وتستردّهاPreviewViewالآن داخليًا منSurfaceRequest. (If18f0، b/154652477) - تم إصلاح نسبة العرض إلى الارتفاع التلقائية في VideoCapture لتصبح 16:9 في CameraView. (Ie6a7b، b/153237864)
- تم إصلاح مشاكل الشاشة السوداء في
PreviewViewعند التمرير سريعًا لإزالة جزءPreviewثم التمرير سريعًا لإعادته في ViewPager2. تم أيضًا حلّ المشكلة عندremoveView(previewview)ثمaddView(previewView). (Iab555، b/149877652، b/147354615) - يجب تعديل واجهة برمجة التطبيقات
CameraView#takePicture()للسماح بحفظ الصور في "Uri" و"OutputStream". تحديث التطبيق التجريبي لاستخدامUriكمثال أساسي (Ia2459، b/153607583) - يمكنك ضبط نوع مقياس PreviewView من تنسيق XML من خلال ضبط السمة
ScaleType. (I08565، b/153015659) - تمّت إزالة "
CameraView.ScaleType". بدلاً من ذلك، استخدِمPreviewView.ScaleTypeلضبط/الحصول على نوع المقياس باستخدام CameraView. (Ia8974، b/153014831) - يمكنك منح
PreviewViewلون خلفية تلقائيًا إذا لم يكن لديه لون خلفية. يمنع ذلك ظهور المحتوى خلفه قبل بدء بث المعاينة. (I09fad)
الإصدار 1.0.0-alpha10 من Camera-Extensions
نيسان (أبريل) 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.
إصلاح الأخطاء
- إصلاحات لدعم إصدار Camera-Core
الإصدار 1.0.0-alpha10 من Camera-View
نيسان (أبريل) 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha010. يتضمّن الإصدار 1.0.0-alpha010 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة معروفة سابقًا حيث لم يكن تنفيذ surfaceView في
PreviewViewيعمل بشكل جيد على أجهزة معيّنة، وكان يتسبب في تعطُّل التطبيق بعد استئناف المعاينة. (I5ed6b)
الإصدار 1.0.0-alpha09 من Camera-Extensions
1 أبريل 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.
إصلاح الأخطاء
- تم تعديل هذه الصفحة لتشمل إصلاحات الأخطاء في العناصر
camera-camera2:1.0.0-beta02وcamera-core:1.0.0-beta02وcamera-lifecycle:1.0.0-beta02
الإصدار 1.0.0-alpha09 من Camera-View
1 أبريل 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.
المشاكل المعروفة
- قد لا يعمل استخدام
ImplementationMode.SURFACE_VIEWمعPreviewViewبشكل جيد على أجهزة معيّنة، لأنّSurfaceViewالمستخدَم للمعاينة يُبطل سطحه عند إيقاف مراحل النشاط للنافذة التي يتوفّر فيها، وعند إعادة تشغيله، تتم إعادة فتح الكاميرا وقد يحاول استئناف المعاينة قبل أن يصبح سطحSurfaceViewصالحًا مرة أخرى. في الوقت الحالي، عليك استخدامImplementationMode.TEXTURE_VIEW.
التغييرات في واجهة برمجة التطبيقات
- تمت إعادة تسمية "
PreviewView.setImplementationMode()" إلى "PreviewView.setPreferredImplementationMode()". - تمت إعادة تسمية "
PreviewView.getImplementationMode()" إلى "PreviewView.getPreferredImplementationMode()". - تم استبدال
PreviewView.getSurfaceProvider()بـPreviewView.createSurfaceProvider(CameraInfo)، الذي يأخذ مثيلCameraInfoيمكن أن يكون فارغًا ويُستخدَم لتحسين المعاينة باستخدامImplementationMode.SURFACE_VIEWكلما أمكن ذلك. في حال تمرير مثيل فارغ أو ضبط وضع التنفيذ المفضّل علىImplementationMode.TEXTURE_VIEW، يتم استخدامImplementationMode.TEXTURE_VIEWداخليًا. يوضّح عينة التعليمات البرمجية التالية كيفية استخدام حالة استخدام المعاينة سابقًا مع PreviewView.
preview.setSurfaceProvider(previewView.previewSurfaceProvider) cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview)في الوقت الحالي، يمكنك كتابة ما يلي:
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview) previewView.preferredImplementationMode = ImplementationMode.TEXTURE_VIEW preview.setSurfaceProvider(previewView.createSurfaceProvider(camera.cameraInfo))تمت إضافة التعليق التوضيحي "
@UiThread" إلى "PreviewView.getSurfaceProvider()"، ما يعني أنّه يجب استدعاؤه من سلسلة التعليمات الرئيسية. (I192f3)تمت إضافة
PreviewView.setScaleType()الذي يسمح بضبط نوع مقياس المعاينة. يمكن إدخال إحدى القيم فيPreviewView.ScaleType، وتكون القيمة التلقائية هيPreviewView.ScaleType.FILL_CENTER.تمت إضافة
PreviewView.getScaleType().تمت إزالة إمكانية ضبط وضع التنفيذ لـ
PreviewViewفي تنسيق XML باستخدام السمةimplementationMode.إضافة واجهة برمجة التطبيقات
createMeteringPointFactory()إلى PreviewView لإتاحة تحويل (x, y) فيPreviewViewإلىMeteringPoint(Ib36d7)
إصلاح الأخطاء
- تم إصلاح الحالات التي يتم فيها عرض معاينة غير صحيحة بعد تغيير حجم "
PreviewView". (I71101)
الإصدار 1.0.0-alpha08 من Camera-Extensions
26 فبراير 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.
الإصدار 1.0.0-alpha08 من Camera-View
26 فبراير 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.
إصلاح الأخطاء
- تم استبدال
ListenableFutureفيSurfaceRequest.provideSurface()بـExecutorوCallback. يؤدي ذلك إلى تبسيط واجهة برمجة التطبيقات من خلال عدم الحاجة إلى معالجة الاستثناءات فيprovideSurface()وفرض عدم إلغاء طلب معاودة الاتصال فيprovideSurface(). يساعد ذلك في منع تعطُّل الأجهزة القديمة بسبب إصدار الأسطح قبل الأوان. يُستخدم الكائنSurfaceRequest.Resultالآن لتتبُّع كيفية استخدامSurfaceRequestلـSurfaceالمقدَّم. (I7854b) - تمت إعادة تسمية
SurfaceRequest.setSurface(Surface)إلىSurfaceRequest.provideSurface(Surface)وSurfaceRequest.setWillNotComplete()إلىSurfaceRequest.willNotProvideSurface(). (I224fe) - تم إصلاح عملية إعداد نُسخ التطبيق مع تفعيل ProGuard من خلال الاحتفاظ بالعلامة التي تضبط موفّر
CameraXConfigالتلقائي. (I2d6c1)
الإصدار 1.0.0-alpha07 من Camera-Extensions
10 فبراير 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 هذه التعديلات.
إصلاح الأخطاء
- تم الآن استبدال الوسيطات التي تم تمريرها سابقًا في
ImageCapture.OnImageSavedCallback.onError()وImageCapture.OnImageCapturedCallback.onError()بوسيطة واحدةImageCaptureException، والتي لا تزال تحتوي على جميع المعلومات التي تم تمريرها سابقًا. - تمت إزالة وسيطة الملف التي تم تمريرها سابقًا في
ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2)
الإصدار 1.0.0-alpha07 من Camera-View
10 فبراير 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 هذه التعديلات.
التغييرات في واجهة برمجة التطبيقات
- يضبط تنفيذ
TextureViewفيPreviewViewالآن حجمTextureViewعلى حجم ناتج أداة الاستشعار في الكاميرا قبل تغيير حجمه لملءPreviewViewالرئيسي. إذا أردت أن تملأ معاينة الكاميرا جزءًا كاملاً من واجهة المستخدم (الشاشة بأكملها على سبيل المثال)، يجب عدم ضبط حجمPreviewViewعلى قيمة ثابتة أو جعلها تلتف حول محتواها (باستخدام السمة "wrap_content" على سبيل المثال)، فقد يؤدي ذلك إلى ملء معاينة الكاميرا لجزء فقط منPreviewView(إذا كان حجم ناتج أداة استشعار الكاميرا أصغر). بدلاً من ذلك، يجب ضبطPreviewViewعلى حجم العنصر الرئيسي (باستخدام السمة "match_parent" مثلاً). (1204869)
إصلاح الأخطاء
- تم تعديل "
ImageCapture" للسماح بحفظ الصور في "Uri" و"OutputStream". تم دمج طرقtakePictureالمتعدّدة في طريقة واحدة. تم تعديل التطبيق التجريبي لاستخدامUriكمثال أساسي. (Ia3bec) - تم تغيير اسم "
Preview.PreviewSurfaceProvider" إلى "Preview.SurfaceProvider". لم تعُد واجهات برمجة التطبيقاتSurfaceProviderتتطلّب من المطوّرين إنشاءListenableFutureخاصة بهم، وأصبح توفيرSurfaceيتم الآن من خلال عنصرSurfaceRequestجديد. تمت إزالة الطريقةPreview.getPreviewSurfaceProvider()بسبب احتمال إساءة استخدامها عند إقرانPreviewبفئات أخرى مثلPreviewView. (I20105) - تم الآن استبدال الوسيطات التي تم تمريرها سابقًا في
ImageCapture.OnImageSavedCallback.onError()وImageCapture.OnImageCapturedCallback.onError()بوسيطة واحدةImageCaptureException، والتي لا تزال تحتوي على جميع المعلومات التي تم تمريرها سابقًا. - تمت إزالة وسيطة الملف التي تم تمريرها سابقًا في
ImageCapture.OnImageSavedCallback.onImageSaved(). (I750d2) - تم تعديل واجهة برمجة التطبيقات، حيث تم دمج طرق
getZoomRatio()وgetMaxZoomRatio()وgetMinZoomRatio()وgetLinearZoom()فيCameraInfoفيgetZoomState()التي تعرض مثيلZoomState. (Ib19fe)
الإصدار 1.0.0-alpha06 من Camera-Extensions
22 يناير 2020
تم طرح androidx.camera:camera-extensions:1.0.0-alpha06. يتضمّن الإصدار 1.0.0-alpha06 هذه التعديلات.
التحديثات
- إصلاحات وتحديثات متنوّعة لدعم تغييرات Camera Core وCamera2
الإصدار 1.0.0-alpha06 من Camera-View
22 يناير 2020
تم طرح androidx.camera:camera-view:1.0.0-alpha06. يتضمّن الإصدار 1.0.0-alpha06 هذه التعديلات.
التحديثات
- إصلاحات وتحديثات متنوّعة لدعم تغييرات Camera Core وCamera2
الإصدار 1.0.0-alpha05 من Camera-Extensions
18 ديسمبر 2019
تم طرح androidx.camera:camera-extensions:1.0.0-alpha05. يتضمّن الإصدار 1.0.0-alpha05 هذه التعديلات.
إصلاح الأخطاء
- تم تعديلها لتتطابق مع واجهات برمجة التطبيقات الداخلية لـ Camera Core.
الإصدار 1.0.0-alpha05 من Camera-View
18 ديسمبر 2019
تم طرح androidx.camera:camera-view:1.0.0-alpha05. يتضمّن الإصدار 1.0.0-alpha05 هذه التعديلات.
المشاكل المعروفة
- قد تكون نسبة العرض إلى الارتفاع غير صحيحة عند استخدام PreviewView (b/146215202).
الميزات الجديدة
- تم تنفيذ فئة جديدة باسم
PreviewView.TextureViewImplementationتعمل على مزامنة مراحل نشاط SurfaceTexture مع استخدام الكاميرا لسطح TextureView.
الإصدار 1.0.0-alpha04 من Camera-Extensions
4 ديسمبر 2019
تم طرح androidx.camera:camera-extensions:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 من camera-extensions هذه التعديلات
تغييرات واجهة برمجة التطبيقات
يتم الآن التحقّق من توفّر الإضافة وتفعيلها من خلال مَعلمة إدخال
CameraSelector. يجب أن يكون هذا هو نفسCameraSelectorالمستخدَم لربط حالة الاستخدام.val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA val builder = ImageCapture.Builder() val bokehImageCaptureExtender = BokehImageCaptureExtender.create(builder) if (bokehImageCaptureExtender.isExtensionAvailable(cameraSelector)) { bokehImageCaptureExtender.enableExtension(cameraSelector) } val imageCapture = builder.build() mCameraProvider?.bindToLifecycle(this, cameraSelector, imageCapture)يجب إعداد الإضافات قبل استخدام مكتبة الإضافات.
val availability = ExtensionsManager.init() Futures.addCallback<ExtensionsManager.ExtensionsAvailability>( availability, object : FutureCallback<ExtensionsManager.ExtensionsAvailability> { override fun onSuccess(availability: ExtensionsManager.ExtensionsAvailability?) { // Ready to make extensions calls } override fun onFailure(throwable: Throwable) { // Extensions could not be initialized } }, Executors.newSingleThreadExecutor() )
الإصدار 1.0.0-alpha04 من Camera-View
4 ديسمبر 2019
تم طرح androidx.camera:camera-view:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 من camera-view هذه التعديلات
تغييرات واجهة برمجة التطبيقات
- يتم توفير فئة
PreviewViewلعرض الناتج من حالة استخدام المعاينة في أحد التطبيقات بسهولة. يمكن تضمين
PreviewViewفي التنسيق:<androidx.camera.view.PreviewView android:id="@+id/preview_view" … />يوفّر
PreviewViewPreviewSurfaceProviderلربط حالة استخدام "النسخة الحصرية" بسهولةpreview.setPreviewSurfaceProvider(previewView.previewSurfaceProvider)ZoomLevel" أصبحت الآن "ZoomRatio" في تسمية واجهة برمجة التطبيقاتتغيّرت قابلية بعض مَعلمات الطريقة لأن تكون فارغة
الإصدار 1.0.0-alpha03 من Camera-Extensions وCamera-View
9 أكتوبر 2019
تم طرح androidx.camera:camera-extensions:1.0.0-alpha03 وandroidx.camera:camera-view:1.0.0-alpha03. هذه هي التعديلات المضمّنة في camera-extensions:1.0.0-alpha03 وهذه هي التعديلات المضمّنة في camera-view:1.0.0-alpha03.
الميزات الجديدة
- تمت إضافة أداة إعداد السياق للإضافات. تمت زيادة إصدار الإضافات إلى 1.1.0
الإصدار 1.0.0-alpha02 من Camera-Extensions وCamera-View
5 سبتمبر 2019
تم طرح androidx.camera:camera-extensions:1.0.0-alpha02 وandroidx.camera:camera-view:1.0.0-alpha02. هذه هي عمليات النشر المضمّنة في camera-extensions:1.0.0-alpha02 وهذه هي عمليات النشر المضمّنة في camera-view:1.0.0-alpha02.
- تمت إضافة اختبارات للتحقّق من أنّ
PreviewImageProcessorImplقد نفّذ الطوابع الزمنية بشكل صحيح. - يجب إصلاح تعذُّر الاختبار
ExtensionTestعلى جهاز Nexus 5 (مستوى واجهة برمجة التطبيقات 21) والتأكّد من توفُّر المعاينة.
الإصدار 1.0.0-alpha01 من Camera-Extensions وCamera-View
7 أغسطس 2019
تم طرح androidx.camera:camera-extensions:1.0.0-alpha01 وandroidx.camera:camera-view:1.0.0-alpha01.
هذه هي التعديلات المضمّنة في camera-extensions:1.0.0-alpha01 وهذه هي التعديلات المضمّنة في camera-view:1.0.0-alpha01
- مكتبة جديدة لإضافات الكاميرا المستقبلية للوصول إلى المؤثرات على الأجهزة المتوافقة لا تزال هذه المكتبة قيد التطوير.
- فئة جديدة لعرض الكاميرا لا تزال هذه المكتبة قيد التطوير.