الأجهزة والكاميرات القابلة للطي

ملاحظة: تشير هذه الصفحة إلى حزمة Camera2. ننصحك باستخدام CameraX ما لم يكن تطبيقك يتطلّب ميزات معيّنة منخفضة المستوى من Camera2. يتوافق كلّ من CameraX وCamera2 مع الإصدار 5.0 من نظام التشغيل Android (المستوى 21 من واجهة برمجة التطبيقات) والإصدارات الأحدث.

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

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

إذا كان تطبيق الكاميرا يستخدم SurfaceTexture أو مسار عرض مخصّصًا، يجب الانتباه إلى اتجاه استشعار الكاميرا.

ويضمن ذلك أن يكون المحتوى المعروض دائمًا في الوضع العمودي وأن تبقى البكسلات مربعة، ما يمنع تمديدها في الاتجاهات الأفقية أو الرأسية.

يوفّر هذا الدليل معلومات حول ما يجب أن يأخذه مطوّرو Camera2 في الاعتبار وخطوات تعديل عرض معاينة الكاميرا لحالات الجهاز القابل للطي المختلفة.

كيفية تأثير عمليات تبديل حالة الجهاز في الكاميرات

يمكن أن تشمل الأجهزة القابلة للطي ما يلي:

  • شاشة عرض خارجية واحدة أو أكثر
  • عدة أجهزة كاميرا

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

إذا فتح المطوّرون بث المعاينة وأطلقوه على كاميراLOGIX هذه، ستتبدّل الكاميرا تلقائيًا بين الأجهزة المادية استجابةً لحالات طيّ معيّنة.

على سبيل المثال، لنفترض أنّ هناك جهازًا قابلاً للطيّ مزوّدًا بشاشتَين:

  • شاشة عادية في الوضع العمودي مطوية مع كاميرا أمامية خارجية في الوضع العمودي
  • شاشة قابلة للطي مفعَّلة في الوضع غير المطوي مع كاميرا أمامية داخلية بوضع أفقي بالنسبة إلى الشاشة غير المطوية

عندما يطوّي المستخدم الجهاز أو يفرده أثناء بث تطبيق من الكاميرا المنطقية الأمامية، قد يبدِّل تنفيذ الجهاز بين الحساسات المادية الداخلية والخارجية استجابةً لكل تبديل في حالة الجهاز.

قد يتطلب تبديل العرض من التطبيق تعديل واجهة المستخدم.

بالإضافة إلى أي تعديلات على واجهة المستخدم، قد يحتاج المطوّرون إلى التفكير في تعديل كيفية عرض معاينة الكاميرا بالنسبة إلى الكاميرا الفعلية النشطة.

مفاتيح التحكّم في جهاز الكاميرا

توفّر واجهة جهاز الكاميرا المنطقي واجهات برمجة التطبيقات اللازمة للتعامل مع مفاتيح التبديل في الكاميرا. على المطوّرين مراقبة قيمة رقم التعريف المادي النشط.

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

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

إنّ أهم سمتَين للكاميرا يمكن أن تتغيّر وتؤثّر في عرض المعاينة هما اتجاه أداة الاستشعار واتجاه العدسة.

إذا كانت مسار عرض المعاينة في تطبيقك تعتمد على مَعلمات كاميرا ثابتة لحساب مصفوفة التحويل النهائية، تأكَّد من تمرير القيم الحالية وتعديل عمليات تحويل الرسومات.

لفهم خطوات معاينة الكاميرا بشكل أعمق وطريقة احتساب عمليات التحويل، يُرجى الرجوع إلى دليل معاينة الكاميرا.

افتراضات غير صحيحة إضافية

لا يُنصح بتخزين قيم سمات الكاميرا مؤقتًا.

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

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