Roku:如何从快速设备中检测慢速设备

Roku: How to detect a slow device from a fast one

我有一个频道,如果 运行 在 Roku Express 等较慢的设备上播放动画,而让它们在 Roku Premiere 等较快的设备上播放,我想停止播放动画。除了我不确定最好的方法是什么。

我想按可用 ram 的数量进行过滤,但我找不到 api 可以为我的系统提供可用的 ram,我可以在我的代码中 运行。

我可以按型号名称过滤,但我需要保留型号名称的更新列表,我不想这样做。

任何help/insight赞赏。

我在动画方面遇到了类似的问题。不幸的是,您必须按型号名称进行过滤。我没有找到其他方法。 您可以将设备列表存储在数据库中,以便于您维护。

关于图形功能,请尝试 roDeviceInfo.getGraphicsPlatform() - 如果它 returns opengl,可以进行任意旋转的高性能引擎与 directfb 受到限制。

关于 CPU,您可以 运行 在您的程序开始时进行小型基准测试,例如

ti = createObject("roTimeSpan"): s=""
for i = 1 to 1000: s = s + right((i^3).toStr(),2): end for
time = ti.totalMilliSeconds() 

您是否考虑过使用 Animation.optional=true?

它不会阻止它们在 Roku Express 上发生(因为它是 Littlefield),但它会 "skip animations on lower performing Roku devices (Paolo, Giga, Jackson, Tyler, and Sugarland)"。

Animation 还包含一个名为 "willBeSkipped" 的未记录字段,当 "optional" 设置为 true 时,它​​将在较慢的设备上为 true。

您可以将动画节点上的可选字段设置为真。这应该是为了解决这个问题。我之前把这个字段设置为true,好像没有效果。我相信他们最终会解决问题的。

动画的效率还取决于您拥有多少个动画节点。您应该只需要 1 个动画节点来处理特定组件的所有动画。为您想要出现的每种动画类型添加一个插值器(即缩放、旋转、变色、平移)。