Was ist in meinem Smart-TV für Sie? Oder was kann in den Fernseher gesteckt werden?

Anstelle des Vorworts


Guten Tag, Kollegen! Mein Name ist Aleksey und ich beschäftige mich mit Fernsehern, nämlich der Entwicklung von Smart-TV-Anwendungen (" Let's Pat Aleksey ").

Aber was ist ein Smart-TV? Was ist eine sphärische Smart-TV-Anwendung im luftleeren Raum?

Ich werde Sie nicht mit der Erwartung belästigen: Grundsätzlich sind diese Arten von Anwendungen für die Anzeige von Videoinhalten ausgelegt. In allen Variationen. Aufgenommen, Live-Übertragung, Fernsehshows, Filme, Cartoons, Werbespots und so weiter und so fort ... Tausende von ihnen!

Aber ist Smart TV nur dafür?



Ja, natürlich zeigt der Fernseher am besten Videoinhalte und kommt damit gut zurecht, aber können wir sie nur dafür verwenden?

( Jetzt werden alle glücklichen Besitzer von Konsolen und HDMI-Kabeln ihre faulen Tomaten auf mich werfen und sagen: "Abbestellen!" Und die glücklichen werden gehen und wir werden fortfahren .)

In der Tat ist die überwiegende Mehrheit der Anwendungen, die wir entwickeln mussten, hauptsächlich für die Darstellung von Videos vorgesehen, aber es gab einige bemerkenswerte Ausnahmen. Da ich an der bekannten Krankheit „Ahle an einem Ort direkt unter dem Rücken“ leide, wollte ich außerdem etwas mehr aus den Fernsehern herausholen, als jeder von ihnen erwartet.

Meine (und nicht nur) bescheidenen Versuche werden unten diskutiert.

TV - Spiel?


In der Tat ist das erste, was mir in den Sinn kommt, das Spiel! Der große Bildschirm, die Möglichkeit domänenübergreifender Anfragen (da die Smart TV-Anwendung tatsächlich eine lokale HTML-Seite ist) und zumindest die Standardsteuerung (Fernbedienung) ermöglichen es uns, ein Spielszenario zu implementieren.

Meist handelt es sich dabei um Gelegenheitsspiele wie „1024“ oder Variationen des Themas „Tower Defense“. Es ist nicht dick. Leider funktioniert das Einpacken von Super-3D mit Shadern, Schatten und dynamischer Beleuchtung nur bei den neuesten Modellen ... nächstes Jahr. Denn TV ist normalerweise nicht die fortschrittlichste Version des Browsers und wird am schlimmsten entweder selten oder gar nicht aktualisiert. Darüber hinaus kann der Unterschied zwischen der Leistung eines Fernsehgeräts, selbst im letzten Jahr und der aktuellen, ein Vielfaches sein.

Wenn Sie also die maximale Anzahl von Modellen abdecken möchten, machen Sie sich bereit für die blutige Optimierung von allem und jedem. Eine saubere, einheimische Leinwand wird Ihr bester Freund sein. Die Wrapper arbeiten daran, aber es ist extrem gefräßig. Die unbefriedigende Arbeit der Rotations- und Transformationsmethoden ist besonders bedrückend. Planen Sie daher Sprite-Animationen und implementieren Sie Sprite-Turns nur im extremsten Fall.

Einmal haben wir in Career Night ein Spiel gemacht. Sie hat es geschafft, zu wunderbaren Kollegen von den Web Standarts Days zu gehen und eine Präsentation zu halten.

Optisch ist das Spiel ein Spielfeld, passt in die Größe des Bildschirms, ohne Scrollen, ohne Barrieren. Der Hintergrund ist in mehrere Ebenen unterteilt, um den 3D-Effekt zu erzielen. Auf der Bühne werden fliegende Ziele (Enten) erzeugt, auf die der Benutzer schießen kann.




Abb. 1. Gesamtansicht der Anwendung.

Die Hauptaufgabe bestand darin, jedem und was auch immer die Möglichkeit zu geben, das Spiel zu spielen, was die Interaktion mit der Fernbedienung sofort ausschloss. Die Konsole ist eine, aber es gibt viele Spieler. Die Verwaltung wurde über das Telefon implementiert, und für eine maximale Abdeckung mobiler Geräte wurde beschlossen, den Client in Form einer adaptiven Website zu implementieren. Wir haben es auf WebSockets implementiert und ein Chip-Management hinzugefügt, indem wir die Position des Telefons geändert haben.

Dann tauchten viele interessante Funktionen auf, Orientierungssensoren von geringer Qualität und andere Störungen. Wir mussten Rauschunterdrückungsalgorithmen anwenden, sonst litt der „Anblick“ des Players auf dem Fernsehbildschirm unter einem schrecklichen Zittern. Es stellte sich auch heraus, dass das Spiel „den Wind weht“: Ein Fehler, der sich in den Berechnungen auf den Telefonen angesammelt hat, und die Sehenswürdigkeiten „weggeblasen“ in eine Richtung, was die Spieler zwang, sich allmählich umzudrehen. Einige spielten mit dem Rücken zum Fernseher.

Moral : Verwenden Sie Orientierungssensoren in Telefonbrowsern so wenig wie möglich.


Abb. 2. Entenkiller bei der Arbeit

Die Anwendung verwendet Animation durch Ersetzen von Sprites. Diese Methode war sehr produktiv. Wir haben die Anwendung mit Hunderten oder mehr fliegenden Enten getestet. In Wirklichkeit gab es nur 10 davon im Spiel. Leistungsprobleme traten auf, als der Designer hereinkam und rief: „Ich möchte, dass sich der Planet dreht“!

Das Sprite zu drehen war kein Problem. Das Problem trat auf, als wir die Anwendung auf einem relativ alten Fernseher starteten. Es stellte sich heraus, dass er eine Sprite-Rotation von 900 × 900 Pixel nicht mehr als nichts herausnahm. Infolgedessen kann der Benutzer mit den größten Augen feststellen, dass der Planet im Hintergrund in 9 Teile geschnitten ist, die sich um eine Mitte drehen. Dies löste das Leistungsproblem.

Daher eine andere Moral : Drehe keine großen Sprites.

Ein weiteres Merkmal des Projekts war, dass die Spielelogik berechnet wird ... im Fernsehen. In diesem Fall fungiert der Server lediglich als Datensender zwischen den Clients und dem Fernsehgerät. Wir haben dies getan, damit Enten auch im Falle eines Verbindungsverlusts weiter über den Bildschirm flogen und nach der Wiederherstellung des Internets die Anwendung nicht neu gestartet werden musste. Ein merkwürdiger Fall, aber immer noch optional.

Fernsehbildschirm?


Es scheint, dass dies bereits alltäglich ist, aber nein. Wie immer steckt alles im Detail. Bildschirm für was? Welche Funktion hat es? Wofür ist es?

Ich werde nur einige Beispiele nennen.

Glückwunsch

Eines Tages beschlossen wir am Valentinstag, einen Online-Glückwunsch im Unternehmen zu reduzieren und die verfügbaren Fernseher als Übersetzer für Glückwünsche zu verwenden. Die Anwendung wurde in einer minimalistischen Version implementiert, wobei eine Anfrage an den Server eine Liste mit Glückwünschen zurückgab. Das Hauptproblem war die unangenehme Funktion von Fernsehgeräten, in den Schlafmodus zu wechseln. Wenn Samsung Ihnen erlaubt, diese Funktion mit der setScreenSaver-Methode zu deaktivieren, lassen andere Plattformen dies nicht wirklich zu. Alternativ können Sie jedes Video im Hintergrund laufen lassen - TV im Videoanzeigemodus wird viel seltener ausgeschaltet. Damit erfüllte die Anwendung ihre Funktion: In allen Teilen des Büros auf mehreren Etagen wurden Glückwünsche der Mitarbeiter online übertragen.

Karte

Um ganz genau zu sein - eine Kampfkarte mit einer Liste der besten Spieler.

Wir haben das Spiel in Career Night erneut gemacht und dieses Mal beschlossen, Fernseher, Telefone und VR zu kombinieren. Das Fazit war, dass der Spieler im VR-Helm auf dem Drachen fliegt und die Prinzessinnen erschießt, die von Spielern über Telefone gesteuert werden. Wer den Drachen getötet hat, setzt einen Helm auf. Und so im Kreis. Ich stelle bescheiden fest, dass die Anwendung mit ihrer Funktion fertig wurde (um die maximale Anzahl von Personen an unserem Stand zu sammeln und sie so lange wie möglich zu behalten). Erfahren Sie hier mehr über Drachen, die Prinzessinnen zerstören.




Abb. 3. Gesamtansicht des Standes

Die TV-Anwendung demonstrierte die allgemeine Kampfszene für alle Ankömmlinge.

In diesem Projekt standen wir vor der Notwendigkeit, zuvor stabilen und gut funktionierenden Code zu optimieren. Mit zunehmender Anzahl von Spielern verschlechterten sich die Leistungsindikatoren für Anwendungen deutlich. Wir haben die wichtigsten Optimierungsmöglichkeiten identifiziert:

  • Reduzierung der Informationsmenge, die vom Server an die Clients und von den Clients an den Server übertragen wird;
  • Minimieren Sie die Erstellung neuer Objekte in der Anwendung.

Die Erstellung jeder neuen Instanz der Klasse ist für das Auge erkennbar, daher müssen alle Instanzen im Voraus erstellt und dem Benutzer nach Bedarf angezeigt werden.

Auf dem Fernseher links ist ein Blick von der VR-Brille, auf dem Fernseher in der Mitte eine Szenenkarte.


Abb. 4. Das Gameplay. Links im Fernsehen - Ansicht von einer VR-Brille, im Fernsehen in der Mitte - Szenenkarte

Interaktiver Hintergrund

Sie können zu Recht fragen: "Arbeiten Sie überhaupt dort, nicht ?!" Darauf werde ich mit einem aufrichtigen Schlafmangel im Gesicht antworten: "Natürlich arbeite ich!" Aber dazu später mehr. In der Zwischenzeit haben wir uns nicht zurückgelehnt und wollten einen interaktiven Hintergrund für den Quadrocopter implementieren. Weitere Details zum Projekt finden Sie hier .

Die Idee war, im Fernsehen das Anwesen des Weihnachtsmanns zu zeigen, das auf die Abfahrt / Ankunft des Quadrocopters reagieren würde.

Das Hauptinteresse bestand darin, das Bild auf drei Fernsehern zu „strecken“. Verschiedene Hersteller.

Wir haben dies getan, indem wir die gesamte Szene in "Räume" unterteilt haben. Jeder Fernseher zeigte ein "Zimmer" mit seiner Nummer. Die Anzahl der "Räume" könnte geändert werden, so dass die Fernseher im Prinzip die gleichen Teile einer Szene zeigen könnten, aber wir haben die gesamte Szene der Reihe nach gezeigt. Befehle zum Verschieben der Umgebung der Szenen (Tiere, Bewegung des Mondes und Rauch aus den Kaminen) wurden vom Server über ihre bevorzugten WebSockets übertragen.




Abb. 5. Eine Szene, die sich über drei Fernseher erstreckt

Da wir den Zeitpunkt der Ankunft / Abfahrt des Quadrocopters kannten, kam die Idee auf, auf Fernsehgeräten „Wind“ zu erzeugen, der bei enger Betätigung der Schrauben Rauch aus Rohren „bläst“.

Wiederum ging der Befehl zum Abheben vom Quadrocopter über den Server auf die Clients zurück.

Auch hier hatten wir Leistungsschwierigkeiten. Das „alte“ webOS von 2013 hat ein großes Bild (5760 × 1080) extrem hart gerendert. Ich musste den Hintergrund speziell für ihn auf die Bildschirmgröße zuschneiden und ihn strikt ersetzen.

Moral : Versuchen Sie nicht, Bilder zu zeichnen, die wesentlich größer als der Fernsehbildschirm sind. Er wird das nicht überleben.

Trotzdem haben wir alles rund um Smart TV und das Backend erfolgreich implementiert.

TV - Wache?

Das interessanteste Projekt war jedoch völlig Sachbuch und egal was, nützlich.

Die Anwendung befasste sich mit der Sicherheit zu Hause. Ja, es ist Fernseher. Ja, es wurde bewacht.

Das Wesentliche der Anwendung ist, dass die vorhandene Kamera alles aufnimmt, was vor ihr passiert, und im Falle einer scharfen Änderung des Bildes folgende Maßnahmen ergreift:

  • laut schreien;
  • sendet eine SMS an den Benutzer;
  • schreibt einen Brief mit beigefügten Fotos des Vorfalls;
  • schreibt eine Nachricht an FB auch mit Bildern;
  • tut dies alles auf einmal oder in Variationen.

Der Fernseher selbst gibt in diesem Moment stark vor, ein Filzstiefel zu sein und überhaupt nicht zu funktionieren. In der Anwendung wurden Fälle behandelt, in denen der Fernseher über das Internet oder einfach über die Stromversorgung ausgeschaltet wurde. Die Anwendung unterstützte Mehrsprachigkeit.

Zehntausende Menschen haben es für sich selbst installiert.

Aber hier war es nicht alles einfach.

Wenn Sie die Kamera anschließen und versuchen, einen Stream im Browser abzurufen, fällt bekanntlich das System-Popup mit der Bestätigung der Aktion aus. Die Besonderheit ist, dass Fernseher alle Popups blockieren. Daher wurde unsere Anwendung nur auf der Samsung-Plattform mit der eingebauten TV-Kamera oder einer speziellen Kamera des gleichen Samsung implementiert.

Ein weiteres Minus war wiederum die Leistung des Fernsehers. Auf relativ alten Fernsehern (2013) könnte man sich an der Kamera vorbei schleichen und der Fernseher würde diesen Moment „schlagen“.

Aber insgesamt ist die Idee einfach genial.

Fazit


Fernseher sind ihrer Hauptfunktion längst entwachsen - ein Bild von einem Kanal zu zeigen, Vidosiki zu zeigen oder ein zweiter Monitor zu sein.

Ihre Fähigkeiten und Leistungen werden ständig erweitert, und der Anwendungsbereich wird nur durch Ihre Vorstellungskraft begrenzt. Alle Aufgaben können unter Berücksichtigung der Idee und der entsprechenden Umsetzung gelöst werden. Wagen und erfolgreich sein!

Fernsehen alle!

Z.Y. Vielleicht hatten Sie, Leser, ungewöhnliche Aufgaben für Smart-TV, als Sie TV in einer ungewöhnlichen Rolle dafür einsetzen mussten? Teile es! Sag es mir!

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


All Articles