Fallstudien
Instagram und Facebook bieten dank Media3 PreloadManager sofortige Wiedergabe und steigern die Nutzerinteraktion
Lesezeit: 4 Minuten
In der dynamischen Welt der sozialen Medien kann man die Aufmerksamkeit der Nutzer schnell gewinnen oder verlieren. Die Meta-Apps Facebook und Instagram gehören zu den größten sozialen Plattformen der Welt und werden von Milliarden Nutzern weltweit verwendet. Für Meta ist die nahtlose Wiedergabe von Videos nicht nur eine Funktion, sondern das Herzstück der Nutzererfahrung. Kurzvideos, insbesondere im Facebook-Newsfeed und in Instagram Reels, sind zu einem wichtigen Faktor für die Nutzerinteraktion geworden. Sie ermöglichen kreativen Ausdruck und schnellen Konsum von Inhalten und verbinden und unterhalten Menschen auf der ganzen Welt.
In diesem Blogbeitrag erfahren Sie, wie Meta die Videowiedergabe für Milliarden Nutzer durch die Bereitstellung einer wirklich sofortigen Wiedergabe revolutioniert hat.
Die Latenz bei Kurzvideos
Kurzvideos führen zu sehr schnellen Interaktionen, da Nutzer schnell durch ihre Feeds scrollen. Eine nahtlose Übergabe zwischen Videos in einem sich ständig ändernden Feed stellt einzigartige Herausforderungen für die sofortige Wiedergabe dar. Daher sind Lösungen erforderlich, die über das herkömmliche Festplatten-Caching und die reaktiven Standardstrategien für die Wiedergabe hinausgehen.
Der Weg nach vorn mit Media3 PreloadManager
Um den veränderten Konsumgewohnheiten durch den Anstieg von Kurzvideos und den Einschränkungen der herkömmlichen Architektur für die Wiedergabe von Langvideos Rechnung zu tragen, wurde in Jetpack Media3 der PreloadManager eingeführt. Mit dieser Komponente können Entwickler über das Festplatten-Caching hinausgehen und eine detaillierte Steuerung und Anpassung vornehmen, um Medien im Arbeitsspeicher bereitzuhalten, bevor der Nutzer auf „Wiedergabe“ klickt. In dieser Blogreihe erfahren Sie mehr über die technischen Details der Medienwiedergabe mit PreloadManager.
So hat Meta eine wirklich sofortige Wiedergabe erreicht
Bestehende Komplexitäten
Bisher hat Meta für die Videobereitstellung eine Kombination aus Warmup (um Player vorzubereiten) und Prefetch (um Inhalte auf der Festplatte zu speichern) verwendet. Diese Methoden haben zwar die Netzwerkeffizienz verbessert, aber auch erhebliche Herausforderungen mit sich gebracht. Für Warmup mussten mehrere Player-Instanzen sequenziell instanziiert werden, was viel Arbeitsspeicher verbrauchte und das Vorabladen auf nur wenige Videos beschränkte. Aufgrund dieses hohen Ressourcenbedarfs konnte eine skalierbarere und robustere Lösung angewendet werden, um die sofortige Wiedergabe zu ermöglichen, die bei modernen, schnell scrollenden sozialen Feeds erwartet wird.
Integration von Media3 PreloadManager
Um eine wirklich sofortige Wiedergabe zu erreichen, hat das Media Foundation Client-Team von Meta den Jetpack Media3 PreloadManager in Facebook und Instagram integriert. Es hat den DefaultPreloadManager ausgewählt, um die Systeme für das Vorabladen und die Wiedergabe zu vereinheitlichen. Für diese Integration musste die bestehende Architektur von Meta umgestaltet werden, um eine effiziente gemeinsame Nutzung von Ressourcen zwischen den PreloadManager- und ExoPlayer-Instanzen zu ermöglichen. Diese strategische Umstellung brachte einen wichtigen architektonischen Vorteil: die Möglichkeit, Vorabladen-Aufgaben zu parallelisieren und viele Videos mit einer einzigen Player-Instanz zu verwalten. Dadurch wurde die Kapazität für das Vorabladen erheblich gesteigert und die hohe Komplexität des Arbeitsspeichers des bisherigen Ansatzes beseitigt.
Optimierung und Leistungsabstimmung
Anschließend führte das Team umfangreiche Tests und Iterationen durch, um die Leistung im vielfältigen globalen Geräte-Ökosystem von Meta zu optimieren. Das anfängliche aggressive Vorabladen verursachte manchmal Probleme, darunter eine erhöhte Arbeitsspeichernutzung und eine Verlangsamung der Scrollleistung. Um dieses Problem zu beheben, wurde die Implementierung durch sorgfältige Arbeitsspeichermessungen, Berücksichtigung der Gerätefragmentierung und Anpassung des Systems an bestimmte UI-Muster optimiert.
Implementierung an bestimmte UI-Muster anpassen
Meta hat verschiedene Strategien für das Vorabladen angewendet und das Verhalten an die spezifischen UI-Muster der einzelnen Apps angepasst:
- Facebook-Newsfeed: Die UI priorisiert das Video, das gerade in den Blick kommt. Der Manager lädt nur das aktuelle Video vorab, damit es gestartet wird, sobald der Nutzer das Scrollen pausiert. Dieser Fokus auf "nur das aktuelle Video" minimiert die Daten- und Arbeitsspeicher-Footprints in einer Umgebung, in der Nutzer zwischen Videos viele statische Beiträge sehen. Das System ist derzeit so konzipiert, dass nur das sichtbare Video vorab geladen wird. Es kann aber auch so angepasst werden, dass auch kommende (zukünftige) Videos vorab geladen werden.
- Instagram Reels: Hierbei handelt es sich um eine reine Video-Umgebung, in der Nutzer vertikal wischen. Für diese UI hat das Team eine Strategie für das "Vorabladen von angrenzenden Videos" implementiert. Der PreloadManager hält die Videos direkt nach dem aktuellen Reel im Arbeitsspeicher bereit. Dieser bidirektionale Ansatz sorgt dafür, dass die Übergabe unabhängig davon, ob ein Nutzer nach oben oder unten wischt, sofort und reibungslos erfolgt. Das Ergebnis war eine erhebliche Verbesserung der Quality of Experience (QoE), einschließlich Verbesserungen beim Start der Wiedergabe und der Zeit bis zum ersten Frame für den Nutzer.
Skalierung für ein vielfältiges globales Geräte-Ökosystem
Um einen leistungsstarken Videostack auf Milliarden von Geräten zu skalieren, ist mehr als nur aggressives Vorabladen erforderlich. Es ist Intelligenz erforderlich. Meta hatte anfangs Probleme mit Arbeitsspeicher-Engpässen und Scroll-Verzögerungen, insbesondere bei Geräten der Mittel- und Einsteigerklasse. Um dieses Problem zu beheben, wurde ein System zur Erkennung von Geräteüberlastung auf Basis der Media3-Implementierung entwickelt. Die Apps überwachen jetzt E/A- und CPU-Signale in Echtzeit. Wenn ein Gerät stark ausgelastet ist, wird das Vorabladen pausiert, um die Reaktionsfähigkeit der UI zu priorisieren.
Diese geräteabhängige Optimierung sorgt dafür, dass der Vorteil der sofortigen Wiedergabe nicht auf Kosten der Systemstabilität geht. So können auch Nutzer mit älterer Hardware einen reibungsloseren, unterbrechungsfreien Feed nutzen.
Architektonische Vorteile und Code-Gesundheit
Neben den nutzerorientierten Messwerten bot die Migration zu Media3 PreloadManager langfristige architektonische Vorteile. Obwohl für die Integration und Optimierung mehrere Iterationen erforderlich waren, um die Leistung auszubalancieren, ist die resultierende Codebasis wartungsfreundlicher. Das Team stellte fest, dass die PreloadManager API sauber in das bestehende Media3-Ökosystem integriert wurde, was eine bessere gemeinsame Nutzung von Ressourcen ermöglicht. Für Meta war die Einführung von Media3 PreloadManager eine strategische Investition in die Zukunft des Videokonsums.
Durch die Einführung des Vorabladens und das Hinzufügen von geräteintelligenten Gates konnte die Gesamtwiedergabezeit in den Apps gesteigert und die allgemeine Nutzerinteraktion der globalen Community verbessert werden.
Auswirkungen auf Instagram und Facebook
Die proaktive Architektur führte auf beiden Plattformen zu sofortigen und messbaren Verbesserungen.
- Auf Facebook wurden schnellere Wiedergabestarts, geringere Wiedergabeunterbrechungen und weniger fehlerhafte Sitzungen (z. B. erneutes Zwischenspeichern, verzögerte Startzeit, geringere Qualität usw.) verzeichnet,was insgesamt zu einer längeren Wiedergabezeit führte.
- Auf Instagram wurden schnellere Wiedergabestarts und eine längere Gesamtwiedergabezeit verzeichnet. Durch die **Beseitigung der Latenz beim Beitritt** (das Intervall zwischen der Aktion des Nutzers und der Anzeige des ersten Frames) wurden die Messwerte für die Nutzerinteraktion direkt verbessert. Die wenigeren Unterbrechungen aufgrund des reduzierten Zwischenspeicherns führten dazu, dass Nutzer mehr Inhalte ansahen, was sich in den Messwerten für die Nutzerinteraktion zeigte.
Wichtige Erkenntnisse aus der Entwicklung im großen Maßstab
Da sich die Gewohnheiten beim Medienkonsum weiterentwickeln, wird die Nachfrage nach sofortigen Erlebnissen weiter steigen. Durch die Implementierung eines proaktiven Arbeitsspeicher-Managements und die Optimierung für Skalierbarkeit und Gerätevielfalt kann Ihre Anwendung diese Erwartungen effizient erfüllen.
- Intelligentes Vorabladen priorisieren
Konzentrieren Sie sich auf eine zuverlässige Nutzererfahrung, indem Sie durch Vorabladen Unterbrechungen und Ladezeiten minimieren. Anstatt nur Festplatten-Caching zu verwenden, sorgt das Vorabladen auf Arbeitsspeicherebene dafür, dass Inhalte bereit sind, sobald ein Nutzer mit ihnen interagiert.
- Implementierung an UI-Muster anpassen
Passen Sie das Verhalten beim Vorabladen an die UI Ihrer Apps an. Verwenden Sie beispielsweise für gemischte Feeds wie Facebook den Fokus „nur das aktuelle Video“, um Arbeitsspeicher zu sparen, und für vertikale Umgebungen wie Instagram Reels die Strategie „Vorabladen von angrenzenden Videos“.
- Media3 für langfristige Code-Gesundheit nutzen
Durch die Integration mit Media3 APIs anstelle einer benutzerdefinierten Caching-Lösung können Ressourcen besser zwischen dem Player und dem PreloadManager gemeinsam genutzt werden. So können Sie mehrere Videos mit einer einzigen Player-Instanz verwalten. Das Ergebnis ist eine zukunftssichere Codebasis, die nicht nur einfacher zu warten und zu optimieren ist, sondern auch von den neuesten Funktionsupdates profitiert.
- Geräteabhängige Optimierungen implementieren
Erweitern Sie Ihre Marktreichweite, indem Sie Tests auf verschiedenen Geräten durchführen, einschließlich Modellen der Mittel- und Einsteigerklasse. Verwenden Sie Echtzeitsignale wie CPU, Arbeitsspeicher und E/A, um Funktionen und Ressourcennutzung dynamisch anzupassen.
Weitere Informationen
Weitere Informationen finden Sie unter
- Media3 PreloadManager-Dokumentation
- Blogreihe mit detaillierten technischen Informationen und Implementierungsdetails
- Teil 1: Einführung in das Vorabladen mit Media3
- Teil 2: Detaillierte Informationen zum PreloadManager von Media3
Jetzt kennen Sie die Geheimnisse der sofortigen Wiedergabe. Probieren Sie sie aus.
Weiterlesen
-
Fallstudien
Karrot ist eine hyperlokale, communitybasierte Peer-to-Peer-Marktplatz-App, mit der Nutzer Artikel von anderen verifizierten Nutzern kaufen, an sie verkaufen und mit ihnen tauschen können. Seit dem Start in Südkorea im Jahr 2015 hat sich die Plattform auf globale Märkte ausgeweitet und über 43 Millionen registrierte Nutzer gewonnen.
Thomas Ezan, Tracy Agyemang • Lesezeit: 2 Minuten
-
Fallstudien
Monzo ist eine digitale Bank im Vereinigten Königreich mit 15 Millionen Kunden und Tendenz steigend. Als die App skaliert wurde, stellte das Entwicklungsteam fest, dass die Startzeit der App ein kritischer Bereich für Verbesserungen war. Es befürchtete jedoch, dass dafür erhebliche Änderungen an der Codebasis erforderlich wären.
Ben Weiss, Tracy Agyemang • Lesezeit: 2 Minuten
-
Fallstudien
Wenn Sie eine Android-App für ein Wearable entwickeln, beginnt die eigentliche Arbeit, wenn sich der Bildschirm ausschaltet.
Breana Tate, Tracy Agyemang • Lesezeit: 4 Minuten
Auf dem Laufenden bleiben
Lassen Sie sich Woche für Woche die neuesten Informationen zur Android-Entwicklung zusenden.