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

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

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

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

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

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

חלוקת עבודה

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

האפליקציה צריכה לבצע את הפעולות הבאות:

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

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

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

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

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

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