Blog

Hogyan működik valójában a YouTube háttérben való lejátszása iOS-en

A talavo csapatától5 perc olvasás

Az egyik első dolog, amit az emberek kipróbálnak a talavo-ban, hogy lezárják a telefonjukat, miközben egy videó fut — és enyhén meglepődnek, hogy a hang tovább szól. A normál iOS Safari-ban ez nem működne. Íme, mi történik valójában a motorháztető alatt, mert az őszinte változat érdekesebb, mint az „bekapcsoltunk egy beállítást“.

A korlát

A talavo WKWebView-ban rendereli az oldalakat — ugyanabban a WebKit-motorban, amelyet a Safari használ, és amely az egyetlen böngészőmotor, amelyet az Apple iOS-en engedélyez. A WebKit szándékosan agresszív a háttérkezeléssel: amikor a webnézet elhagyja az előteret, a rendszer lelassítja az időzítőket és felfüggeszti a médiafolyamatot. Ez kiváló az akkumulátor szempontjából, és szörnyű annak, aki csak szeretné, hogy egy podcast jellegű videó zárt képernyőnél tovább fusson. Maga a YouTube a megszakítás nélküli háttérlejátszást Premium mögé zárja.

A folyamat életben tartása

A trükk nem egy titkos kapcsoló — hanem az, hogy nem hagyjuk meghalni a médialejátszási munkamenetet. A talavo elfogja az oldal médialejátszási munkamenetét, és amikor a rendszer megpróbálja szüneteltetni a lejátszást háttérbe kerüléskor, a mögöttes elemet „futva” tartja ahelyett, hogy hagyná a WebKit-et lebontani. A gyakorlatban ez azt jelenti, hogy elkapjuk az operációs rendszer által kényszerített szünetet, és azonnal tovább pörgetjük az elemet — szinte nulla lejátszási sebességgel, ha kell —, így a hangcsővezeték melegen marad és tisztán folytatódik ahelyett, hogy törlésre kerülne.

Ezen felül a talavo hozzáköti a standard iOS most-játszott vezérlőket (zárolási képernyő, Vezérlőközpont, AirPods) az aktív videóhoz, így a szünet, lejátszás és tekerés natív médiaapp-szerűen viselkedik, nem úgy, mint egy véletlen hangot tartalmazó weboldal.

A lebegő mini-lejátszó

A háttér-hang csak a fél történet. A másik fele a lebegő mini-lejátszó: egy képernyőn belüli kép ablak, amely leválasztja a videót, hogy tovább fusson, miközben egy másik lapfülön valami mást olvasol — nem szükséges Premium-előfizetés. Ez ugyanaz az ötlet, mint a rendszer PiP, elérhetővé téve minden videóhoz, amelyet a talavo le tud játszani.

Az őszinte fenntartás

Ez egy megkerülő megoldás a WebKit tetején, nem egy privát API. Ez két dolgot jelent: a web platform által elérhetővé tett keretein belül marad, és érintett lehet, amikor a YouTube átrendezi a lejátszó belső részeit. Amikor ez megtörténik, kijavítjuk — ez teszi ki egy pontverziós kiadás nagy részét, amilyenek a változásnaplónkban szerepelnek. Az igazi böngészőmotorra építés előnye, hogy a web többi része normálisan működik tovább, miközben ez fut.