应用内语音滚动和选择


应用内语音滚动和选择

Fire TV Cube 允许您使用您的声音在设备中的所有屏幕上执行滚动和选择。应用内语音滚动和选择通过将方向键导航事件映射到您的语音命令来工作。方向键是指遥控器的方向键盘(“选择”按钮周围的“导航”环),用于向右、向左、向上和向下滚动。Alexa 将这些语音命令转换为发送到应用的方向键导航事件。

启用语音的滚动和选择

Fire TV 提供应用内语音功能以支持应用中所有屏幕的 UI 滚动选择

滚动

要执行滚动,用户可以说“滚动”并结合某一方向(向上,向下,向左,向右),以便在应用的可滚动内容中移动焦点。例如,“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) 事件,Fire TV 只模拟一次,以将焦点移动一个元素。

选择

要选择处于焦点的项目或播放突出显示的标题,用户可以说,“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 时映射到界面菜单选项),则将限制用户使用方向键功能进行应用导航的能力。因此,应用中的语音滚动和选择功能将受到限制。

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

活动生命周期处理

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

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

  • 活动被其他活动部分覆盖时(例如,在用户长按“主页”或在 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() 并重新启动时,您的应用才应刷新其 UI 或在onResume() 期间重置获得焦点的元素。

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

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

除了旁加载应用来对其进行测试之外,你还可以使用实时应用测试来测试应用。在上传应用以进行实时应用测试后,您为测试覆盖范围指定的账户可用于下载和测试该应用。

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

为了保护用户体验,如果您的应用以前版本正在使用语音滚动和选择,但新版本破坏了这种体验,则您的应用将被拒绝。

常见问题解答

客户可以使用语音执行哪些操作?
我们的主要宗旨是为更大的应用选择提供基本的语音体验,而无需开发者工作。客户可以说“Alexa,向右滚动”或“Alexa,向下移动”等字眼来浏览内容,也可以说“Alexa,选择”或“Alexa,选择这个”来选择获得焦点的元素。支持的短语包括以下内容:
  • 导航: [方向] 滚动、[方向] 翻页、[方向] 移动、[方向] 转。对于“[方向]”,您可以说向上、向下、向右或向左。
  • 选择: 选择,选择这个/那个/它
此功能是否可用于所有应用?
是的,此语音功能将适用于所有应用。只要您的应用遵守上述指南中列出的标准,您的应用就会自动启用此体验。
此功能是否会对我的应用产生一些影响?
否,不会对您的应用体验或性能产生负面影响。
如果想要更高级的语音功能,我该怎么办?
如需高级语音体验,您应该将 Alexa 视频技能集成到您的 Fire TV 应用中。这会为您的应用提供最全面、最丰富的语音体验。
支持哪些设备?
此体验目前仅限于 Fire TV Cube
我如何就此体验提供反馈?
使用联系我们链接分享您的任何反馈。