RSS Android-Entwickler-Blog
Folgen
Medienwiedergabe verbessern: Einführung von Preloading mit Media3 - Teil 1
Flüssige Videowiedergabe ist für die Benutzererfahrung unerlässlich, aber Latenz ist eine große Hürde. Traditionell warten Player vor dem Laden auf eine Auswahl, was für Kurzvideos zu langsam ist. Die Lösung ist proaktives Preloading, das Inhalte vorbereitet, bevor sie benötigt werden. Preloading bietet schnellere Wiedergabestarts, weniger Pufferung und ein reibungsloseres Gesamterlebnis. Dieser Artikel stellt die Preloading-Dienstprogramme von Media3 in einer dreiteiligen Serie vor.Teil 1 konzentriert sich auf die Grundlagen: das Verständnis der Preloading-Strategien von Media3 und die Einrichtung des DefaultPreloadManager. Die Kernidee des Preloadings ist das Herunterladen von Inhaltssegmenten, bevor die Wiedergabe beginnt, ähnlich wie das Vorbereiten von Zutaten in einer Küche. Media3 bietet zwei primäre APIs für das Preloading. Die erste ist PreloadConfiguration, geeignet für vorhersagbare Playlists, bei denen der Player automatisch das nächste Element vorlädt. Dies ist eine einfache Option, um Preloading auszuprobieren.Die zweite API ist PreloadManager, konzipiert für dynamische UIs wie vertikale Feeds oder Karussells, bei denen das nächste Element nicht immer sequenziell ist. Der DefaultPreloadManager, die kanonische Implementierung, ermöglicht eine granulare Kontrolle darüber, was und wie viel vorgeladen werden soll. Er verwendet eine TargetPreloadStatusControl, um die Preload-Dauer und -Priorität basierend auf der Nähe eines Elements zum aktuell wiedergegebenen Element zu definieren. Dies ermöglicht eine optimierte Ressourcenauslastung.Um PreloadManager zu verwenden, fügen Sie ihm MediaItems hinzu, sobald sie in der UI erscheinen. Wenn ein Benutzer ein Video auswählt, rufen Sie die vorgeladene MediaSource vom Manager ab, um eine schnellere Wiedergabe zu erzielen. Es ist entscheidend, den Manager mit dem aktuellen Wiedergabeindex auf dem Laufenden zu halten und Elemente zu entfernen, die nicht mehr relevant sind. Denken Sie abschließend daran, den PreloadManager freizugeben, wenn er nicht mehr benötigt wird, um Ressourcen freizugeben. Eine Demo hebt die Vorteile von PreloadManager mit schnelleren Ladezeiten im Vergleich zu herkömmlichen Methoden hervor.