Kako predvajanje YouTube v ozadju v resnici deluje na iOS
Ena prvih stvari, ki jih ljudje preizkusijo v talavo, je zaklepanje telefona med predvajanjem videa — in blago presenečenje, ko zvok teče naprej. V navadnem iOS Safari ne bi. Tu je, kaj se v resnici dogaja pod pokrovom, ker je iskrena različica zanimivejša od »vklopili smo nastavitev«.
Omejitev
talavo upodablja strani v WKWebView — istem pogonu WebKit, ki ga uporablja Safari in ki je edini brskalniški pogon, ki ga Apple dovoljuje na iOS. WebKit je namerno agresiven pri prehodu v ozadje: ko spletni pogled zapusti ospredje, sistem omeji časovnike in zaustavi medijski cevovod. To je odlično za baterijo in grozno za nekoga, ki želi, da se video v slogu podkasta predvaja naprej z izklopljenim zaslonom. YouTube sam si pridržuje neprekinjeno predvajanje v ozadju za Premium.
Ohranjanje cevovoda pri življenju
Trik ni skrita zastavica — je zavrnitev, da medijska seja umre. talavo prestreže medijsko sejo strani in ko sistem ob prehodu v ozadje poskuša ustaviti predvajanje, ohrani osnoven element »v teku« namesto da bi WebKit-u dopustil, da ga uniči. V praksi to pomeni loviti premor, ki ga vsili OS, in takoj obdržati element v teku — pri skoraj ničelni hitrosti predvajanja, če je treba — da zvočni cevovod ostane topel in se čisto nadaljuje namesto da bi bil sproščen iz pomnilnika.
Poleg tega talavo poveže standardne iOS-kontrole za predvajanje (zaklenjen zaslon, nadzorni center, AirPods) z aktivnim videom, tako da se pavza, predvajanje in premikanje obnašajo kot izvorna medijska aplikacija in ne kot spletna stran, ki ima naključno zvok.
Lebdeči mini-predvajalnik
Ozadni zvok je le pol zgodbe. Druga polovica je lebdeči mini-predvajalnik: okno s sliko v sliki, ki loči video, da teče naprej, medtem ko v drugem zavihku berete kaj drugega — brez naročnine Premium. Gre za isto idejo kot sistemski PiP, na voljo za vsak video, ki ga talavo zmore predvajati.
Iskrena opomba
To je obhod, zgrajen na WebKit, ne zasebni API. To pomeni dve stvari: ostaja znotraj tega, kar izpostavlja spletna platforma, in nanjo lahko vplivajo spremembe, ko YouTube preuredi notranjost svojega predvajalnika. Ko se to zgodi, to popravimo — to je večina tega, kar naredi točkovna različica, kot so tiste v našem changelog. Prednost gradnje na resničnem brskalnem pogonu je, da preostanek spleta deluje normalno, medtem ko to teče.