טעינה מראש של מונחים בחשבון ניהול

מנהל הטעינה מראש עוזר לכם לספק למשתמשים חוויה טובה יותר, כי הוא מציג להם תוכן מהר יותר, עם פחות זמן המתנה כשהם עוברים מפריט אחד לאחר. הוא גם מאפשר לכם להתאים אישית את משך הטעינה מראש ואת הדירוג של הטעינה מראש לכל פריט.

מצב נפוץ ברשתות החברתיות הוא שאפליקציה מציגה למשתמש רשימה או קרוסלה של אפשרויות מדיה. לדוגמה, באפליקציה מסוימת יכולה להופיע קרוסלה של סרטונים קצרים. כשסרטון אחד מסתיים, האפליקציה עוברת לסרטון הבא. אם המשתמש לא אוהב את הסרטון שהוא צופה בו, הוא יכול להחליק לסרטון הבא או לסרטון הקודם.

אם לא טוענים מראש את קטע הווידאו, חוויית השימוש עלולה להיות מתסכלת. המשתמש מסיים לצפות במדיה מסוימת ואז צריך לחכות עד שהמדיה הבאה תיטען.

מצד שני, אם טוענים מראש את התוכן בצורה אגרסיבית מדי, זה מבזבז חשמל ורוחב פס של הרשת על טעינת תוכן שהמשתמש אולי לא יפעיל אף פעם.

DefaultPreloadManager עוזר לאפליקציה לאזן בין השיקולים האלה. מנהל הטעינה מראש פועל עם האפליקציה כדי להחליט עד כמה כל קובץ מדיה חשוב, וטוען את הכמות המתאימה מראש.

חלוקת עבודה

אם משתמשים ב-DefaultPreloadManager, חלק מהעבודה מתבצעת על ידי הקוד וחלק על ידי מנהל הטעינה מראש.

האפליקציה צריכה:

מנהל הטעינה מראש מבצע את הפעולות הבאות:

  • הוא עוקב אחרי כל קובצי המדיה שהאפליקציה הוסיפה אליו.
  • בכל פעם שהעדיפויות מתעדכנות, המערכת שולחת שאילתה לאפליקציה באמצעות קריאה ל- TargetPreloadStatusControl שהאפליקציה מטמיעה. המערכת קוראת ל- כדי לברר כמה מכל קובץ מדיה צריך לטעון.
  • אחרי שהיא שולחת שאילתה לאפליקציה, היא טוענת מראש את הכמות המתאימה של כל קובץ מדיה. מנהל הטעינה מראש מחליט באיזה סדר לטעון את הפריט. הוא נותן עדיפות לפריטים שהכי קרובים לפריט שהמשתמש מפעיל.
  • כשהאפליקציה מבקשת תוכן, מנהל הטעינה מראש מספק MediaSource עם התוכן שכבר נטען.

תהליך עבודה של מנהל טעינה מראש

בקטע הזה מתואר תהליך עבודה אופייני לאפליקציה שמשתמשת במנהל הטעינה מראש. בדוגמה הזו, נניח שהאפליקציה מציגה קרוסלה של סרטונים קצרים. הסרטון שנבחר מופעל באופן אוטומטי, אבל המשתמש יכול לגלול את הקרוסלה לכל כיוון. פעולה זו עוצרת את הסרטון שפעל ומפעילה את הסרטון שאליו המשתמש גלל.

כל השלבים האלה מפורטים בדפים הבאים.

  1. האפליקציה יוצרת פקד סטטוס טעינה מראש של היעד. מנהל הטעינה מראש שולח שאילתה לפקד הזה כדי לברר כמה מכל קובץ מדיה צריך לטעון.
  2. האפליקציה יוצרת DefaultPreloadManager.Builder ומעבירה את פקד סטטוס הטעינה מראש של היעד. לאחר מכן, האפליקציה משתמשת ב-builder כדי ליצור את מנהל הטעינה מראש.
  3. האפליקציה מוסיפה קובצי מדיה למנהל הטעינה מראש. האפליקציה מספקת אינדקס לכל פריט, שמציין את המיקום של הפריט בקרוסלה.
  4. לגבי כל קובץ מדיה, מנהל הטעינה מראש קורא לפקד הטעינה מראש של היעד כדי לשלוח שאילתה לגבי כמות הקובץ שצריך לטעון. יכול להיות שפקד הטעינה מראש של היעד יורה לטעון תוכן באורך מסוים, לאחזר רק את המטא-נתונים של הפריט או לא לאחזר את הפריט בכלל בשלב הזה. אחרי שמנהל הטעינה מראש מקבל את המידע הזה, הוא מתחיל לטעון את תוכן המדיה.
  5. כשהמשתמש מתחיל להפעיל תוכן, האפליקציה קוראת למנהל הטעינה מראש כדי לבקש MediaSource לפריט המדיה הזה. האפליקציה גם קוראת ל-setCurrentPlayingIndex() כדי להודיע למנהל הטעינה מראש איזה קובץ מדיה מופעל, כדי שסדרי העדיפויות של קובצי המדיה יעודכנו.
  6. בכל פעם שסדרי העדיפויות של מנהל הטעינה מראש מתעדכנים, הוא קורא שוב לפקד הטעינה מראש של היעד כדי לגלות כמה מכל פריט צריך לטעון.
  7. כשהאפליקציה סוגרת את הקרוסלה, היא משחררת את מנהל הטעינה מראש כדי לפנות את המשאבים שלו.