Miten YouTuben taustatoisto oikeasti toimii iOS:lla
Yksi ensimmäisistä asioista, joita ihmiset kokeilevat talavossa, on puhelimen lukitseminen videon toiston aikana — ja lievä yllätys, kun ääni jatkuu. Normaalissa iOS-Safarissa se ei jatkuisi. Tässä on se, mitä konepellin alla oikeasti tapahtuu, koska rehellinen versio on kiinnostavampi kuin “aktivoimme asetuksen”.
Rajoitus
talavo renderöi sivut WKWebView:ssa — samassa WebKit-moottorissa, jota Safari käyttää ja joka on ainoa selainmoottori, jonka Apple sallii iOS:lla. WebKit on tarkoituksellisen aggressiivinen taustalähetyksen suhteen: kun web-näkymä siirtyy taustalle, järjestelmä hidastaa ajastimia ja keskeyttää medialiitännän. Se on hyvä akkua ajatellen ja kauhea jollekin, joka haluaa podcast-tyyppisen videon jatkavan toistoa näytön ollessa pois päältä. YouTube itse pidättää keskeytymättömän taustatoiston Premium-käyttäjille.
Liitännän pitäminen elossa
Temppu ei ole salainen asetus — se on kieltäytyminen antamasta mediasession kuolla. talavo sieppaa sivun mediasession ja, kun järjestelmä yrittää keskeyttää toiston taustalähetyksessä, pitää taustalla olevan elementin “käynnissä” sen sijaan, että antaisi WebKitin purkaa sen. Käytännössä se tarkoittaa käyttöjärjestelmän pakottaman tauon sieppaamista ja elementin pitämistä välittömästi käynnissä — lähes nollalla toistovauhdilla tarvittaessa — jotta ääniputki pysyy lämpimänä ja jatkaa sujuvasti sen sijaan, että siivottaisiin se pois.
Sen lisäksi talavo kytkee standardin iOS:n toistosäätimet (lukitusnäyttö, ohjauskeskus, AirPods) aktiiviseen videoon, jotta tauko, toisto ja siirtyminen toimivat kuin natiivi mediaohjelma eikä kuin verkkosivu, jossa sattuu olemaan ääntä.
Kelluva minisoitin
Tausta-ääni on puolet tarinasta. Toinen puoli on kelluva minisoitin: kuva kuvassa -ikkuna, joka irrottaa videon jatkamaan toistoa, kun luet jotain muuta toisella välilehdellä — ilman Premium-tilausta. Se on sama idea kuin järjestelmän PiP, käytettävissä kaikissa videoissa, joita talavo voi toistaa.
Rehellinen varoitus
Tämä on WebKitin päälle rakennettu kiertotapa, ei yksityinen rajapinta. Se tarkoittaa kahta asiaa: se pysyy sen sisällä, mitä web-alusta tarjoaa, ja se voi vaikuttua, kun YouTube järjestelee soittimensa sisäisyyksiä uudelleen. Kun niin tapahtuu, korjaamme sen — se on suurin osa siitä, mitä pisteversio kuten meidän muutoslokimme tekee. Todellisen selainmoottorin päälle rakentamisen etuna on, että muu verkko jatkaa normaalia toimintaansa tämän aikana.