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

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

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

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

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

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

تقسيم العمل

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

على تطبيقك تنفيذ ما يلي:

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

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

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

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

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

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