Blog

Cum funcționează cu adevărat redarea YouTube în fundal pe iOS

De talavo5 min de citit

Unul dintre primele lucruri pe care oamenii le încearcă în talavo este să-și blocheze telefonul în timp ce rulează un videoclip — și să fie ușor surprinși că sunetul continuă. Pe iOS Safari obișnuit nu ar continua. Iată ce se întâmplă de fapt pe dedesubt, pentru că varianta onestă este mai interesantă decât „am activat o setare“.

Constrângerea

talavo randează paginile într-un WKWebView — același motor WebKit pe care îl folosește Safari, singurul motor de browser pe care Apple îl permite pe iOS. WebKit este deliberat agresiv în privința fundalului: când web view-ul părăsește primul plan, sistemul limitează temporizatoarele și suspendă pipeline-ul media. Asta e grozav pentru baterie și îngrozitor pentru cineva care vrea ca un videoclip de tip podcast să continue să ruleze cu ecranul stins. YouTube însuși rezervă redarea neîntreruptă în fundal pentru utilizatorii Premium.

Menținerea pipeline-ului activ

Trucul nu e un indicator secret — e refuzul de a lăsa sesiunea media să moară. talavo interceptează sesiunea media a paginii și, când sistemul încearcă să întrerupă redarea la trecerea în fundal, menține elementul de bază „în funcțiune“ în loc să lase WebKit să-l distrugă. În practică, asta înseamnă să prindă pauza forțată de OS și să mențină imediat elementul activ — la o rată de redare aproape de zero dacă e necesar — astfel că pipeline-ul audio rămâne cald și se reia curat în loc să fie eliminat din memorie.

Pe lângă asta, talavo conectează comenzile standard de redare iOS (ecran de blocare, Centrul de control, AirPods) la videoclipul activ, astfel că pauza, redarea și avansarea se comportă ca o aplicație media nativă, nu ca o pagină web care se întâmplă să aibă sunet.

Mini-playerul flotant

Sunetul în fundal este jumătate din poveste. Cealaltă jumătate este mini-playerul flotant: o fereastră picture-in-picture care desprinde videoclipul astfel că continuă să ruleze în timp ce citești altceva în alt tab — fără abonament Premium necesar. Este aceeași idee ca PiP-ul de sistem, disponibil pentru orice videoclip pe care talavo îl poate reda.

Avertismentul onest

Aceasta este o soluție construită pe WebKit, nu un API privat. Asta înseamnă două lucruri: rămâne în limitele a ceea ce expune platforma web și poate fi afectată când YouTube restructurează componentele interne ale playerului. Când se întâmplă asta, o reparăm — asta face cea mai mare parte dintr-o versiune punctuală precum cele din changelog-ul nostru. Avantajul de a construi pe motorul de browser real este că restul web-ului continuă să funcționeze normal în timp ce aceasta rulează.