مفاهيم "أداة التحميل المُسبَق"

يساعدك مدير التحميل المُسبَق في تقديم تجربة أفضل للمستخدمين من خلال عرض المحتوى بشكل أسرع وتقليل وقت الانتظار عند التبديل من عنصر إلى آخر. يتيح لك أيضًا تخصيص مدة التحميل المسبق وترتيبه لكل عنصر.

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

إذا لم يتم التحميل المُسبَق لمحتوى الفيديو، قد يؤدي ذلك إلى تجربة مستخدم محبطة. ينتهي المستخدم من بعض الوسائط ثم يضطر إلى الانتظار حتى يتم تحميل الوسائط التالية.

من ناحية أخرى، إذا تم التحميل المسبق للمحتوى بشكل مفرط، سيؤدي ذلك إلى استهلاك الطاقة ونطاق ترددي للشبكة في تحميل محتوى قد لا يشغّله المستخدم أبدًا.

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

تقسيم العمل

إذا كنت تستخدم DefaultPreloadManager، سيتم تنفيذ بعض المهام من خلال الرمز، وبعضها من خلال أداة إدارة التحميل المُسبَق.

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

تنفِّذ "أداة إدارة التحميل المُسبَق" ما يلي:

  • يتتبّع هذا الجدول جميع عناصر الوسائط التي أضافها تطبيقك إليه.
  • في كل مرة يتم فيها تعديل الأولويات، يتم إرسال طلب بحث إلى تطبيقك من خلال استدعاء TargetPreloadStatusControl الذي نفّذه تطبيقك. ويتم استدعاء هذا الإجراء لمعرفة مقدار كل عنصر وسائط يجب تحميله.
  • بعد أن يطلب التطبيق البيانات، يتم التحميل المُسبَق للكمية المناسبة من كل عنصر وسائط. يقرّر مدير التحميل المُسبَق ترتيب تحميل العنصر. تعطي هذه السمة الأولوية للعناصر الأقرب إلى العنصر الذي يشغّله المستخدم.
  • عندما يطلب التطبيق محتوًى، يوفّر مدير التحميل المُسبَق MediaSource مع أي محتوى تم تحميله مسبقًا.

سير عمل أداة إدارة التحميل المُسبَق

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

تتم مناقشة كل هذه الخطوات بالتفصيل في الصفحات التالية.

  1. ينشئ التطبيق عنصر تحكّم في حالة التحميل المُسبَق المستهدَف. يطلب مدير التحميل المسبق هذا العنصر للتحكّم لمعرفة مقدار كل عنصر وسائط يجب تحميله.
  2. ينشئ التطبيق DefaultPreloadManager.Builder، ويجتاز عنصر التحكّم في حالة التحميل المسبق المستهدَف. بعد ذلك، يستخدم التطبيق أداة الإنشاء لإنشاء مدير التحميل المُسبَق.
  3. يضيف التطبيق ملفات وسائط إلى مدير التحميل المُسبَق. يوفّر التطبيق فهرسًا لكل عنصر، يحدّد موضع العنصر في لوحة العرض الدوّارة.
  4. بالنسبة إلى كل عنصر وسائط، يستدعي مدير التحميل المُسبَق أداة التحكّم المستهدَفة في التحميل المُسبَق للاستعلام عن مقدار العنصر الذي يجب تحميله. قد يطلب عنصر التحكّم في التحميل المُسبَق المستهدَف تحميل مدة معيّنة من المحتوى، أو جلب البيانات الوصفية الخاصة بالعنصر فقط، أو عدم جلب أي من هذه البيانات في الوقت الحالي. بعد أن يحصل مدير التحميل المسبق على هذه المعلومات، يبدأ في تحميل محتوى الوسائط.
  5. عندما يبدأ المستخدم تشغيل المحتوى، يستدعي التطبيق أداة إدارة التحميل المُسبَق لطلب MediaSource لعنصر الوسائط هذا. يستدعي التطبيق أيضًا setCurrentPlayingIndex() لإخبار مدير التحميل المُسبَق بعنصر الوسائط الذي يتم تشغيله، وذلك ليتم تعديل أولويات عناصر الوسائط.
  6. عند تعديل أولويات مدير التحميل المُسبَق، يتم استدعاء عنصر التحكّم في التحميل المُسبَق المستهدَف مرة أخرى لمعرفة مقدار كل عنصر يجب تحميله.
  7. عندما يغلق التطبيق لوحة العرض الدوّارة، يحرّر مدير التحميل المسبق لإتاحة موارده.