Instagram und Facebook bieten sofortige Wiedergabe und steigern das Nutzer-Engagement mit dem Media3 PreloadManager
Lesezeit: 4 Minuten
In der dynamischen Welt der sozialen Medien wird die Aufmerksamkeit der Nutzer schnell gewonnen oder verloren. Meta-Apps (Facebook und Instagram) gehören zu den weltweit größten sozialen Plattformen und werden von Milliarden von Nutzern weltweit verwendet. Für Meta ist die nahtlose Bereitstellung 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 Treiber für Interaktionen geworden. Sie ermöglichen kreativen Ausdruck und schnellen Konsum von Inhalten und verbinden und unterhalten Menschen auf der ganzen Welt.
In diesem Blogpost erfahren Sie, wie Meta die Videowiedergabe für Milliarden von Nutzern durch die Bereitstellung einer echten Sofortwiedergabe transformiert hat.
Latenzlücke bei Kurzvideos
Kurzvideos führen zu sehr schnellen Interaktionen, da Nutzer schnell durch ihre Feeds scrollen. Ein nahtloser Übergang zwischen Videos in einem sich ständig ändernden Feed stellt eine besondere Herausforderung für die sofortige Wiedergabe dar. Daher benötigen wir Lösungen, die über herkömmliches Datenträger-Caching und standardmäßige reaktive Wiedergabestrategien hinausgehen.
Der Weg in die Zukunft mit dem Media3 PreloadManager
Um den veränderten Nutzungsgewohnheiten durch die Zunahme von Kurzvideos und den Einschränkungen der herkömmlichen Wiedergabearchitektur für Inhalte im Langformat gerecht zu werden, wurde in Jetpack Media3 der PreloadManager eingeführt. Mit dieser Komponente können Entwickler über das Datenträger-Caching hinausgehen und Medien im Arbeitsspeicher bereithalten, bevor der Nutzer auf „Wiedergabe“ klickt. In dieser Blogreihe finden Sie technische Details zur Medienwiedergabe mit PreloadManager.
How Meta achieved true instant playback
Bestehende Komplexitäten
Bisher hat Meta eine Kombination aus Warmup (um Spieler vorzubereiten) und Prefetch (um Inhalte auf dem Laufwerk im Cache zu speichern) für die Videobereitstellung verwendet. Diese Methoden haben zwar die Netzwerkeffizienz verbessert, aber auch erhebliche Herausforderungen mit sich gebracht. Für das Warmup mussten mehrere Player-Instanzen nacheinander instanziiert werden, was viel Arbeitsspeicher verbrauchte und das Vorabladen auf nur wenige Videos beschränkte. Dieser hohe Ressourcenbedarf bedeutete, dass eine skalierbarere, robustere Lösung erforderlich war, um die sofortige Wiedergabe zu ermöglichen, die in modernen, schnell scrollenden Social-Media-Feeds erwartet wird.
Media3 PreloadManager einbinden
Um eine wirklich sofortige Wiedergabe zu ermöglichen, hat das Media Foundation Client-Team von Meta den Jetpack Media3 PreloadManager in Facebook und Instagram integriert. Sie haben sich für den DefaultPreloadManager entschieden, um ihre Vorablade- und Wiedergabesysteme zu vereinheitlichen. Für diese Integration musste die bestehende Architektur von Meta refaktoriert werden, um eine effiziente Ressourcenteilung zwischen den „PreloadManager“- und „ExoPlayer“-Instanzen zu ermöglichen. Diese strategische Änderung bot einen wichtigen architektonischen Vorteil: die Möglichkeit, Vorab-Ladeaufgaben zu parallelisieren und viele Videos mit einer einzigen Player-Instanz zu verwalten. Dadurch wurde die Vorladekapazität drastisch erhöht und die hohe Arbeitsspeicherkomplexität des vorherigen Ansatzes beseitigt.
Optimierung und Leistungsabstimmung
Anschließend führte das Team umfangreiche Tests und Iterationen durch, um die Leistung auf den verschiedenen globalen Geräten von Meta zu optimieren. Das anfängliche aggressive Vorabladen hat manchmal zu Problemen geführt, darunter eine erhöhte Arbeitsspeichernutzung und eine langsamere Scrollleistung. Um dieses Problem zu beheben, wurde die Implementierung durch sorgfältige Speichermessungen, Berücksichtigung der Gerätefragmentierung und Anpassung des Systems an bestimmte UI-Muster optimiert.
Feinabstimmung der Implementierung auf bestimmte UI-Muster
Meta hat verschiedene Vorabladestrategien angewendet und das Verhalten an die spezifischen UI-Muster der einzelnen Apps angepasst:
- Facebook-Newsfeed: Die Benutzeroberfläche priorisiert das Video, das gerade ins Blickfeld rückt. Der Manager lädt nur das aktuelle Video vor, damit es sofort gestartet wird, wenn der Nutzer das Scrollen pausiert. Dieser Fokus auf nur aktuelle minimiert den Daten- und Speicherbedarf in einer Umgebung, in der Nutzer zwischen Videos möglicherweise viele statische Beiträge sehen. Das System ist derzeit so konzipiert, dass nur das angezeigte Video vorab geladen wird. Es kann jedoch so angepasst werden, dass auch anstehende (zukünftige) Videos vorab geladen werden.
- Instagram Reels: Dies ist eine reine Videoumgebung, in der Nutzer vertikal wischen. Für diese Benutzeroberfläche hat das Team eine Strategie für das Vorabladen benachbarter Elemente implementiert. Der PreloadManager hält die Videos, die unmittelbar auf das aktuelle Reel folgen, im Arbeitsspeicher bereit. Dieser bidirektionale Ansatz sorgt dafür, dass der Übergang unabhängig davon, ob ein Nutzer nach oben oder unten wischt, sofort und flüssig erfolgt. Das Ergebnis war eine drastische Verbesserung der Quality of Experience (QoE), einschließlich Verbesserungen bei der Wiedergabe und der Zeit bis zum ersten Frame für den Nutzer.
Skalierung für ein vielfältiges globales Geräte-Ökosystem
Die Skalierung eines leistungsstarken Video-Stacks auf Milliarden von Geräten erfordert mehr als nur aggressives Vorladen. Es erfordert Intelligenz. Meta hatte anfangs Probleme mit Arbeitsspeicherdruck und Scrollverzögerungen, insbesondere auf Hardware der mittleren bis unteren Leistungsklasse. Um dieses Problem zu beheben, wurde ein System zur Erkennung von Geräteüberlastung um die Media3-Implementierung herum 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 Benutzeroberfläche zu priorisieren.
Diese gerätespezifische Optimierung sorgt dafür, dass die Vorteile der sofortigen Wiedergabe nicht auf Kosten der Systemstabilität gehen. So können auch Nutzer mit älterer Hardware einen flüssigeren, unterbrechungsfreien Feed genießen.
Architektonische Vorteile und Codequalität
Neben den für Nutzer sichtbaren Messwerten bot die Migration zu Media3 PreloadManager langfristige Vorteile für die Architektur. Für die Integration und Feinabstimmung waren zwar mehrere Iterationen erforderlich, um die Leistung zu optimieren, aber die resultierende Codebasis ist leichter zu verwalten. Das Team stellte fest, dass sich die PreloadManager API gut in das bestehende Media3-Ökosystem einbinden lässt, was eine bessere gemeinsame Nutzung von Ressourcen ermöglicht. Für Meta war die Einführung des Media3 PreloadManager eine strategische Investition in die Zukunft des Videokonsums.
Durch die Einführung von Preloading und die Implementierung von geräteintelligenten Gates konnten sie die Gesamtwiedergabezeit in ihren Apps erhöhen und die Interaktion ihrer globalen Community insgesamt verbessern.
Auswirkungen auf Instagram und Facebook
Die proaktive Architektur lieferte sofortige und messbare Verbesserungen auf beiden Plattformen.
- Facebook verzeichnete schnellere Wiedergabestarts, weniger Wiedergabeunterbrechungen und weniger fehlerhafte Sitzungen (z. B. erneutes Zwischenspeichern, verzögerte Startzeit, geringere Qualität usw.), was insgesamt zu einer höheren Wiedergabezeit führte.
- Instagram verzeichnete schnellere Wiedergabestarts und eine längere Gesamtwiedergabezeit. Durch die Eliminierung der Join-Latenz (dem Intervall zwischen der Aktion des Nutzers und der Anzeige des ersten Frames) wurden die Engagement-Messwerte direkt verbessert. Die wenigeren Unterbrechungen aufgrund der kürzeren Zwischenspeicherung führten dazu, dass Nutzer mehr Inhalte angesehen haben, was sich in den Interaktionsmesswerten widerspiegelte.
Wichtige Erkenntnisse aus der Entwicklung im großen Maßstab
Da sich die Gewohnheiten beim Medienkonsum weiterentwickeln, wird die Nachfrage nach Instant-Erlebnissen weiter steigen. Durch die Implementierung einer proaktiven Speicherverwaltung und die Optimierung für Skalierbarkeit und Gerätevielfalt kann Ihre Anwendung diese Erwartungen effizient erfüllen.
- Intelligentes Vorabladen priorisieren
Konzentriere dich darauf, ein zuverlässiges Erlebnis zu bieten, indem du Ruckler und Ladezeiten durch Vorabladen minimierst. Anstatt nur den Datenträger-Cache zu nutzen, wird durch das Vorabladen auf Speicherebene sichergestellt, dass Inhalte sofort verfügbar sind, wenn ein Nutzer mit ihnen interagiert.
- Implementierung an UI-Mustern ausrichten
Passen Sie das Vorladeverhalten an die Benutzeroberfläche Ihrer App an. Verwenden Sie beispielsweise für gemischte Feeds wie Facebook einen „Nur aktuell“-Fokus, um Arbeitsspeicher zu sparen, und eine „Angrenzendes Vorabladen“-Strategie für vertikale Umgebungen wie Instagram Reels.
- Media3 für langfristige Code-Integrität nutzen
Die Einbindung von Media3 APIs anstelle einer benutzerdefinierten Caching-Lösung ermöglicht eine bessere gemeinsame Nutzung von Ressourcen zwischen dem Player und dem PreloadManager. So können Sie mehrere Videos mit einer einzigen Player-Instanz verwalten. Das Ergebnis ist eine zukunftssichere Codebasis, die von Engineering-Teams nicht nur leichter verwaltet und optimiert werden kann, sondern auch von den neuesten Funktionsupdates profitiert.
- Gerätespezifische Optimierungen implementieren
Erweitere deine Marktreichweite, indem du deine App auf verschiedenen Geräten testest, einschließlich Modellen im mittleren und unteren Preissegment. Verwenden Sie Echtzeitsignale wie CPU, Arbeitsspeicher und E/A, um Funktionen und Ressourcennutzung dynamisch anzupassen.
Weitere Informationen
Weitere Informationen und erste Schritte finden Sie unter
- Dokumentation zum Media3-PreloadManager
- In der Blogreihe finden Sie weitere technische Details und Informationen zur Implementierung.
- In der Beispiel-App können Sie sich das Vorabladen in Aktion ansehen.
Jetzt kennen Sie die Geheimnisse der sofortigen Wiedergabe. Probier sie doch gleich aus!
-
FallstudienGrab ist die führende Super-App in Südostasien. Sie bietet Millionen von Nutzern in acht Ländern Liefer-, Mobilitäts- und Finanzdienstleistungen über eine einzige App.
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • Lesezeit: 5 Minuten -
FallstudienWhatsApp ist die weltweit größte Messaging-Plattform mit Milliarden von Nutzern weltweit. Es ist das Standardkommunikationstool für Menschen in verschiedenen Regionen und verbindet Nutzer über private, zuverlässige und sichere Nachrichten.
Niharika Arora, Tracy Agyemang, Mayank Jain • Lesezeit: 8 Minuten -
FallstudienTinder hat es sich zur Aufgabe gemacht, echte Verbindungen zu fördern und zu inspirieren, indem es für jede neue Generation von Singles einfach und unterhaltsam ist, sich zu treffen.
Ajesh Pai, Ulises Uriel Verduzco Díaz , Tracy Agyemang • Lesezeit: 4 Minuten
Lassen Sie sich Woche für Woche die neuesten Informationen zur Android-Entwicklung zusenden.