开发者控制台

Fire TV上的应用内语音滚动和选择

Fire TV上的应用内语音滚动和选择

Fire TV允许使用语音在设备的所有屏幕上执行滚动和选择操作。用于选择和滚动操作的语音命令可以向Fire TV Cube或其他Fire TV设备的配对Echo设备发出。

工作方式

应用内语音滚动和选择的工作方式是将方向键导航事件与语音命令映射。方向键是指遥控器的方向键盘(“选择”按钮周围的“导航”环),用于向右、向左、向上和向下滚动。Alexa将这些语音命令转换为发送到应用的方向键导航事件。

启用语音的滚动和选择

应用的所有屏幕均支持语音驱动的滚动和选择功能。更多详情如下:

滚动

要执行滚动,用户可以结合滚动方向(向上、向下、向左、向右)说“滚动”,以便在应用的可滚动内容中移动焦点。例如,“Alexa,向左滚动”或“Alexa,向下滚动”。 通过这些命令,Fire TV可按所需方向在屏幕上移动焦点。Fire TV通过多次模拟遥控器的RIGHT、LEFT、UP、DOWN (DPAD_RIGHT/LEFT/UP/DOWN)事件来执行滚动操作。

应根据具体应用的布局,在应用级别设定焦点(水平或垂直)移动距离的元素数量。默认值将设置为3个元素进行水平移动,2个元素进行垂直移动。但是,亚马逊会手动调整此默认值,以便让您的应用实现最佳体验。例如,如果应用的最佳体验涉及移动4个元素而不是3个,则亚马逊会自动选择此设置。要调整移动方式,可以提交“联系我们”案例以请求进行更改。

除滚动外,Fire TV还支持简单的一步式导航。一步式导航是结合某一方向(向上、向下、向左、向右)使用关键字“移动”和“转”表述,将焦点一次移动一个元素。例如,“Alexa,向右移动”或“Alexa,向上转”。 Fire TV使用与以前相同的方向键事件执行一步式导航,但不是多次模拟遥控器的RIGHT、LEFT、UP、DOWN (DPAD_RIGHT/LEFT/UP/DOWN)事件,而是只模拟一次,将焦点移动一个元素的距离。

选择

要选择焦点项目或播放突出显示的节目,用户可以说,“Alexa,选择”或“Alexa,选择这个/那个/它”。 此表述执行的操作与单击或选择当前焦点元素相同。Fire TV通过模拟遥控器的选择(DPAD_CENTER)按键事件来执行选择。

影响应用内语音命令的常见问题

要启用应用内语音滚动和选择,应用应该无需重置焦点或刷新屏幕即可处理叠加层。大多数应用默认情况下已经可以处理这个问题,但如果您的应用不能处理,则可能是由于下面提到的问题造成的。

问题1: 焦点元素被重置

应用的屏幕上出现的叠加层或对话框(与Alexa交互等其他进程相关)被关闭后,焦点元素不应被更改或被重置。

例如,假设您的应用位于前台,焦点位于第三行中的某个元素上,用户通过说“Alexa,现在几点了?”来调用Alexa。 Alexa回答完用户后,焦点应继续保持在用户调用Alexa之前的位置。

如果在Alexa交互后焦点转移到其他某一元素,则语音滚动或选择将无法一致地工作,从而导致用户体验不佳。在这种情况下,如果用户说“Alexa,选择这个”,Fire TV会(错误地)选择新的焦点项目,而不是用户想要的项目。

问题2: 屏幕刷新使导航不一致

与焦点重置问题类似,某些应用会因为在Alexa语音交互后屏幕刷新或重新加载而遇到问题。如果屏幕在响应语音命令时刷新或重新加载,则在用户调用Alexa时,Fire TV将不具有原始焦点的上下文,这也会导致用户体验不佳。

例如,当用户说“Alexa,向右滚动”时,Fire TV会向应用发送按键事件以模拟滚动。在此期间,如果应用的屏幕正在加载或已部分加载,按键可能不会落在预期的元素上,并且滚动或选择将不一致。

问题3: 限制方向键导航的应用更新

应用的某些更新可能不会直接中断滚动和选择。但是,如果更新降低了用户通过方向键控件在应用中导航的能力,则应用内语音滚动和选择将受到更大限制。

例如,过度依赖遥控器上的“菜单”按钮可能会限制应用内的语音体验。如果“菜单”按钮仍然是在应用中执行重要功能的唯一方法(例如,显示侧边栏菜单,或显示剧集季中的剧集,或查看更多信息),而不是允许通过方向键执行这些操作,则语音滚动和选择功能将在其使用和相关性方面受到限制。

此外,如果将方导航向键映射到其他功能(例如,按下DPAD_UP时映射到界面菜单选项),则将限制用户使用方向键功能进行应用导航的能力。因此,应用中的语音滚动和选择功能将受到限制。

更新应用时,请继续测试新版本与语音滚动和导航的兼容性。每次更新应用时都应继续支持语音滚动和选择。

活动生命周期处理

通过确保应用遵循活动生命周期处理的最佳实践,可以避免影响应用内语音命令的常见问题。用户在应用中导航时,应用中的活动实例会在其生命周期中的不同状态之间转换。在生命周期回调方法内,可以根据用户的操作定义活动的行为方式。有关更详细的说明,请参阅Android的活动生命周期文档。

以下是活动UI处理的关键生命周期事件,并描述了应用的正确处理和流程:

  • 活动被其他活动部分覆盖时(例如,在用户长按HOME按键或在Fire TV设备上调用Alexa后,Fire TV显示提醒通知时),将调用onPause()回调。在调用onPause()后,从技术上来说活动仍然部分可见,但大多数情况下onPause()表示用户正在离开该活动,并且该活动很快将进入“停止”或“恢复”状态。

  • 在收到onPause()后,活动之后通常会调用onStop()(在下一个活动恢复并显示后)。但某些情况下,将直接回调onResume(),而无需继续处理“停止”状态。

  • onResume()将在活动开始与用户交互之前调用。此时,活动位于活动堆栈的顶部并捕获所有用户输入。onResume()必须恢复原始UI状态而不进行更改,并且仅当onPause()onResume()之间发生更改时才更新UI。理想情况下,如果在onPause()之后收到onResume(),则不要在onResume()期间更改焦点元素或刷新屏幕。

  • 当活动不再对用户可见时,Fire TV会调用onStop()。当活动被销毁、新活动开始或现有活动进入恢复状态并覆盖停止的活动时,可能会发生这种情况。在所有这些情况下,停止的活动都将不再可见。该活动应该在onStop()期间释放其所有资源。在onStop()方法中,在应用对用户不可见时,应用应释放或调整不需要的资源。

  • 下一个回调Fire TV调用是onRestart()(如果活动返回来与用户交互)或onDestroy()(如果此活动正在完全终止)。仅当活动已完成onStop()并再次重新启动时,应用才应在onResume()期间刷新其UI或重置焦点元素。

测试启用语音的滚动和选择

  1. 在应用开发过程中,可以通过使用ADB将应用侧载到设备,测试应用中的选择和滚动功能。有关详细信息,请参阅通过ADB连接到Fire TV
  2. 完成测试后,可以照常提交要发布的应用
  3. 若应用未通过测试,您可以解决这些问题并提交应用的更新版本。使用步骤1和步骤2验证应用的新版本。

除了侧载应用以进行测试之外,还可以使用动态应用测试来测试应用。上传应用以进行动态应用测试后,可使用您为测试覆盖范围指定的账户来下载和测试该应用。

请注意,在应用商店中发布之前,将由亚马逊对语音滚动和选择进行测试。如果应用的新版本与滚动和选择体验不兼容,则亚马逊会联系您以解决问题。

为了保护用户体验,如果应用的先前版本使用了语音滚动和选择,但新版本破坏了这项体验,则应用会被拒绝。

常见问题解答

客户可以使用语音执行哪些操作?
我们的主要目标是在开发人员零投入的情况下为更多应用提供基本的语音体验。客户可以说“Alexa,向右滚动”或“Alexa,向下移动”等字眼来浏览内容,也可以说“Alexa,选择”或“Alexa,选择这个”来选择焦点元素。支持的短语包括以下内容:
  • 导航: [方向]滚动、[方向]翻页、[方向]移动、[方向]转。对于“[方向]”,可以说向上、向下、向右或向左。
  • 选择: 选择,选择这个/那个/它
此功能是否可在所有应用上提供?
可以,此语音功能将作为Fire TV Cube中的系统功能用于所有应用。对于其他Fire TV设备,虽然亚马逊将尽最大努力在所有应用上提供此体验,但为了保护客户体验,我们会根据具体情况将应用列入允许名单。只要应用遵守上述指南中列出的标准,就会自动启用这项体验。
此功能是否会对我的应用产生一些影响?
不会对您的应用体验或性能产生负面影响。
如果想要更高级的语音功能,我该怎么办?
如需实现高级语音体验,应该将Alexa视频技能集成到您的Fire TV应用中。这样一来,应用可以实现最全面、最丰富的语音体验。
支持哪些设备?
除了Fire TV Stick(第1代)Fire TV Stick Basic Edition之外,所有Fire TV设备均受支持。
如何将Alexa设备与Fire TV配对?
请参阅使用Alexa设备控制Fire TV
我如何就此体验提供反馈?
请通过联系我们链接分享您的任何反馈。