Instagram ve Facebook, Media3 PreloadManager ile anında oynatma özelliği sunuyor ve kullanıcı etkileşimini artırıyor
Okuma süresi: 4 dk.
Sosyal medyanın dinamik dünyasında, kullanıcıların dikkatini çekmek veya kaybetmek çok hızlı gerçekleşir. Meta uygulamaları (Facebook ve Instagram), dünyanın en büyük sosyal medya platformları arasında yer alır ve dünya genelinde milyarlarca kullanıcıya hizmet verir. Meta için videoları sorunsuz bir şekilde yayınlamak yalnızca bir özellik değil, kullanıcı deneyiminin temelidir. Kısa videolar, özellikle de Facebook Haber Kaynağı ve Instagram Reels, etkileşimin birincil kaynağı haline geldi. Yaratıcı ifadeye ve hızlı içerik tüketimine olanak tanıyan bu videolar, dünyanın dört bir yanındaki insanları birbirine bağlar ve eğlendirir.
Bu blog yayınında, Meta'nın gerçek anında oynatma özelliği sunarak milyarlarca kullanıcı için video oynatmayı nasıl dönüştürdüğü anlatılıyor.
Kısa videolardaki gecikme farkı
Kısa videolar, kullanıcılar feed'lerinde hızlıca gezinirken çok hızlı etkileşimlere yol açar. Sürekli değişen bir feed'deki videolar arasında sorunsuz geçiş sağlamak, anında oynatma konusunda benzersiz engeller oluşturur. Bu nedenle, geleneksel disk önbelleğe alma ve standart reaktif oynatma stratejilerinin ötesine geçen çözümlere ihtiyacımız var.
Media3 PreloadManager ile geleceğe yönelik yol haritası
Jetpack Media3, kısa içeriklerin artmasıyla birlikte tüketim alışkanlıklarında meydana gelen değişiklikleri ve geleneksel uzun oynatma mimarisinin sınırlamalarını ele almak için PreloadManager'ı kullanıma sundu. Bu bileşen, geliştiricilerin disk önbelleğe almanın ötesine geçmesine olanak tanır. Kullanıcı oynat düğmesine basmadan önce medyayı bellekte hazır tutmak için ayrıntılı kontrol ve özelleştirme imkanı sunar. PreloadManager ile medya oynatmayla ilgili teknik ayrıntıları öğrenmek için bu blog serisini okuyun.
Meta, gerçek anlamda anında oynatmayı nasıl başardı?
Mevcut Karmaşıklıklar
Meta, daha önce video yayını için ısınma (oynatıcıları hazırlamak için) ve önceden getirme (içeriği diskte önbelleğe almak için) yöntemlerini birlikte kullanıyordu. Bu yöntemler ağ verimliliğini artırmaya yardımcı olsa da önemli zorlukları da beraberinde getirdi. Isınma, birden fazla oynatıcı örneğinin sırayla örneklendirilmesini gerektiriyordu. Bu da önemli miktarda bellek tüketiyor ve önceden yüklemeyi yalnızca birkaç videoyla sınırlıyordu. Bu yüksek kaynak talebi, modern ve hızlı kaydırılan sosyal medya feed'lerinde beklenen anında oynatmayı sağlamak için daha ölçeklenebilir ve sağlam bir çözümün uygulanabileceği anlamına geliyordu.
Media3 PreloadManager'ı entegre etme
Meta'nın Media Foundation Client ekibi, gerçekten anında oynatma deneyimi sunmak için Jetpack Media3 PreloadManager'ı Facebook ve Instagram'a entegre etti. Önceden yükleme ve oynatma sistemlerini birleştirmek için DefaultPreloadManager'ı seçtiler. Bu entegrasyon, PreloadManager ve ExoPlayer örnekleri arasında verimli kaynak paylaşımını sağlamak için Meta'nın mevcut mimarisinin yeniden düzenlenmesini gerektirdi. Bu stratejik değişiklik, önemli bir mimari avantaj sağladı: önceden yükleme görevlerini paralel hale getirme ve tek bir oynatıcı örneği kullanarak birçok videoyu yönetme olanağı. Bu sayede, önceden yükleme kapasitesi önemli ölçüde artarken önceki yaklaşımın yüksek bellek karmaşıklıkları ortadan kalktı.
Optimizasyon ve Performans Ayarlama
Ekip daha sonra Meta'nın dünya genelindeki çeşitli cihaz ekosisteminde performansı optimize etmek için kapsamlı testler ve iterasyonlar gerçekleştirdi. İlk agresif önceden yükleme, bazen bellek kullanımının artması ve kaydırma performansının yavaşlaması gibi sorunlara neden oluyordu. Bu sorunu çözmek için dikkatli bellek ölçümleri yaparak, cihaz parçalanmasını göz önünde bulundurarak ve sistemi belirli kullanıcı arayüzü kalıplarına göre uyarlayarak uygulamada ince ayar yaptılar.
Uygulamayı belirli kullanıcı arayüzü kalıplarına göre hassaslaştırma
Meta, farklı önceden yükleme stratejileri uyguladı ve davranışı her uygulamanın belirli kullanıcı arayüzü kalıplarına uyacak şekilde uyarladı:
- Facebook Haber Kaynağı: Kullanıcı arayüzü, o anda görüntülenen videoya öncelik verir. Yönetici, kullanıcının kaydırmayı duraklattığı anda başlamasını sağlamak için yalnızca mevcut videoyu önceden yükler. Bu "yalnızca geçerli" odak, kullanıcıların videolar arasında birçok statik yayın görebileceği bir ortamda veri ve bellekte kaplanan yeri en aza indirir. Sistem şu anda yalnızca görüntülenen videoyu önceden yükleyecek şekilde tasarlanmış olsa da, sonraki (gelecekteki) videoları da önceden yükleyecek şekilde ayarlanabilir.
- Instagram Reels: Bu, kullanıcıların dikey olarak kaydırdığı, yalnızca videolardan oluşan bir ortamdır. Ekip, bu kullanıcı arayüzü için "bitişik önceden yükleme" stratejisi uyguladı. PreloadManager, mevcut Reel'den hemen sonraki videoları bellekte hazır tutar. Bu çift yönlü yaklaşım, kullanıcı yukarı veya aşağı kaydırdığında geçişin anında ve sorunsuz olmasını sağlar. Sonuç olarak, kullanıcı için oynatma başlangıcı ve ilk kareye kadar geçen süre de dahil olmak üzere deneyim kalitesinde (QoE) önemli bir iyileşme sağlandı.
Çeşitli küresel cihaz ekosistemleri için ölçeklendirme
Yüksek performanslı bir video yığınını milyarlarca cihazda ölçeklendirmek için yalnızca agresif ön yükleme yeterli değildir, akıllı bir yaklaşım da gerekir. Meta, özellikle orta ve düşük seviyeli donanımlarda bellek baskısı ve kaydırma gecikmesiyle ilgili ilk zorluklarla karşılaştı. Bu sorunu çözmek için Media3 uygulamasıyla ilgili bir Cihaz Stres Algılama sistemi geliştirdiler. Uygulamalar artık G/Ç ve CPU sinyallerini anlık olarak izler. Cihazda yoğun bir yük varsa kullanıcı arayüzü duyarlılığına öncelik vermek için önceden yükleme duraklatılır.
Cihaza duyarlı bu optimizasyon, anında oynatmanın avantajının sistem kararlılığından ödün vermeden sunulmasını sağlar. Böylece, eski donanıma sahip kullanıcılar bile daha sorunsuz ve kesintisiz bir feed deneyimi yaşayabilir.
Mimari başarılar ve kod sağlığı
Media3'e geçiş, kullanıcılara yönelik metriklerin yanı sıra uzun vadeli mimari avantajlar da sağladı.PreloadManager Entegrasyon ve ayarlama sürecinde performansı dengelemek için birden fazla iterasyon gerekse de sonuçta elde edilen kod tabanı daha kolay yönetilebilir. Ekip, PreloadManager API'nin mevcut Media3 ekosistemiyle sorunsuz bir şekilde entegre olduğunu ve daha iyi kaynak paylaşımı sağladığını tespit etti. Meta için Media3 PreloadManager'ın benimsenmesi, video tüketiminin geleceğine yönelik stratejik bir yatırımdı.
Ön yükleme özelliğini kullanmaya başlayıp cihaz zekasına dayalı geçitler ekleyerek uygulamalarındaki toplam izlenme süresini artırmayı ve küresel topluluklarının genel etkileşimini iyileştirmeyi başardılar.
Instagram ve Facebook'ta bunun sonucunda ortaya çıkan etki
Proaktif mimari, her iki platformda da anında ve ölçülebilir iyileştirmeler sağladı.
- Facebook, daha hızlı oynatma başlangıcı, daha düşük oynatma duraklama oranları ve kötü oturumlarda azalma (yeniden arabelleğe alma, gecikmeli başlangıç zamanı,daha düşük kalite vb.) yaşadı. Bu da genel olarak daha yüksek izlenme süresi sağladı.
- Instagram, oynatma başlangıçlarının hızlandığını ve toplam izlenme süresinin arttığını gördü. Katılma gecikmesinin (kullanıcının işleminden ilk kare gösterimine kadar geçen süre) ortadan kaldırılması, etkileşim metriklerini doğrudan artırdı. Daha az ara belleğe alma nedeniyle daha az kesinti yaşanması, kullanıcıların daha fazla içerik izlediği anlamına geliyordu. Bu durum, etkileşim metriklerinde de görüldü.
Ölçeklendirmede mühendislik açısından önemli çıkarımlar
Medya tüketim alışkanlıkları değiştikçe anlık deneyimlere olan talep de artmaya devam edecek. Proaktif bellek yönetimi uygulayarak ve ölçek ile cihaz çeşitliliği için optimizasyon yaparak uygulamanızın bu beklentileri verimli bir şekilde karşılamasını sağlayabilirsiniz.
- Akıllı önceden yüklemeye öncelik verme
Önceden yükleme yaparak takılmaları ve yükleme sürelerini en aza indirerek güvenilir bir deneyim sunmaya odaklanın. Basit disk önbelleğe alma yerine bellek düzeyinde önceden yüklemeden yararlanmak, içeriğin kullanıcı etkileşime geçtiği anda hazır olmasını sağlar.
- Uygulamanızı kullanıcı arayüzü kalıplarıyla uyumlu hale getirme
Önceden yükleme davranışını uygulamanızın kullanıcı arayüzüne göre özelleştirin. Örneğin, Facebook gibi karma feed'lerde bellekten tasarruf etmek için "yalnızca mevcut" odaklı bir strateji, Instagram Reels gibi dikey ortamlarda ise "bitişik önceden yükleme" stratejisi kullanın.
- Uzun vadeli kod sağlığı için Media3'ten yararlanma
Özel bir önbelleğe alma çözümü yerine Media3 API'leriyle entegrasyon, oynatıcı ile PreloadManager arasında daha iyi kaynak paylaşımı sağlar. Böylece tek bir oynatıcı örneğiyle birden fazla videoyu yönetebilirsiniz. Bu sayede, mühendislik ekiplerinin zaman içinde hem bakımını yapıp optimize edebileceği hem de en son özellik güncellemelerinden yararlanabileceği, geleceğe hazır bir kod tabanı elde edilir.
- Cihaza duyarlı optimizasyonları uygulama
Orta ve alt segment modeller de dahil olmak üzere çeşitli cihazlarda test yaparak pazar erişiminizi genişletin. Özellikleri ve kaynak kullanımını dinamik olarak uyarlamak için CPU, bellek ve G/Ç gibi gerçek zamanlı sinyalleri kullanın.
Daha Fazla Bilgi
Başlamak ve daha fazla bilgi edinmek için adresini ziyaret edin.
- Media3 PreloadManager belgelerini inceleyin.
- İleri düzey teknik ve uygulama ayrıntıları için blog serisini okuyun.
- Ön yüklemenin nasıl çalıştığını görmek için örnek uygulamaya göz atın.
Artık anında oynatmanın sırlarını biliyorsunuz. Hemen deneyin.
-
Başarılı ÖrneklerGüneydoğu Asya'nın önde gelen süper uygulaması Grab, tek bir uygulama üzerinden sekiz ülkedeki milyonlarca kullanıcıya teslimat, mobilite ve finansal hizmetler sunuyor.
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • Okuma süresi: 5 dk. -
Başarılı ÖrneklerWhatsApp, dünya genelinde milyarlarca kullanıcıya hizmet veren dünyanın en büyük mesajlaşma platformudur. Farklı bölgelerdeki kullanıcılar için varsayılan iletişim aracı olan WhatsApp, özel, güvenilir ve güvenli mesajlaşma imkanı sunar.
Niharika Arora, Tracy Agyemang, Mayank Jain • Okuma süresi: 8 dk. -
Başarılı ÖrneklerTinder, her yeni nesil bekarlar için tanışmayı kolay ve eğlenceli hale getirerek gerçek bağlantıları güçlendirmeyi ve onlara ilham vermeyi amaçlıyor.
Ajesh Pai, Ulises Uriel Verduzco Díaz , Tracy Agyemang • Okuma süresi: 4 dk.
Android geliştiriciliğiyle ilgili en son analizleri her hafta gelen kutunuza alın.