Come funziona davvero la riproduzione in background di YouTube su iOS
Una delle prime cose che le persone provano in talavo è bloccare il telefono mentre un video è in riproduzione — e restare leggermente sorprese quando l'audio continua. Con il Safari iOS predefinito non succederebbe. Ecco cosa sta succedendo sotto, perché la versione onesta è più interessante di «abbiamo attivato un'impostazione».
Il vincolo
talavo esegue il rendering delle pagine in una WKWebView — lo stesso motore WebKit che usa Safari, l'unico motore browser che Apple consente su iOS. WebKit è deliberatamente aggressivo con il background: quando la web view lascia il primo piano, il sistema limita i timer e sospende la pipeline multimediale. Ottimo per la batteria e pessimo per chi vuole semplicemente che un video stile podcast continui con lo schermo spento. YouTube stesso riserva la riproduzione in background ininterrotta agli utenti Premium.
Mantenere la pipeline attiva
Il trucco non è un flag segreto — è rifiutarsi di lasciare morire la sessione multimediale. talavo intercetta la sessione multimediale della pagina e, quando il sistema tenta di mettere in pausa la riproduzione durante il passaggio in background, mantiene l'elemento sottostante «in esecuzione» invece di lasciare che WebKit lo distrugga. In pratica significa intercettare la pausa forzata dal sistema operativo e mantenere immediatamente l'elemento in funzione — a una velocità di riproduzione quasi zero se necessario — in modo che la pipeline audio rimanga attiva e riprenda in modo pulito invece di essere eliminata.
Oltre a ciò, talavo collega i controlli standard di iOS ora-in-riproduzione (schermata di blocco, Centro di Controllo, AirPods) al video attivo, così pausa, play e avanzamento si comportano come un'app multimediale nativa piuttosto che come una pagina web che produce casualmente dell'audio.
Il mini-player flottante
Audio in background è solo metà della storia. L'altra metà è il mini-player flottante: una finestra picture-in-picture che sgancia il video in modo che continui a riprodursi mentre leggi qualcos'altro in un altro tab — nessun abbonamento Premium richiesto. È la stessa idea del PiP di sistema, resa disponibile per qualsiasi video che talavo può riprodurre.
L'avvertenza onesta
Questa è una soluzione sovrapposta a WebKit, non un'API privata. Significa due cose: rimane all'interno di ciò che espone la piattaforma web, e può essere influenzata quando YouTube riorganizza gli internals del suo player. Quando succede lo correggiamo — è la maggior parte di quello che fa una release minore come quelle nel nostro changelog. Il vantaggio di costruire sul vero motore browser è che il resto del web continua a funzionare normalmente mentre questo è in esecuzione.