Örnek Olaylar
Instagram ve Facebook, Media3 PreloadManager ile anında oynatma ve kullanıcı etkileşimini artırma
Okuma süresi: 4 dakika
Sosyal medyanın dinamik dünyasında kullanıcıların ilgisi hızla kazanılır veya kaybedilir. Meta uygulamaları (Facebook ve Instagram), dünyanın en büyük sosyal 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 sadece bir özellik değil, kullanıcı deneyiminin temelidir. Kısa videolar, özellikle Facebook Haber Akışı ve Instagram Reels, etkileşimin temel itici gücü haline geldi. Yaratıcı ifadeye ve hızlı içerik tüketimine olanak tanıyarak dünyanın dört bir yanındaki insanları birbirine bağlar ve eğlendirir.
Bu blog yayınında, Meta'nın 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 boşluğu
Kullanıcılar feed'lerinde hızlıca gezinirken kısa videoların etkileşimleri de hızlı bir şekilde artar. Sürekli değişen bir feed'de videolar arasında sorunsuz geçiş sağlamak, anında oynatma için benzersiz zorluklar ortaya çıkarır. Bu nedenle, geleneksel disk önbelleğe alma ve standart tepkisel oynatma stratejilerinin ötesine geçen çözümlere ihtiyacımız var.
Media3 PreloadManager ile geleceğe doğru
Jetpack Media3, kısa içeriklerin artmasıyla birlikte tüketim alışkanlıklarındaki değişimleri ve geleneksel uzun içerik 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çmesini sağlar. Kullanıcı oynat düğmesine basmadan önce medyayı bellekte hazır tutmak için ayrıntılı kontrol ve özelleştirme sunar. PreloadManager ile medya oynatma hakkında 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
Daha önce Meta, video yayınlamak için ısınma (oyuncuları hazırlamak için) ve önceden getirme (içeriği diskte önbelleğe almak için) yöntemlerinin bir kombinasyonunu kullanıyordu. Bu yöntemler ağ verimliliğini artırmaya yardımcı olsa da önemli zorluklar ortaya çıkardı. Isınma, birden fazla oynatıcı örneğinin sırayla oluşturulmasını gerektiriyordu. Bu da önemli miktarda bellek tüketiyor ve önceden yüklemeyi yalnızca birkaç video ile sınırlıyordu. Bu yüksek kaynak talebi, modern ve hızlı kaydırılan sosyal medya feed'lerinde beklenen anında oynatma özelliğini sunmak için daha ölçeklenebilir ve sağlam bir çözümün uygulanabileceği anlamına geliyordu.
Media3 PreloadManager'ı entegre etme
Gerçekten anında oynatma sağlamak için Meta'nın Media Foundation Client ekibi, Jetpack Media3 PreloadManager'ı Facebook ve Instagram'a entegre etti. Ön 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 gerektiriyordu. 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. Bu sayede, önceki yaklaşımlarındaki yüksek bellek karmaşıklığı ortadan kaldırılırken önceden yükleme kapasitesi önemli ölçüde artırıldı.
Optimizasyon ve Performans Ayarlama
Ardından ekip, Meta'nın çeşitli küresel cihaz ekosisteminde performansı optimize etmek için kapsamlı testler ve yinelemeler gerçekleştirdi. İlk agresif ön 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 uygulamayı hassas bir şekilde ayarladılar.
Uygulamayı belirli kullanıcı arayüzü kalıplarına göre hassaslaştırma
Meta, farklı ön yükleme stratejileri uyguladı ve davranışı her uygulamanın belirli kullanıcı arayüzü kalıplarına uyacak şekilde uyarladı:
- Facebook Haber Akışı: Kullanıcı arayüzünde, şu anda görüntülenen videoya öncelik verilir. Yönetici, kullanıcının kaydırmayı duraklattığı anda videonun 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 gönderi görebileceği bir ortamda veri ve bellek ayak izlerini en aza indirir. Sistem şu anda yalnızca görüntülenen videoyu önceden yükleyecek şekilde tasarlanmış olsa da yaklaşan (gelecekteki) videoları da önceden yükleyecek şekilde ayarlanabilir.
- Instagram Reels: Kullanıcıların dikey olarak kaydırdığı, tamamen video odaklı bir ortamdır. Ekip, bu kullanıcı arayüzü için "bitişik ön yükleme" stratejisini uyguladı. PreloadManager, mevcut Reels videosundan hemen sonraki videoları bellekte hazır tutar. Bu iki yönlü yaklaşım, kullanıcının yukarı veya aşağı kaydırmasına bakılmaksızın geçişin anında ve sorunsuz olmasını sağlar. Sonuç olarak, kullanıcının oynatma başlatma ve ilk kareye ulaşma süresini iyileştiren deneyim kalitesinde (QoE) önemli bir artış elde edildi.
Çeşitli küresel cihaz ekosistemine göre ölçeklendirme
Milyarlarca cihazda yüksek performanslı bir video yığını ölçeklendirmek için agresif ön yüklemenin ötesinde bir zeka gerekir. Meta, özellikle orta ve düşük seviye donanımlarda bellek baskısı ve kaydırma gecikmesiyle ilgili ilk zorluklarla karşılaştı. Bu sorunu çözmek için Media3 uygulaması etrafında bir Cihaz Stres Algılama sistemi oluşturdular. Uygulamalar artık G/Ç ve CPU sinyallerini gerçek zamanlı olarak izliyor. Bir cihaz ağır yük altındaysa kullanıcı arayüzü duyarlılığına öncelik vermek için önceden yükleme duraklatılır.
Cihaza duyarlı bu optimizasyon, anında oynatma avantajının sistem kararlılığından ödün verilerek elde edilmemesini sağlar. Böylece, eski donanımlara sahip kullanıcılar bile daha sorunsuz ve kesintisiz bir feed deneyimi yaşayabilir.
Mimari kazanımlar ve kod sağlığı
Kullanıcılara gösterilen metriklerin yanı sıra Media3'e geçiş PreloadManager uzun vadeli mimari avantajlar da sağladı. Entegrasyon ve ayarlama sürecinde performansı dengelemek için birden fazla yineleme gerekse de sonuçta elde edilen kod tabanı daha kolay bakımı yapılabilir. Ekip, PreloadManager API'nin mevcut Media3 ekosistemiyle sorunsuz bir şekilde entegre olduğunu ve daha iyi kaynak paylaşımına olanak tanıdığını tespit etti. Meta için Media3 PreloadManager'ın kullanıma sunulması, video tüketiminin geleceğine yönelik stratejik bir yatırımdı.
Ön yüklemeyi benimseyerek ve cihaza duyarlı kapılar ekleyerek uygulamalarındaki toplam izlenme süresini başarıyla artıran şirket, küresel topluluğunun genel etkileşimini de iyileştirdi.
Instagram ve Facebook'taki sonuçlanan etki
Proaktif mimari, her iki platformda da anında ve ölçülebilir iyileştirmeler sağladı.
- Facebook, daha hızlı oynatma başlangıçları, oynatma duraklatma oranlarında düşüş ve kötü oturumlarda azalma (yeniden arabelleğe alma, gecikmeli başlangıç süresi,düşük kalite vb.) yaşadı. Bu da genel olarak izlenme süresinin artmasına neden oldu.
- Instagram'da daha hızlı oynatma başlangıçları ve toplam izlenme süresinde artış görüldü. Katılma gecikmesini(kullanıcının işleminden ilk kare gösterimine kadar geçen süre) ortadan kaldırmak, etkileşim metriklerini doğrudan artırdı. Arabelleğe alma işleminin azalması nedeniyle daha az kesinti yaşandığı için kullanıcılar daha fazla içerik izledi. Bu durum, etkileşim metriklerine yansıdı.
Geniş ölçekte mühendislikle ilgili önemli bilgiler
Medya tüketim alışkanlıkları değiştikçe anlık deneyimlere olan talep artmaya devam edecek. Proaktif bellek yönetimi uygulamak ve ölçek ile cihaz çeşitliliği için optimizasyon yapmak, uygulamanızın bu beklentileri verimli bir şekilde karşılamasını sağlar.
- Akıllı önceden yüklemeye öncelik verme
Önceden yükleme sayesinde 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ükleme kullanmak, içeriğin kullanıcı etkileşimde bulunduğu anda hazır olmasını sağlar.
- Uygulamanızı kullanıcı arayüzü kalıplarıyla uyumlu hale getirme
Önceden yükleme davranışını uygulamalarınızın kullanıcı arayüzüne göre özelleştirin. Örneğin, Facebook gibi karma feed'ler için bellekten tasarruf etmek amacıyla "yalnızca geçerli" odaklanma, Instagram Reels gibi dikey ortamlar için ise "bitişik ön 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. Bu sayede tek bir oynatıcı örneğiyle birden fazla videoyu yönetebilirsiniz. Bu sayede, mühendislik ekiplerinin zaman içinde yalnızca koruyup optimize etmekle kalmayıp aynı zamanda en yeni özellik güncellemelerinden de yararlanabileceği, geleceğe hazır bir kod tabanı elde edilir.
- Cihaz farkındalığına dayalı optimizasyonlar uygulama
Orta ve düşük seviye 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.
- Gelişmiş 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 oynatma ile ilgili sırları biliyorsunuz. Hemen deneyin.
Okumaya devam edin
-
Örnek Olaylar
Monzo, Birleşik Krallık'ta 15 milyon müşterisi olan ve büyümeye devam eden bir dijital bankadır. Uygulama ölçeklendikçe mühendislik ekibi, uygulamanın başlatılma süresinin iyileştirilmesi gereken kritik bir alan olduğunu belirledi ancak bunun kod tabanlarında önemli değişiklikler yapmayı gerektireceğinden endişelendi.
Ben Weiss • Okuma süresi: 2 dakika
-
Örnek Olaylar
TikTok, geniş kullanıcı tabanı ve yenilikçi özellikleriyle bilinen, dünya genelinde kullanılan bir kısa video platformudur.
Ben Trengrove, Ajesh Pai • Okuma süresi: 2 dakika
-
Örnek Olaylar
Giyilebilir cihazlar için Android uygulaması geliştirirken ekran kapandığında asıl iş başlar.
Breana Tate • Okuma süresi: 4 dakika
Gelişmelerden haberdar olun
Android geliştirmeyle ilgili en son analizleri her hafta gelen kutunuza alın.