而不是前言
同事们,下午好! 我叫Aleksey,从事电视领域,即智能电视应用程序的开发(“
让我们拍拍Aleksey ”)。
但是什么是智能电视? 真空中球形智能电视的应用是什么?
我不会为您所困扰:基本上,这类应用程序旨在显示视频内容。 在任何变化。 录制的现场直播,电视节目,电影,动画片,广告等等,等等……成千上万!
但是,智能电视仅用于此吗?

是的,当然,电视显示的视频内容是最好的,它可以很好地解决这一问题,但是我们只能使用它吗?
(
现在,所有高兴的控制台和HDMI电缆所有者都将烂番茄扔给我,说“退订!”,高兴的人将离开,我们将继续 。)
确实,我们必须开发的绝大多数应用程序主要用于显示视频,但其中也有一些例外。 此外,由于患有著名的疾病“锥子位于靠后的地方”,我想从电视中挤出比所有人期望的更多的东西。
我的(而且不仅是)适度的尝试将在下面讨论。
电视-游戏?
确实,想到的第一件事就是游戏! 大屏幕,跨域请求的可能性(因为智能电视应用程序实际上是本地HTML页面),并且至少通过标准控件(远程)可以实现游戏场景。
在大多数情况下,这些都是休闲游戏,例如“ 1024”,或者是主题为“塔防”的变体。 不厚 不幸的是,用着色器,阴影和动态照明包裹超级3D只能在明年的最新型号上实现。 电视通常不是浏览器的最高级版本,更糟糕的是,它要么很少更新,要么根本没有更新。 此外,即使是去年的电视,现在的电视功率之间的差异也可能是倍数。
因此,如果您要涵盖最大数量的模型,请为所有内容的血腥优化做好准备。 干净的原生Canvas将是您最好的朋友。 包装器在上面加工,但是非常。 旋转和变换方法的不令人满意的工作尤其令人沮丧,因此仅在最极端的情况下计划精灵动画并实现精灵转向。
一次,我们在职业之夜做了一场比赛。 她设法与Web Standarts Days的出色同事进行了演讲。
在视觉上,游戏是一个运动场,适合屏幕大小,无滚动,无障碍。 背景分为几层以实现3d效果。 在舞台上,生成飞行目标(鸭子),用户可以在上面射击。

图 1.应用程序的一般视图。主要任务是给任何人和任何人玩游戏的机会,这立即排除了与遥控器的交互。 控制台是其中之一,但是有很多玩家。 使用电话进行管理,并且为了最大程度地覆盖移动设备,决定以自适应网站的形式实施客户端。 我们在WebSockets上实现了它,并添加了一个芯片-通过更改手机的位置进行管理。
然后出现了许多有趣的功能,低质量的方向传感器和其他故障。 我们必须应用降噪算法,否则电视屏幕上播放器的“视线”会遭受严重的震颤。 事实也证明,游戏是“吹大风”:计算中累积的错误在手机上,景点逐渐向一个方向“吹灭”,迫使玩家逐渐转向。 有些人背着电视玩。
道德 :尽可能少地在手机浏览器中使用方向传感器。
图 2.工作中的鸭子杀手该应用程序通过替换精灵来使用动画。 这种方法非常有效。 我们用数百只或更多只飞鸭测试了该应用程序。 实际上,游戏中只有10个,当设计师闯入并大喊:“我想让地球旋转”时,就会出现性能问题!
扭曲精灵不是问题。 当我们在相对较旧的电视上启动该应用程序时,便发生了问题。 事实证明,他并没有消除900×900像素的精灵旋转效果。 结果,大眼用户可以注意到,背景中的行星被切成9个围绕一个中心旋转的部分。 这样就解决了性能问题。
因此,另一个道德准则是 :不要旋转大型精灵。
该项目的另一个特点是游戏逻辑是在电视上计算的。 在这种情况下,服务器仅充当客户端和电视之间的数据传输器。 我们这样做是为了即使在失去连接的情况下,鸭子也会继续在屏幕上飞来飞去,并且在恢复Internet之后,无需重新启动应用程序。 一个奇怪的情况,但仍然是可选的。
电视屏幕?
看来这已经很平常了,但是没有。 像往常一样,所有内容都隐藏在细节中。 屏幕有什么用? 它具有什么功能? 这是为了什么
我仅举几个例子。
恭喜有一天,我们决定在情人节那天削减公司的在线祝贺,并使用可用的电视作为祝贺的翻译。 该应用程序以简约版本实现,其中一个请求是向服务器返回一个祝贺列表。 主要问题是电视无法进入睡眠模式。 如果Samsung允许您使用setScreenSaver方法禁用此功能,则其他平台实际上不允许这样做。 另外,您也可以在后台运行任何循环播放的视频-视频显示模式下的电视关闭的频率要少得多。 结果,该应用程序实现了其功能:在办公室几层的各个区域中,在线祝贺员工的祝贺。
地图确切地说-包含最佳玩家名单的战斗地图。
我们再次在职业生涯之夜制作了游戏,这次决定将电视,电话和VR结合在一起。 最重要的是,VR头盔中的玩家飞过龙并射击了公主,公主由手机中的玩家控制。 杀死龙的人戴上头盔。 以此类推。 我谦虚地指出,该应用程序处理了其功能(以在我们的展位上收集最大数量的人员并保持尽可能长的时间)。
在此处了解更多有关龙消灭公主的
信息 。

图 3.展位总览电视应用程序为所有来访者提供了一般战斗场景的演示。
在这个项目中,我们面临着优化以前稳定且功能良好的代码的需求。 随着玩家数量的增加,应用程序性能指标明显恶化。 我们确定了优化的主要方式:
- 减少从服务器传输到客户端以及从客户端传输到服务器的信息量;
- 尽量减少在应用程序中创建新对象。
该类的每个新实例的创建都很引人注目,因此必须提前创建所有实例,并在必要时向用户显示。
左边的电视是VR眼镜的视图,中间的电视是场景图。
图 4.游戏玩法。 在左侧的电视上-通过VR眼镜观看,在中央的电视上-场景图互动背景您可以正确地问:“您甚至在那儿工作吗?!” 我要面对的是我真诚的睡眠不足:“当然,我在工作!” 但是稍后会更多。 同时,我们没有坐下来,而是想为直升机提供互动背景。 有关该项目的更多详细信息,请参见
此处 。
这个想法是在电视上展示圣诞老人的地产,这将对直升机的起飞/到达做出反应。
主要兴趣是在三台电视上“拉伸”图片。 不同的制造商。
为此,我们将整个场景划分为“房间”。 每台电视都显示一个带有数字的“房间”。 “房间”的数目可以更改,因此,原则上电视可以显示一个场景的相同部分,但是我们按顺序显示整个场景。 通过最喜欢的WebSocket从服务器发送了用于移动场景环境的命令(动物,月亮的运动和烟囱中的烟气)。

图 5.一幕延伸到三台电视由于我们知道了直升机的到达/离开时间,因此想到了在电视上制造“风”,并通过拧紧螺丝来“吹”出管道上的烟。
再次,从直升机通过服务器起飞的命令传给客户端。
在这里,我们也遇到了性能方面的困难。 2013年的“旧” webOS极其难以呈现大图(5760×1080)。 我不得不将背景专门调整为适合他的屏幕尺寸,并严格替代它。
道德 :不要尝试绘制比电视屏幕大很多的图片。 他将无法幸免。
尽管如此,我们已经成功实现了与智能电视和后端相关的所有内容。
电视-后卫?但是,最有趣的项目完全是虚构的,无论如何,都是有用的。
该应用程序涉及家庭安全。 是的,它是电视。 是的,它受到了保护。
该应用程序的本质在于,现有的摄像头可以捕捉其前面发生的所有事情,并且在图片发生急剧变化的情况下,可以采取以下措施:
- 大声尖叫;
- 发送短信给用户;
- 写一封信,附上事件的照片;
- 还将带有图片的消息写入FB;
- 一次或以任何形式进行所有这些操作。
此时电视本身假装成毛毡的靴子,根本无法工作。 在该应用程序中,处理了从互联网或仅从电源关闭电视的情况。 该应用程序支持多种语言。
成千上万的人自己安装了它。
但是,这并不简单。
如您所知,当您连接相机并尝试从浏览器中获取流时,系统弹出窗口会显示该操作的确认信息。 特殊之处在于电视会阻止所有弹出窗口。 因此,我们的应用程序仅在使用内置电视摄像机或同一三星提供的特殊摄像机的三星平台上实现。
另一个缺点是电视的性能。 在相对较旧的电视(2013年)上,人们可能会越过相机,这时电视会“拍打”。
但是总的来说,这个主意简直是绝妙的。
结论
电视早已超出其主要功能-显示频道中的图片,显示vidosiki或成为第二台显示器。
它们的功能和性能在不断增长,并且应用范围仅受您的想象力限制。 任何任务都可以在适当考虑此思想和适当实施的情况下解决。 敢于成功!
电视大家!
Z.Y. 读者,也许您在以非正常角色使用电视时会承担智能电视的非常规任务吗? 分享吧! 告诉我!