مفاهیم مدیریت پیش بارگذاری

مدیر پیش‌بارگذاری به شما کمک می‌کند تا با ارائه سریع‌تر محتوا به کاربران، تجربه بهتری را برای آنها فراهم کنید و هنگام تغییر از یک مورد به مورد دیگر، انتظار کمتری داشته باشند. همچنین به شما امکان می‌دهد مدت زمان و رتبه‌بندی پیش‌بارگذاری را برای هر مورد سفارشی کنید.

یک وضعیت رایج در رسانه‌های اجتماعی این است که یک برنامه، فهرستی یا چرخ فلکی از گزینه‌های رسانه‌ای را به کاربر نشان می‌دهد. برای مثال، یک برنامه ممکن است چرخ فلکی از ویدیوهای کوتاه را نشان دهد. وقتی یک ویدیو تمام می‌شود، برنامه به ویدیوی بعدی می‌رود. و اگر کاربر ویدیویی را که تماشا می‌کند دوست نداشته باشد، ممکن است با کشیدن انگشت خود به ویدیوی بعدی یا قبلی برود.

اگر محتوای ویدیویی را از قبل بارگذاری نکنید، این می‌تواند منجر به یک تجربه کاربری ناامیدکننده شود. کاربر با یک رسانه کار را تمام می‌کند و سپس باید منتظر بارگذاری رسانه بعدی بماند.

از طرف دیگر، اگر محتوا را بیش از حد بارگذاری کنید، باعث اتلاف انرژی و پهنای باند شبکه برای بارگذاری محتوایی می‌شود که ممکن است کاربر هرگز آن را پخش نکند.

DefaultPreloadManager به برنامه شما کمک می‌کند تا این نگرانی‌ها را متعادل کند. مدیر پیش‌بارگذاری با برنامه شما همکاری می‌کند تا تصمیم بگیرد که هر مورد رسانه چقدر مهم است و مقدار مناسب را از قبل بارگذاری می‌کند.

تقسیم کار

اگر از DefaultPreloadManager استفاده می‌کنید، بخشی از کار توسط کد شما و بخشی دیگر توسط مدیر preload انجام می‌شود.

برنامه شما باید موارد زیر را انجام دهد:

مدیر پیش‌بارگذاری موارد زیر را انجام می‌دهد:

  • این برنامه تمام موارد رسانه‌ای که برنامه شما به آن اضافه کرده است را ردیابی می‌کند.
  • هر بار که اولویت‌های آن به‌روزرسانی می‌شوند، با فراخوانی TargetPreloadStatusControl که توسط برنامه شما پیاده‌سازی شده است، از برنامه شما پرس‌وجو می‌کند. این فراخوانی برای فهمیدن میزان بارگذاری هر آیتم رسانه‌ای است.
  • پس از اینکه برنامه از آن درخواست کرد، مقدار مناسب از هر آیتم رسانه‌ای را پیش‌بارگذاری می‌کند. مدیر پیش‌بارگذاری تصمیم می‌گیرد که چه ترتیبی برای بارگذاری آیتم‌ها در نظر گرفته شود. این مدیر آیتم‌هایی را که به آیتمی که کاربر در حال پخش آن است نزدیک‌تر هستند، اولویت‌بندی می‌کند.
  • وقتی برنامه درخواست محتوا می‌کند، مدیر پیش‌بارگذاری، هر محتوایی که قبلاً بارگذاری شده است را در یک MediaSource ارائه می‌دهد.

پیش بارگذاری گردش کار مدیر

این بخش، یک گردش کار معمول برای برنامه‌ای که از مدیریت پیش‌بارگذاری استفاده می‌کند را شرح می‌دهد. در این مثال، فرض می‌کنیم برنامه یک چرخ فلک از ویدیوهای کوتاه را نمایش می‌دهد. ویدیوی انتخاب شده به طور خودکار پخش می‌شود، اما کاربر می‌تواند چرخ فلک را در هر جهتی که می‌خواهد حرکت دهد، که این کار باعث می‌شود ویدیوی در حال پخش متوقف شده و ویدیویی که کاربر به آن پیمایش می‌کند، شروع به پخش کند.

تمام این مراحل به تفصیل در صفحات بعدی مورد بحث قرار گرفته است.

  1. برنامه یک کنترل وضعیت پیش‌بارگذاری هدف ایجاد می‌کند. مدیر پیش‌بارگذاری از این کنترل پرس‌وجو می‌کند تا بفهمد چه مقدار از هر آیتم رسانه‌ای را باید بارگذاری کند.
  2. برنامه یک DefaultPreloadManager.Builder ایجاد می‌کند و کنترل وضعیت preload هدف را ارسال می‌کند. سپس برنامه از سازنده برای ایجاد preload manager استفاده می‌کند .
  3. این برنامه آیتم‌های رسانه‌ای را به مدیریت پیش‌بارگذاری اضافه می‌کند . این برنامه برای هر آیتم یک فهرست ارائه می‌دهد که موقعیت آیتم را در چرخ فلک مشخص می‌کند.
  4. برای هر آیتم رسانه‌ای، مدیر پیش‌بارگذاری، کنترل پیش‌بارگذاری هدف را فراخوانی می‌کند تا میزان بارگذاری آیتم را مشخص کند. کنترل پیش‌بارگذاری هدف ممکن است بگوید که مدت زمان مشخصی از محتوا را بارگذاری کند، فقط فراداده‌های آیتم را دریافت کند، یا در حال حاضر هیچ یک از آن آیتم را دریافت نکند. پس از اینکه مدیر پیش‌بارگذاری این اطلاعات را دریافت کرد، شروع به بارگذاری محتوای رسانه می‌کند.
  5. وقتی کاربر شروع به پخش محتوا می‌کند، برنامه، مدیر پیش‌بارگذاری را فراخوانی می‌کند تا یک MediaSource برای آن آیتم رسانه‌ای درخواست کند. برنامه همچنین تابع setCurrentPlayingIndex() را فراخوانی می‌کند تا به مدیر پیش‌بارگذاری بگوید کدام آیتم رسانه‌ای در حال پخش است، به طوری که اولویت‌های آیتم‌های رسانه‌ای به‌روزرسانی شوند.
  6. هر زمان که اولویت‌های مدیر پیش‌بارگذاری به‌روزرسانی شوند، کنترل پیش‌بارگذاری هدف را دوباره فراخوانی می‌کند تا بفهمد از هر مورد چه مقدار بارگذاری شود.
  7. وقتی برنامه چرخ فلک را می‌بندد، مدیر پیش‌بارگذاری را آزاد می‌کند تا منابع خود را آزاد کند.