Wie Hintergrundwiedergabe von YouTube auf iOS wirklich funktioniert
Eines der ersten Dinge, die Leute in talavo ausprobieren, ist, ihr Telefon zu sperren, während ein Video läuft — und leicht überrascht zu sein, dass der Ton weiterläuft. Im normalen iOS-Safari würde er das nicht. Hier ist, was darunter wirklich passiert, denn die ehrliche Version ist interessanter als „wir haben eine Einstellung aktiviert“.
Die Einschränkung
talavo rendert Seiten in einer WKWebView — derselben WebKit-Engine, die Safari nutzt und die einzige Browser-Engine, die Apple auf iOS erlaubt. WebKit geht bewusst aggressiv mit dem Hintergrund um: Sobald die Web-View den Vordergrund verlässt, drosselt das System Timer und setzt die Medien-Pipeline aus. Das ist gut für den Akku und schrecklich für jemanden, der einfach ein Podcast-artiges Video bei ausgeschaltetem Bildschirm weiterlaufen lassen will. YouTube selbst behält ununterbrochene Hintergrundwiedergabe Premium vor.
Die Pipeline am Leben halten
Der Trick ist kein geheimer Schalter — es ist die Weigerung, die Mediensitzung sterben zu lassen. talavo fängt die Mediensitzung der Seite ab und hält, wenn das System die Wiedergabe beim Wechsel in den Hintergrund pausieren will, das zugrunde liegende Element „am Laufen“, statt WebKit es abbauen zu lassen. In der Praxis heißt das, die vom OS erzwungene Pause abzufangen und das Element sofort weiterticken zu lassen — notfalls mit nahezu null Wiedergabegeschwindigkeit — sodass die Audio-Pipeline warm bleibt und sauber fortsetzt, statt aufgeräumt zu werden.
Darüber hinaus verbindet talavo die standardmäßigen iOS-Wiedergabesteuerungen (Sperrbildschirm, Kontrollzentrum, AirPods) mit dem aktiven Video, sodass Pause, Wiedergabe und Spulen sich wie eine native Medien-App verhalten und nicht wie eine Webseite, die zufällig Ton hat.
Der schwebende Mini-Player
Hintergrund-Audio ist nur die halbe Geschichte. Die andere Hälfte ist der schwebende Mini-Player: ein Bild-in-Bild-Fenster, das das Video ablöst, sodass es weiterläuft, während du in einem anderen Tab etwas anderes liest — kein Premium-Abo nötig. Es ist dieselbe Idee wie System-PiP, verfügbar für jedes Video, das talavo abspielen kann.
Die ehrliche Einschränkung
Das ist eine Lösung, die auf WebKit aufsetzt, keine private API. Das bedeutet zweierlei: Sie bleibt innerhalb dessen, was die Web-Plattform bereitstellt, und sie kann betroffen sein, wenn YouTube die Interna seines Players umstellt. Wenn das passiert, beheben wir es — das ist der Großteil dessen, was eine Punktversion wie die in unserem Changelog tut. Der Vorteil, auf der echten Browser-Engine aufzubauen, ist, dass der Rest des Webs normal weiterfunktioniert, während das läuft.