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

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

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

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

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

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

חלוקת עבודה

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

האפליקציה שלך צריכה לעמוד בדרישות הבאות:

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

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

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

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

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

  1. האפליקציה יוצרת target preload status control. מנהל הטעינה מראש שולח שאילתה לבקר הזה כדי לגלות כמה מכל פריט מדיה צריך לטעון.
  2. האפליקציה יוצרת DefaultPreloadManager.Builder ועוברת את הבדיקה של סטטוס הטעינה מראש של היעד. לאחר מכן, האפליקציה משתמשת בכלי ליצירת מנהל הטעינה מראש.
  3. האפליקציה מוסיפה פריטי מדיה למנהל הטעינה מראש. האפליקציה מספקת אינדקס לכל פריט, שמציין את המיקום של הפריט בקרוסלה.
  4. אחרי שמוסיפים את כל המדיה, האפליקציה קוראת ל-invalidate() כדי להגדיר את העדיפויות של כל פריט ואז לטעון אותו מראש.
  5. לכל פריט מדיה, מנהל הטעינה מראש קורא את אמצעי הבקרה של טעינת היעד מראש כדי לברר כמה מהפריט צריך לטעון. יכול להיות שרכיב הבקרה של טעינת היעד מראש יורה לטעון תוכן למשך זמן מסוים, רק לאחזר את המטא-נתונים של הפריט או לא לאחזר את הפריט בשלב הזה. אחרי שמנהל הטעינה מראש מקבל את המידע הזה, הוא מתחיל לטעון את תוכן המדיה.
  6. כשהמשתמש מתחיל להפעיל תוכן, האפליקציה קוראת למנהל הטעינה מראש כדי לבקש MediaSource עבור פריט המדיה הזה. האפליקציה גם קוראת ל-setCurrentPlayingIndex() כדי להודיע למנהל הטעינה מראש איזה פריט מדיה מושמע.
  7. אם המשתמש עובר לפריט מדיה אחר, האפליקציה מבקשת את הפריט הזה ממנהל הטעינה מראש, וגם מעדכנת את האינדקס של הפריט שמופעל כרגע. לאחר מכן, הפונקציה קוראת שוב ל-invalidate() כדי להודיע למנהל הטעינה מראש לעדכן את העדיפויות שלו על סמך מה שמופעל עכשיו.
  8. אם האפליקציה מוסיפה או מסירה פריטי מדיה לקרוסלה, היא גם מוסיפה או מסירה את הפריטים האלה למנהל הטעינה מראש, ומבצעת קריאה ל-invalidate() כשהיא מסיימת את הפעולה הזו.
  9. בכל פעם שהתוקף של העדיפויות של מנהל הטעינה מראש פג, הוא קורא שוב לפקד הטעינה מראש של היעד כדי לגלות כמה מכל פריט לטעון.
  10. כשהאפליקציה סוגרת את הקרוסלה, היא משחררת את מנהל הטעינה מראש כדי לפנות את המשאבים שלה.