Exo-Player’a Dalalım (Bölüm IV): Videoyu Önbelleğe Alma | Prateek Batra tarafından

Exo-Player'a Dalalım (Bölüm IV): Videoyu Önbelleğe Alma |  Prateek Batra tarafından

İçine girmekg, bir sunucudan bir istemciye ses veya video dosyalarının sürekli aktarımıdır (çevrimiçi video izlemeyi mümkün kılan süreç)

Arabelleğe alma, video oynatılırken gerçekleşen bir şeydir. Bu, video içeriği parçalarını önceden yükleme uygulamasıdır ve videolar, videonun tamamı yüklenmeden önce oynatılmaya başlayabileceğinden, akışın daha sorunsuz çalışmasına yardımcı olur.

Şimdi çok fazla ara belleğe almaya neden olabilecek nedenlerin bir listesi olabilir, bunlardan bazıları Yavaş İnternet, HD İçerik Akışı ve Ağda Çok Fazla Gecikmedir.

Çözüm ne peki 🤔 ?

Artık çok fazla arabelleğe alma, uygulama kullanıcılarımızdan herhangi biri için büyük bir acı noktası olabilir, buna birçok farklı çözümümüz var.

Şimdi bu yazıda, video içeriğini nasıl önbelleğe alabileceğinizi ele alacağız.

Temel kurulum
Temel kurulum için Bölüm 1’i takip edebilirsiniz:

Demo Repo

Artık dahili önbelleğe alma, ExoPlayer tarafından kullanılan Veri Kaynağı Fabrikası ile birlikte çalışır.

Burada Data Source Factory, bir akışın yığınını ağ veya yerel veya önbellek kaynağı üzerinden okuyan ve bunu ExoPlayer’ın kullanımına sunan bir Veri Akışı Okuyucusudur.

Veri Kaynağımızı Önbelleğe Almak için, onunla birlikte temel android önbelleğini kullanacak Önbellek Veri Kaynağını kullanacağız, buna ekleyebileceğimiz belirli bir yapılandırma var.

İşte nasıl:

Şimdi burada sadece harici bir dosya dizini ile birlikte temel önbelleği kullanıyoruz, yani İndirme Dizini
BağımsızVeritabanıSağlayıcı Yalnızca dahili olarak SQLite kullanan Media Player’ımız (ExoPlayer) tarafından kullanılan bir veritabanı sağlayıcısıdır.
NoOpCacheEvictor temel olarak önbellek bloğumuz için tahliye mekanizmasını tanımlar, ayrıca LRU Tahliyesini de kullanabiliriz.

Şimdi indirme önbelleğimizi başlattıktan sonra, bunu Önbellek Veri Kaynağı Fabrikamızı oluşturmak için kullanabiliriz ve bu, oynatıcı örneğimizi kurarken kullanılabilir.

CacheSink: Bu, herhangi bir veri akışını önbelleğe yazmak için kullanılan varsayılan bir parça ve arabellek boyutuna sahip bir Veri Yuvası türüdür.
Bunu boş tutmamız durumunda CacheDataSourceFactory’miz Salt Okunur olur

yukarı akışFabrika: Bu, önbelleğe alınmış veri olmaması durumunda, yani doğrudan ağdan veri okuyacağımız veri akışını belirtir.

Aşağı AkışFabrika: Bu, yerel dosya ve önbellek açısından verileri nerede veya nasıl okuyacağımızı belirtir.
Burada, kullanım durumumuza dayalı olarak Dosya Veri Kaynağını kullanıyoruz, ancak başka birçok Veri Kaynağı da var.

İŞARETLE HATADA ÖN BELLEĞİ YOKTUR: Bu, önbelleğe alınmış herhangi bir yığının mevcut olmaması veya hata vermesi durumunda karşılaştığımız herhangi bir hatayı yok saymaya yardımcı olan bir işarettir. Bu gibi durumlarda Up Stream Fabrikamız kullanılacaktır. Buna benzer 2 bayrağımız daha var FLAG_BLOCK_ON_CACHE ve FLAG_IGNORE_CACHE_FOR_UNSET_LENGTH_REQUESTS.

Önbellek Veri Kaynağı Fabrikası artık medya kaynakları oluşturmak için kullanılabilir ve Player’ımızla birlikte kullanılabilir.

Bununla birlikte yapılabilecek birçok derinlemesine yapılandırma ve deney var. Bu, temel önbelleğe almanın nasıl yapılacağına ilişkin bir demo uygulamasıdır. Yorumlarda ExoPlayer ve çeşitli şaşırtıcı özellikleri üzerinde nasıl çalıştığınızı bana bildirin.

Okuduğunuz için teşekkürler, harika makaleler için bizi izlemeye devam edin!

Beni yakalayın: https://twitter.com/its_pra_tick

Alkışları unutmayın, mutlu kodlamalar 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.