Qu'y a-t-il dans ma smart tv? Ou qu'est-ce qui peut être entassé dans le téléviseur?

Au lieu de l'avant-propos


Bonjour, chers collègues! Je m'appelle Aleksey et je suis engagé dans les téléviseurs, à savoir le développement d'applications Smart TV (" Let's pat Aleksey ").

Mais qu'est-ce qu'un téléviseur intelligent? Qu'est-ce qu'une application sphérique Smart TV dans le vide?

Je ne vais pas vous déranger avec cette attente: fondamentalement, ce type d'applications est conçu pour afficher du contenu vidéo. Dans toutes les variantes. Enregistrements, retransmissions en direct, émissions de télévision, films, dessins animés, publicités, etc., et ainsi de suite ... Des milliers!

Mais la Smart TV est-elle juste pour ça?



Oui, bien sûr, le téléviseur montre le meilleur contenu vidéo, et il s'en sort bien, mais est-ce seulement pour cela que nous pouvons l'utiliser?

( Maintenant, tous les heureux propriétaires de consoles et de câbles HDMI me lanceront leurs tomates pourries, diront "Désabonnez-vous!" Et les heureux partiront et nous continuerons .)

En effet, la grande majorité des applications que nous avons dû développer sont principalement destinées à montrer des vidéos, mais il y a eu quelques exceptions remarquables entre elles. De plus, souffrant de la maladie bien connue «Alêne dans un endroit juste en dessous du dos», je voulais extraire quelque chose de plus des téléviseurs que tout le monde attend d'eux.

Mes (et pas seulement) modestes tentatives seront discutées ci-dessous.

TV - Jeu?


En effet, la première chose qui me vient à l'esprit est le jeu! Le grand écran, la possibilité de requêtes inter-domaines (puisque l'application Smart TV, en fait, est une page HTML locale), et à tout le moins un contrôle standard (télécommande) nous permettent d'implémenter un scénario de jeu.

Pour la plupart, ce sont des jeux occasionnels comme «1024» ou des variations sur le thème de «Tower Defense». Ce n'est pas épais. Malheureusement, emballer la super 3D avec des shaders, des ombres et un éclairage dynamique ne fonctionnera que sur les derniers modèles ... l'année prochaine. La télévision n'est généralement pas la version la plus avancée du navigateur et, pire encore, elle est rarement mise à jour ou pas du tout mise à jour. De plus, la différence entre la puissance d'un téléviseur, même l'année dernière et celle actuelle, peut être multiple.

Par conséquent, si vous souhaitez couvrir le nombre maximum de modèles, préparez-vous à l'optimisation sanglante de tout et de tout. Une toile propre et native sera votre meilleure amie. Les emballages y travaillent, mais c'est extrêmement gourmand. Le travail insatisfaisant des méthodes de rotation et de transformation est particulièrement déprimant, alors planifiez l'animation des sprites et n'implémentez les virages des sprites que dans les cas les plus extrêmes.

Une fois, nous avons fait un jeu sur Career Night. Elle a réussi à se rendre auprès de merveilleux collègues des Web Standarts Days et à faire une présentation.

Visuellement, le jeu est un terrain de jeu, s'adapte à la taille de l'écran, sans défilement, sans barrières. L'arrière-plan est divisé en plusieurs couches pour réaliser l'effet 3D. Sur scène, des cibles volantes (canards) sont générées, sur lesquelles l'utilisateur peut tirer.




Fig. 1. Vue générale de l'application.

La tâche principale était de donner la possibilité de jouer au jeu à tout le monde, ce qui excluait immédiatement l'interaction avec la télécommande. La console en est une, mais il y a beaucoup de joueurs. La gestion a été mise en œuvre à l'aide du téléphone, et pour une couverture maximale des appareils mobiles, il a été décidé de mettre en œuvre le client sous la forme d'un site Web adaptatif. Nous l'avons implémenté sur WebSockets et ajouté une gestion des puces en changeant la position du téléphone.

Ensuite, de nombreuses fonctionnalités intéressantes sont apparues, des capteurs d'orientation de faible qualité et d'autres problèmes. Nous avons dû appliquer des algorithmes de réduction du bruit, sinon la «vue» du joueur sur l'écran du téléviseur a souffert d'un tremblement terrible. Il s'est également avéré que le jeu "soufflait le vent": une erreur accumulée dans les calculs sur les téléphones et les viseurs "soufflaient" progressivement dans une direction, ce qui obligeait les joueurs à tourner progressivement. Certains ont joué dos à la télé.

Moralité : utilisez le moins possible les capteurs d'orientation dans les navigateurs des téléphones.


Fig. 2. Les tueurs de canards au travail

L'application utilise l'animation en remplaçant les sprites. Cette méthode était assez productive. Nous avons testé l'application avec des centaines ou plus de canards volants. En réalité, il n'y en avait que 10 dans le jeu. Des problèmes de performance sont survenus lorsque le designer est arrivé et s'est écrié: «Je veux que la planète tourne»!

Twist le sprite n'était pas un problème. Le problème est survenu lorsque nous avons lancé l'application sur un téléviseur relativement ancien. Il s'est avéré qu'il n'a pas supprimé un peu plus que rien une rotation de sprite de 900 × 900 pixels. En conséquence, l'utilisateur le plus grand aux yeux peut remarquer que la planète en arrière-plan est coupée en 9 parties qui tournent autour d'un centre. Cela a résolu le problème de performances.

D'où une autre morale : ne faites pas tourner les grands sprites.

Une autre caractéristique du projet était que la logique du jeu est calculée ... à la télévision. Dans ce cas, le serveur agit simplement comme un transmetteur de données entre les clients et le téléviseur. Nous l'avons fait pour que même en cas de perte de connexion, les canards continuent de voler à travers l'écran, et après avoir restauré Internet, il n'était pas nécessaire de redémarrer l'application. Un cas curieux, mais toujours facultatif.

Écran TV?


Il semblerait que ce soit déjà banal, mais non. Comme d'habitude, tout est caché dans les détails. Écran pour quoi? Quelle fonction exerce-t-il? À quoi ça sert?

Je ne donnerai que quelques exemples.

Félicitations

Un jour, nous avons décidé de la Saint-Valentin de réduire les félicitations en ligne dans l'entreprise et d'utiliser les téléviseurs disponibles comme traducteurs de félicitations. L'application a été implémentée dans une version minimaliste avec une demande au serveur renvoyant une liste de félicitations. Le principal problème était la caractéristique désagréable des téléviseurs de passer en mode veille. Si Samsung vous permet de désactiver cette fonctionnalité à l'aide de la méthode setScreenSaver, les autres plates-formes ne le permettent pas vraiment. Alternativement, vous pouvez exécuter en arrière-plan toute vidéo en boucle - le téléviseur en mode d'affichage vidéo s'éteint beaucoup moins souvent. En conséquence, l'application a rempli sa fonction: dans toutes les parties du bureau sur plusieurs étages, les félicitations des employés ont été diffusées en ligne.

La carte

Pour être tout à fait précis - une carte de combat avec une liste des meilleurs joueurs.

Nous avons de nouveau fait le jeu sur Career Night et cette fois, nous avons décidé de combiner téléviseurs, téléphones et VR. L'essentiel était que le joueur dans le casque VR vole sur le dragon et tire sur les princesses, qui sont contrôlées par les joueurs depuis les téléphones. Celui qui a tué le dragon met un casque. Et donc en cercle. Je note modestement que l'application a fait face à sa fonction (collecter le maximum de personnes sur notre stand et les garder le plus longtemps possible). En savoir plus sur les dragons détruisant les princesses ici .




Fig. 3. Vue générale du stand

L'application TV a fourni une démonstration de la scène de bataille générale pour tous les arrivants.

Dans ce projet, nous avons été confrontés à la nécessité d'optimiser un code auparavant stable et fonctionnant correctement. Avec une augmentation du nombre d'acteurs, les indicateurs de performance des applications se sont nettement dégradés. Nous avons identifié les principaux moyens d'optimisation:

  • réduire la quantité d'informations transmises du serveur aux clients et des clients au serveur;
  • minimiser la création de nouveaux objets dans l'application.

La création de chaque nouvelle instance de la classe est perceptible à l'œil nu, de sorte que toutes les instances doivent être créées à l'avance et montrées à l'utilisateur si nécessaire.

Sur le téléviseur à gauche est une vue depuis les lunettes VR, sur le téléviseur au centre est une carte de scène.


Fig. 4. Le gameplay. À la télévision à gauche - vue depuis des lunettes VR, à la télévision au centre - plan de la scène

Arrière-plan interactif

Vous pouvez à juste titre demander: "Travaillez-vous même là-bas, non?!" A quoi je répondrai par un manque de sommeil sincère sur mon visage: "Bien sûr, je travaille!" Mais plus à ce sujet plus tard. Entre-temps, nous ne nous sommes pas assis et voulions mettre en place un arrière-plan interactif pour le quadricoptère. Plus de détails sur le projet peuvent être trouvés ici .

L'idée était de montrer à la télévision la succession même du Père Noël, qui répondrait au départ / arrivée du quadricoptère.

Le principal intérêt était d'étirer l'image sur trois téléviseurs. Différents fabricants.

Nous l'avons fait en divisant toute la scène en «pièces». Chaque téléviseur montrait une «pièce» avec son numéro. Les numéros des "pièces" pourraient être modifiés, de sorte que les téléviseurs, en principe, pourraient montrer les mêmes parties d'une scène, mais nous avons montré la scène entière dans l'ordre. Des commandes pour déplacer l'environnement des scènes (animaux, mouvement de la lune et fumée des cheminées) ont été transmises depuis le serveur via leurs WebSockets préférées.




Fig. 5. Une scène s'étalant sur trois téléviseurs

Puisque nous connaissions l'heure d'arrivée / de départ du quadricoptère, l'idée est venue de faire du «vent» sur les téléviseurs, qui «soufflerait» la fumée des tuyaux avec un fonctionnement serré des vis.

Encore une fois, la commande de décollage du quadricoptère via le serveur est descendue aux clients.

Et là aussi, nous avons eu des difficultés de performance. Le «vieux» webOS de 2013 a rendu une image extrêmement difficile (5760 × 1080). J'ai dû couper la toile de fond à la taille de l'écran spécialement pour lui et la remplacer strictement.

Moralité : n'essayez pas de dessiner des images beaucoup plus grandes que l'écran du téléviseur. Il ne survivra pas à cela.

Néanmoins, nous avons réussi à mettre en œuvre tout ce qui concerne la Smart TV et le backend.

TV - Garde?

Cependant, le projet le plus intéressant était complètement non-fictionnel, et quoi qu'il en soit, utile.

L'application était engagée dans la sécurité à domicile. Oui, c'est la télévision. Oui, c'était gardé.

L'essence de l'application est que l'appareil photo existant prend tout ce qui se passe devant lui, et en cas de changement brusque de l'image, il prend des mesures pour choisir:

  • crier fort;
  • envoie des SMS à l'utilisateur;
  • écrit une lettre avec des photos jointes de l'incident;
  • écrit également un message à FB avec des images;
  • fait tout cela à la fois ou dans des variantes.

En ce moment, la télévision elle-même prétend lourdement être une botte en feutre et ne fonctionne pas du tout. Dans l'application, les cas de mise hors tension du téléviseur à partir d'Internet ou simplement de l'alimentation ont été traités. L'application prend en charge le multilinguisme.

Des dizaines de milliers de personnes l'ont installé pour eux-mêmes.

Mais ici, ce n'était pas simple.

Lorsque vous connectez la caméra et essayez d'en obtenir un flux dans le navigateur, comme vous le savez, la fenêtre contextuelle du système disparaît avec la confirmation de l'action. La particularité est que les téléviseurs bloquent toutes les fenêtres pop-up. Par conséquent, notre application a été mise en œuvre uniquement sur la plate-forme Samsung à l'aide de la caméra TV intégrée ou d'une caméra spéciale fournie par le même Samsung.

Un autre inconvénient était, encore une fois, les performances du téléviseur. Sur des téléviseurs relativement anciens (2013), on pourrait se faufiler devant la caméra et le téléviseur «giflerait» ce moment.

Mais dans l'ensemble, l'idée est tout simplement géniale.

Conclusion


Les téléviseurs ont depuis longtemps dépassé leur fonction principale - pour afficher une image d'une chaîne, pour montrer vidosiki ou pour être un deuxième moniteur.

Leurs capacités et leurs performances ne cessent de croître, et le champ d'application n'est limité que par votre imagination. Toutes les tâches peuvent être résolues en tenant dûment compte de l'idée et de la mise en œuvre appropriée. Osez et réussissez!

Télévision tout le monde!

Z.Y. Peut-être que vous, lecteur, avez eu des tâches inhabituelles pour la télévision intelligente lorsque vous avez dû utiliser la télévision dans un rôle inhabituel? Partagez-le! Dis moi!

Source: https://habr.com/ru/post/fr473366/


All Articles