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

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

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

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

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

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

تقسيم العمل

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

يجب أن ينفّذ تطبيقك ما يلي:

ينفّذ مدير التحميل المُسبَق ما يلي:

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

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

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

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

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