Blog

Si funksionon në të vërtetë riprodhimi i YouTube në sfond në iOS

Nga talavo5 min lexim

Një nga gjërat e para që njerëzit provojnë në talavo është kyçja e telefonit ndërsa po luhet një video — dhe janë lehtë të habitur kur audio vazhdon. Në iOS Safari standard nuk do të vazhdonte. Ja çfarë po ndodh poshtë, sepse versioni i sinqertë është më interesant se «aktivizuam një cilësim».

Kufizimi

talavo shfaq faqet në një WKWebView — i njëjti motor WebKit që përdor Safari, i cili është i vetmi motor shfletuesi që Apple lejon në iOS. WebKit është me qëllim agresiv me sfondifikimin: kur pamja ueb largohet nga paraplani, sistemi ngadalëson kohëmatësit dhe pezullon linjën e medias. Kjo është e shkëlqyeshme për baterinë dhe e tmerrshme për dikë që dëshiron vetëm që një video në stilin e podkastit të vazhdojë me ekranin të fikur. YouTube vetë rezervon riprodhimin e pandërprerë në sfond për Premium.

Mbajtja e linjës gjallë

Truku nuk është një shenjë sekrete — është refuzimi për ta lënë sesionin e medias të vdesë. talavo kap sesionin e medias të faqes dhe, kur sistemi përpiqet të ndërpresë riprodhimin gjatë sfondifikimit, mban elementin bazë «duke funksionuar» në vend që t'i lejojë WebKit-it ta shkatërrojë. Në praktikë kjo do të thotë kapja e ndërprerjes që imponon OS-ja dhe mbajtja menjëherë e elementit në punë — me shpejtësi riprodhimi pothuajse zero nëse duhet — kështu që linja audio mbetet e ngrohtë dhe rifillon pastër në vend që të grumbullohet si mbeturinë.

Mbi këtë, talavo lidhi kontrollet standarde iOS të riprodhimit tani (ekrani i kyçjes, Qendra e Kontrollit, AirPods) me videon aktive, kështu që pauzimi, luajtja dhe lëvizja funksionojnë si një aplikacion media vendas dhe jo si një faqe ueb që rastësisht ka zë.

Mini-player lundrues

Audio në sfond është gjysma e historisë. Gjysma tjetër është mini-player lundrues: një dritare picture-in-picture që shkëput videon kështu që vazhdon të luajë ndërsa lexoni diçka tjetër në një skedë tjetër — nuk kërkohet abonim Premium. Është e njëjta ide si PiP i sistemit, e sjellë për çdo video që talavo mund të luajë.

Kufizimi i sinqertë

Ky është një zgjidhje e shtresëzuar mbi WebKit, jo një API private. Do të thotë dy gjëra: mbetet brenda asaj që ekspozohet nga platforma ueb, dhe mund të ndikohet kur YouTube rirregullon të brendshmet e playerit të tij. Kur ndodh kjo e rregullojmë — kjo është shumica e asaj që bën një version pikë si ato në ndryshimet tona. Avantazhi i ndërtimit mbi motorin e vërtetë të shfletuesit është që pjesa tjetër e uebit vazhdon të funksionojë normalisht ndërsa kjo funksionon.