Önceden yükleme yöneticisi kavramları

Önceden yükleme yöneticisi, kullanıcılara içerikleri daha hızlı sunarak ve bir öğeden diğerine geçerken daha az beklemelerini sağlayarak daha iyi bir deneyim sunmanıza yardımcı olur. Ayrıca, öğe başına ön yükleme süresini ve sıralamasını da özelleştirebilirsiniz.

Sosyal medyada sık karşılaşılan bir durum, uygulamanın kullanıcıya medya seçeneklerinin listesini veya bandını göstermesidir. Örneğin, bir uygulamada kısa videolardan oluşan bir bant gösterilebilir. Bir video bittiğinde uygulama bir sonrakine geçer. İzlediği videoyu beğenmeyen kullanıcılar, sayfayı kaydırarak bir sonraki veya önceki videoya geçebilir.

Video içeriğini önceden yüklemezseniz bu durum, kullanıcı deneyimini olumsuz etkileyebilir. Kullanıcı bir medyayı bitirdikten sonra bir sonraki medyanın yüklenmesini beklemek zorunda kalır.

Öte yandan, içeriği çok agresif bir şekilde önceden yüklerseniz bu, kullanıcının hiçbir zaman oynatmayabileceği içeriği yüklemek için güç ve ağ bant genişliğini boşa harcar.

DefaultPreloadManager, uygulamanızın bu endişeleri dengelemesine yardımcı olur. Önceden yükleme yöneticisi, her medya öğesinin ne kadar önemli olduğuna karar vermek için uygulamanızla birlikte çalışır ve uygun miktarı önceden yükler.

İş bölümü

DefaultPreloadManager kullanıyorsanız bazı işlemler kodunuz, bazı işlemler ise önceden yükleme yöneticisi tarafından yapılır.

Uygulamanızın şunları yapması gerekir:

Ön yükleme yöneticisi şunları yapar:

  • Uygulamanızın eklediği tüm medya öğelerini takip eder.
  • Öncelikleri her güncellendiğinde, uygulamanız tarafından uygulanan bir TargetPreloadStatusControl işlevini çağırarak uygulamanıza sorgu gönderir. Bu işlevi, her medya öğesinden ne kadar yükleneceğini öğrenmek için çağırır.
  • Uygulamaya sorgu gönderdikten sonra her medya öğesinden uygun miktarda önceden yükler. Ön yükleme yöneticisi, öğenin hangi sırayla yükleneceğine karar verir. Kullanıcının oynadığı öğeye en yakın olan öğelere öncelik verir.
  • Uygulama içerik istediğinde, önceden yükleme yöneticisi MediaSource ile birlikte önceden yüklenmiş olan tüm içerikleri sağlar.

Önceden yükleme yöneticisi iş akışı

Bu bölümde, preload yöneticisini kullanan bir uygulamanın tipik iş akışı açıklanmaktadır. Bu örnekte, uygulamanın kısa videolardan oluşan bir bant gösterdiğini varsayıyoruz. Seçilen video otomatik olarak oynatılır ancak kullanıcı, ruloyu iki yönde de kaydırabilir. Bu durumda, oynatılan video durdurulur ve kaydırılan video oynatılmaya başlar.

Bu adımların tümü aşağıdaki sayfalarda ayrıntılı olarak açıklanmıştır.

  1. Uygulama, hedef önceden yükleme durumu kontrolü oluşturur. Önceden yükleme yöneticisi, her medya öğesinin ne kadarının yükleneceğini öğrenmek için bu denetimi sorgular.
  2. Uygulama bir DefaultPreloadManager.Builder oluşturur ve hedef önceden yükleme durumu kontrolünden geçer. Uygulama daha sonra ön yükleme yöneticisini oluşturmak için oluşturucuyu kullanır.
  3. Uygulama, önceden yükleme yöneticisine medya öğeleri ekler. Uygulama, her öğe için bir dizin sağlar ve öğenin banttaki konumunu belirtir.
  4. Önceden yükleme yöneticisi, her medya öğesi için hedef önceden yükleme kontrolünü çağırarak öğenin ne kadarının yüklenmesi gerektiğini sorgular. Hedef önceden yükleme kontrolü, belirli bir süre boyunca içerik yüklenmesini, yalnızca öğenin meta verilerinin getirilmesini veya bu öğenin şu anda getirilmemesini isteyebilir. Ön yükleme yöneticisi bu bilgileri aldıktan sonra medya içeriğini yüklemeye başlar.
  5. Kullanıcı içeriği oynatmaya başladığında uygulama, önceden yükleme yöneticisini çağırarak söz konusu medya öğesi için MediaSource isteğinde bulunur. Uygulama, önceden yükleme yöneticisine hangi medya öğesinin oynatıldığını bildirmek için setCurrentPlayingIndex() işlevini de çağırır. Böylece medya öğelerinin öncelikleri güncellenir.
  6. Ön yükleme yöneticisinin öncelikleri her güncellendiğinde, her öğeden ne kadar yükleneceğini öğrenmek için hedef ön yükleme kontrolünü tekrar çağırır.
  7. Uygulama, döngüyü kapattığında kaynaklarını boşaltmak için ön yükleme yöneticisini serbest bırakır.