"نافذة ضمن النافذة" هي نوع من وضع "نوافذ متعددة" المخصّص للأنشطة التي تشغّل فيديو بملء الشاشة. تتيح هذه الميزة للمستخدم مشاهدة فيديو في نافذة صغيرة مُثبَّتة في أحد زوايا الشاشة أثناء الانتقال بين التطبيقات أو تصفّح المحتوى على الشاشة الرئيسية.
الخلاصات
- تأكَّد من إخفاء عناصر واجهة المستخدم ومواصلة تشغيل الفيديو عندما يكون النشاط في وضع "نافذة ضمن النافذة".
- إيقاف ميزة تغيير الحجم بسلاسة للمحتوى غير الفيديوهات
- تقدّم أنشطة تشغيل الفيديو التي تتضمّن الحد الأدنى من واجهة المستخدم أفضل تجربة للمستخدم.
- تجنَّب عرض أي شيء آخر غير محتوى الفيديو.
إضافة ميزة "نافذة ضمن النافذة" إلى تطبيقك
لا يتيح النظام تلقائيًا ميزة "وضع الصورة في الصورة" للتطبيقات، ويجب إعلامه بأنّه يتيح هذه الميزة.
تظهر نافذة "وضع الصورة في الصورة" في أعلى طبقة من الشاشة، في زاوية يختارها النظام.
عناصر التحكّم
يقدّم Android تلقائيًا عناصر تحكّم في "وضع النافذة ضمن النافذة" لإغلاق النافذة وتوسيع شاشة الفيديو مجددًا إلى وضع ملء الشاشة والوصول إلى الإعدادات وتشغيل الوسائط. يمكن لتطبيقك إضافة إجراءات مخصّصة ومواد عرض رموز مناسبة للسماح للمستخدمين بالتفاعل مع محتوى PiP.
يمكن للمستخدم عرض عناصر التحكّم هذه من قائمة نافذة "صورة في صورة" من خلال النقر على النافذة على جهاز جوّال أو اختيار القائمة من جهاز التحكّم عن بُعد في التلفزيون. إذا كان التطبيق يستخدم جلسة وسائط نشطة، يتم أيضًا عرض عناصر التحكّم في التشغيل والإيقاف المؤقت والانتقال إلى المحتوى التالي والمحتوى السابق. اطّلِع على كيفية إضافة عناصر التحكّم هذه.
في وضع "نافذة ضمن النافذة"، يتم عرض نشاطك في نافذة صغيرة. لا يمكن للمستخدمين التفاعل مع عناصر واجهة المستخدم الأخرى في تطبيقك في هذا الوضع، وقد يكون من الصعب رؤية تفاصيل عناصر واجهة المستخدم الصغيرة في نافذة وضع "صورة في صورة".
الاستخدام
اسمح للمستخدمين بمواصلة مشاهدة الفيديو ليس فقط داخل تطبيقك، بل أيضًا على أجهزتهم. يتحكّم تطبيقك في وقت دخول النشاط الحالي إلى وضع "صورة في صورة"، ويمكن أن يكون ذلك من خلال تفاعل مثل مغادرة العرض الحالي أو التمرير سريعًا للانتقال إلى الصفحة الرئيسية.
في ما يلي بعض الأمثلة على الإجراءات المحتمَلة:
يمكن أن يدخل النشاط في وضع "صورة في صورة" عندما ينقر المستخدم على زر الشاشة الرئيسية أو يمسح شاشة الشاشة للأعلى للانتقال إلى الشاشة الرئيسية. بهذه الطريقة، تستمر "خرائط Google" في عرض الاتجاهات بينما ينفّذ المستخدم نشاطًا آخر في الوقت نفسه.
يمكن لتطبيقك نقل فيديو إلى وضع "نافذة ضمن النافذة" عندما يعود المستخدم من الفيديو لتصفّح محتوى آخر.
يمكن لتطبيقك تبديل الفيديو إلى وضع "نافذة ضمن النافذة" أثناء مشاهدة المستخدم لنهاية حلقة من المحتوى. تعرض الشاشة الرئيسية معلومات ترويجية أو موجزة عن الحلقة التالية في السلسلة.
يمكن أن يوفّر تطبيقك طريقة للمستخدمين لإضافة محتوى إضافي إلى قائمة المحتوى التالي أثناء مشاهدة فيديو. يستمر تشغيل الفيديو في وضع "نافذة ضمن النافذة" بينما تعرِض الشاشة الرئيسية نشاطًا لاختيار المحتوى.
استخدِم نمط تفاعل يكمل تجربة المشاهدة بدون أن يكون مزعجًا. على سبيل المثال، إذا كان الفيديو في نهاية حلقة من المحتوى، سيتطلب تفعيل وضع "نافذة ضمن نافذة" عند مغادرة الشاشة الرئيسية إجراءً إضافيًا من المستخدِم لإعادة التشغيل وإيقافه أو التنقّل في عناصر التحكّم الصغيرة.
في تطبيقك، قد يختار المستخدم فيديو جديدًا عند تصفّح المحتوى على الشاشة الرئيسية، بينما يكون نشاط تشغيل الفيديو في وضع "نافذة ضمن النافذة". تشغيل الفيديو الجديد في نشاط التشغيل الحالي في وضع ملء الشاشة، بدلاً من بدء نشاط جديد قد يربّك المستخدم
أنماط التفاعل
يمكن للمستخدمين سحب نافذة "وضع الصورة في الصورة" إلى موضع آخر.
نقرة واحدة على النافذة لعرض زر تبديل إلى وضع ملء الشاشة وزر إغلاق وزر إعدادات وإجراءات مخصّصة يوفّرها تطبيقك (مثل عناصر التحكّم في التشغيل)
انقر مرّتين على النافذة للتبديل بين حجم "نافذة ضمن النافذة" الحالي والحد الأقصى أو الحد الأدنى لحجم "نافذة ضمن النافذة". على سبيل المثال، يؤدي النقر مرّتين على نافذة مكبّرة إلى تصغيرها ، والعكس صحيح أيضًا.
أزِل النافذة من الشاشة عن طريق سحبها إلى الحافة اليمنى أو اليسرى. لإلغاء إخفاء النافذة ، انقر على الجزء المرئي من النافذة المخفية أو اسحبها للخارج.
تغيير حجم نافذة "صورة في صورة" باستخدام ميزة التصغير/التكبير بإصبعَين
مرِّر سريعًا للأسفل في ميزة "نافذة ضِمن نافذة" لإزالة النافذة.
الانتقالات
رسوم متحركة سلسة عند الدخول إلى وضع "نافذة ضمن النافذة"
عندما يشغّل المستخدم وضع "صورة في صورة"، يتم تصغير النشاط الحالي من ملء الشاشة إلى نافذة صغيرة تستمر في عرض المحتوى بدون التراكب على أي واجهة مستخدم.
أضاف نظام التشغيل Android 12 تحسينات جمالية كبيرة على الانتقالات المتحرّكة بين النوافذ التي تعمل بالوضع الكامل ووضع "صورة في صورة". ننصحك بشدة بتنفيذ جميع التغييرات السارية، وبعد إجراء ذلك، يتم تلقائيًا توسيع نطاق هذه التغييرات ليشمل الشاشات الكبيرة، مثل الشاشات القابلة للطي والأجهزة اللوحية، بدون الحاجة إلى اتّخاذ أي إجراء آخر.
إذا لم يتضمّن تطبيقك هذه التعديلات السارية، ستظل عمليات النقل في وضع "صورة في صورة" مفعّلة، ولكن الرسوم المتحركة ستكون أقل رونقًا. على سبيل المثال، يمكن أن يؤدي الانتقال من وضع ملء الشاشة إلى وضع "صورة في صورة" إلى اختفاء نافذة "صورة في صورة" أثناء الانتقال قبل أن تظهر مرة أخرى عند اكتمال عملية الانتقال.
بدءًا من نظام التشغيل Android 12، يوفّر الخيار
PictureInPictureParams.Builder.setAutoEnterEnabled(true)
مؤثرًا متحركًا أكثر سلاسة للانتقال إلى محتوى الفيديو في وضع "نافذة داخل النافذة" باستخدام
تنقّل الإيماءات، على سبيل المثال، عند التمرير سريعًا للأعلى للانتقال إلى الشاشة الرئيسية من وضع ملء الشاشة.
ننصحك بذلك إذا كان تطبيقك يندرج ضمن فئة تطبيقات ENTERTAINMENT
أو COMMUNICATION
أو
VIDEO_PLAYER
.
إذا لم يتضمّن تطبيقك هذا التغيير، ستظل عمليات النقل إلى وضع "نافذة في نافذة" باستخدام الإيماءات متاحة، ولكن ستكون الرسوم المتحركة أقل رونقًا. يعرض الفيديو 1 مثالاً على ذلك: يتم تصغير النافذة إلى رمز التطبيق ثم اختفائها، ثم تظهر مجددًا عند اكتمال عملية النقل.
عرض مرئيات الفيديو بسلاسة
عندما طرحنا وضع "نافذة ضمن النافذة" في Android 8.0، كان الرمز sourceRectHint
يشير إلى منطقة
النشاط التي تظهر بعد الانتقال إلى وضع "نافذة ضمن النافذة"، مثل
حدود عرض الفيديو في مشغّل الفيديو. بدءًا من Android 12،
يستخدم نظام التشغيل sourceRectHint
لتنفيذ صورة متحركة أكثر سلاسة عند
الدخول إلى وضع "نافذة ضمن النافذة" والخروج منه.
إذا لم يقدّم تطبيقك sourceRectHint
مناسبًا، ستظل عمليات النقل في وضع "نافذة ضمن النافذة"
صالحة للاستخدام، ولكن ستكون الرسوم المتحركة أقل روعة. على سبيل المثال، يعرض الفيديو 3 مثالاً أقل دقةً للتحوّل من وضع ملء الشاشة إلى وضع "نافذة ضمن النافذة": بعد تقلّص حجم
نافذة ملء الشاشة لتصبح "نافذة ضمن النافذة"، يتم تغطيتها بعنصر تراكبي أسود
قبل إظهار الفيديو مرة أخرى.
sourceRectHint
بشكل صحيح في ميزة "صورة في صورة"للاطّلاع على مثال على شكل الصورة المتحركة في وضع "صورة في صورة" عند تنفيذ sourceRectHint
بشكلٍ مناسب، يمكنك مشاهدة الفيديو 2 في القسم السابق.
يمكنك الرجوع إلى نموذج ميزة "نافذة ضمن النافذة" في Kotlin لنظام Android كمرجع لتوفير تجربة انتقالية مُحسَّنة.
لمزيد من المعلومات حول تنفيذ ميزة "نافذة ضمن النافذة"، يُرجى الاطّلاع على مستندات المطوّرين المخصصة لميزة "نافذة ضمن النافذة".