Како репродукција YouTube видеа у позадини заиста функционише на iOS-у
Једна од првих ствари које људи пробају у talavo је да закључају телефон док се видео репродукује — и да буду благо изненађени кад звук настави. На стандардном iOS Safari то не би. Ево шта се заправо дешава испод, јер је искрена верзија занимљивија од „укључили смо подешавање”.
Ограничење
talavo приказује странице у WKWebView — истом WebKit механизму који користи Safari, а то је једини прегледач механизам који Apple дозвољава на iOS-у. WebKit је намерно агресиван у погледу позадине: када веб приказ напусти први план, систем успорава тајмере и суспендује медијски ток. То је одлично за батерију и страшно за некога ко само жели да видео у стилу подкаста наставља са искљученим екраном. YouTube сам резервише непрекидну репродукцију у позадини за Premium.
Одржавање тока у животу
Трик није тајни прекидач — то је одбијање да се медијска сесија угаси. talavo пресреће медијску сесију странице и, када систем покуша да паузира репродукцију при одласку у позадину, задржава основни елемент „у раду“ уместо да дозволи WebKit-у да га сруши. У пракси то значи хватање паузе коју ОС намеће и тренутно одржавање елемента у тику — по потреби и скоро нултом брзином репродукције — тако да аудио ток остаје топао и наставља чисто уместо да буде одбачен.
Поврх тога, talavo повезује стандардне iOS контроле за тренутно репродуковање (закључани екран, Контролни центар, AirPods) са активним видеом, тако да паузирање, репродукција и премотавање функционишу као нативна медијска апликација, а не као веб страница која случајно има звук.
Лебдећи мини плејер
Позадински звук је само пола приче. Друга половина је лебдећи мини плејер: прозор слика у слици (PiP) који одваја видео тако да наставља да се репродукује док читате нешто друго у другом табу — без Premium претплате. То је иста идеја као системски PiP, доступан за сваки видео који talavo може да репродукује.
Искрено упозорење
Ово је заобилазно решење наслојено на врх WebKit-а, а не приватни API. То значи две ствари: остаје у оквиру онога шта веб платформа излаже, и може бити погођено кад YouTube измени унутрашњост свог плејера. Када се то деси, поправљамо — то је главнина онога шта ради верзија попут оних у нашем changelog-у. Предност градње на стварном прегледачком механизму је да остатак веба наставља да функционише нормално током овога.