Diese Frage wurde vielleicht schon oft gestellt. Ich habe überall gesucht, konnte aber nicht die richtige Antwort finden. Ich verwende den ExoPlayer in meinem Projekt, um HLS-Videos abzuspielen.
Ich möchte dem Benutzer die Möglichkeit geben, die Bandbreite von Videos auszuwählen. Etwas wie das, was YouTube macht.Welche Idee, wie dies mit ExoPlayer erreicht werden kann?
Vom ExoPlayer-Problem-Tracker:
ExoPlayer wählt derzeit die erste im Master aufgeführte Variante aus Wiedergabeliste. Wenn ich mich richtig erinnere, ist das was Apple empfiehlt / gibt das korrekte Clientverhalten an. Wenn du anfangen willst in der niedrigsten Qualität sollten Sie technisch Ihren Server haben erzeuge die Master-Playliste mit der niedrigsten zuerst aufgelisteten Qualität.
Abgesehen von den obigen Ausführungen stimmen wir zu, dass es für den Kunden mehr Sinn macht die anfängliche Variantenauswahl lokal zu machen, im Gegensatz zu der empfohlenes Verhalten. Wir werden HLS umstellen, um FormatEvaluator zu verwenden in ExoPlayer V2, die mehr Kontrolle über die Initiale geben wird Auswahl (und über den adaptiven Algorithmus im Allgemeinen).
Und als Lösung diesen Kommentar:
Sehen Sie sich AdaptiveTrackSelection.Factory an. Seine Parameter können bieten Sie genügend Anpassung für Ihren Fall.
Ich denke, das sollte Ihnen entweder die Antwort geben, die Sie brauchen, oder es wird Sie in die richtige Richtung führen.
Beachten Sie, dass Sie Streams in niedrigeren Qualitäten bereitstellen müssen, um diese verwenden zu können. Wenn Sie das Video NUR in HD haben, kann der ExoPlayer das Video nicht herunterrechnen , es ist nicht seine Aufgabe und nicht das, wofür es gedacht ist. ExoPlayer kann nur einen reibungslosen Übergang zwischen dem Video in mehreren Auflösungen synchronisieren und ermöglichen, wenn sie bereitgestellt werden.
Tags und Links android video-streaming video exoplayer