Πώς λειτουργεί πραγματικά η αναπαραγωγή YouTube στο παρασκήνιο στο iOS
Ένα από τα πρώτα πράγματα που δοκιμάζουν οι άνθρωποι στο talavo είναι να κλειδώσουν το τηλέφωνό τους ενώ παίζει ένα βίντεο — και να εκπλαγούν ελαφρώς όταν ο ήχος συνεχίζεται. Στο κανονικό iOS Safari δεν θα το έκανε. Εδώ είναι τι συμβαίνει πραγματικά από κάτω, γιατί η ειλικρινής εκδοχή είναι πιο ενδιαφέρουσα από το «ενεργοποιήσαμε μια ρύθμιση».
Ο περιορισμός
Το talavo αποδίδει σελίδες σε WKWebView — την ίδια μηχανή WebKit που χρησιμοποιεί το Safari, η οποία είναι η μόνη μηχανή προγράμματος περιήγησης που επιτρέπει η Apple στο iOS. Το WebKit είναι σκόπιμα επιθετικό με το backgrounding: όταν η web view φεύγει από το προσκήνιο, το σύστημα περιορίζει τους χρονομετρητές και αναστέλλει τον αγωγό πολυμέσων. Αυτό είναι καλό για την μπαταρία και άσχημο για κάποιον που θέλει απλώς ένα βίντεο τύπου podcast να συνεχίζει με σβηστή οθόνη. Το ίδιο το YouTube επιφυλάσσει τη συνεχή αναπαραγωγή παρασκηνίου για Premium.
Διατήρηση του αγωγού ζωντανού
Το κόλπο δεν είναι μια μυστική σημαία — είναι η άρνηση να αφεθεί η περίοδος λειτουργίας πολυμέσων να πεθάνει. Το talavo παρεμβαίνει στην περίοδο λειτουργίας πολυμέσων της σελίδας και, όταν το σύστημα προσπαθεί να παύσει την αναπαραγωγή κατά το backgrounding, διατηρεί το υποκείμενο στοιχείο «σε λειτουργία» αντί να αφήσει το WebKit να το καταστρέψει. Στην πράξη αυτό σημαίνει ότι πιάνει την παύση που επιβάλλει το λειτουργικό σύστημα και κρατά αμέσως το στοιχείο να τικ-τακάρει — σε σχεδόν μηδενικό ρυθμό αναπαραγωγής αν χρειαστεί — ώστε ο αγωγός ήχου να παραμένει ζεστός και να συνεχίζεται ομαλά αντί να απορρίπτεται.
Επιπλέον, το talavo συνδέει τα τυπικά στοιχεία ελέγχου αναπαραγωγής iOS (κλειδωμένη οθόνη, Κέντρο ελέγχου, AirPods) με το ενεργό βίντεο, ώστε η παύση, η αναπαραγωγή και η περιήγηση να συμπεριφέρονται σαν εγγενής εφαρμογή πολυμέσων και όχι σαν ιστοσελίδα που τυχαία έχει ήχο.
Το αιωρούμενο mini-player
Ο ήχος παρασκηνίου είναι η μισή ιστορία. Η άλλη μισή είναι το αιωρούμενο mini-player: ένα παράθυρο picture-in-picture που αποσπά το βίντεο ώστε να συνεχίζει να παίζει ενώ διαβάζετε κάτι άλλο σε άλλη καρτέλα — χωρίς συνδρομή Premium. Είναι η ίδια ιδέα με το σύστημα PiP, διαθέσιμο για οποιοδήποτε βίντεο μπορεί να παίξει το talavo.
Η ειλικρινής επιφύλαξη
Αυτή είναι μια λύση βασισμένη στο WebKit, όχι ένα ιδιωτικό API. Αυτό σημαίνει δύο πράγματα: παραμένει εντός αυτών που εκθέτει η πλατφόρμα ιστού, και μπορεί να επηρεαστεί όταν το YouTube αναδιατάξει τα εσωτερικά του player. Όταν συμβεί αυτό το διορθώνουμε — αυτό κάνει κυρίως μια έκδοση σημείου όπως αυτές στο changelog μας. Το πλεονέκτημα της δόμησης στην πραγματική μηχανή προγράμματος περιήγησης είναι ότι ο υπόλοιπος ιστός συνεχίζει να λειτουργεί κανονικά ενώ αυτό τρέχει.