开发者控制台

仅限应用的集成支持的功能 (VSK Fire TV)

仅限应用的集成支持的功能(VSK Fire TV)

下面列出了仅限应用的集成支持的功能。

受支持的功能概览

当您报告应用的功能时(在步骤5: 报告应用的静态功能步骤6: 报告应用的动态功能中),您需要在Android项目中存储在res/raw里的文本文件内描述JSON对象中的功能。这些功能在清单(用于静态功能)或DynamicCapabilityReporter类(用于动态功能)中通过代码引用。

在您的功能文本文件中,功能数组可以有一个对象列表,每个对象都包含一个interfacetypeversionsupportOperations属性。以下各部分提供了有关支持的接口的更多详细信息。

RemoteVideoPlayer功能

Alexa.RemoteVideoPlayer作为一种功能纳入,表明您的应用可以支持来自RemoteVideoPlayer接口的指令,其中包括两种可能的操作: SearchAndPlaySearchAndDisplayResults。这些操作允许用户搜索和播放视频内容。例如,用户可以说 “Alexa, watch Breaking Bad”(Alexa,播放Breaking Bad)(SearchAndPlay)。或者说 “Alexa, search for Breaking Bad”(Alexa,搜索Breaking Bad)(SearchAndDisplayResults)。您可以指定支持哪些指令。

示例:

{
  "type": "AlexaInterface",
  "interface": "Alexa.RemoteVideoPlayer",
  "version": "3.1",
  "configurations": {
    "operations": [
      "SearchAndPlay",
      "SearchAndDisplayResults"
    ],
    "catalogs": [
      {
        "type": "VIDEO_INGESTION_IDENTIFIER",
        "sourceId": "<INSERT PARTNER ID>"
      }]
  }
}

operations数组是一个可选字段,用于声明仅支持某些操作,例如SearchAndPlay,但不支持SearchAndDisplayResults

Alexa.RemoteVideoPlayer的版本3.1开始,还必须提供catalogs对象。catalogs的值是一个数组,包含带有以下两个属性的对象:typesourceId。值如下:

字段 描述 数据类型
catalogs
可选
指定应用的目录。该数组包含的每个对象有以下两个属性:typesourceId

​数组
type
可选
将值设置为VIDEO_INGESTION_IDENTIFIER

字符串
sourceID
可选
将值设置为您的合作伙伴ID。合作伙伴ID是您CDF文件中的Partner(合作伙伴)字段,该字段由您在目录集成期间自定义。

示例ontv

字符串

目前,Fire TV通过后端进程获取您的目录映射,该进程将您的ASIN与您的目录进行映射(因此涉及到步骤提交至动态应用测试(LAT))。然而,未来Fire TV将通过您在此处提供的合作伙伴ID值获取您的目录。

PlaybackController功能

Alexa.PlaybackController作为一种功能纳入表明您的应用可以支持来自Alexa.PlaybackController接口的指令,这些指令用于音频或视频内容的播放、停止和导航播放。例如 “Alexa, fast forward”(Alexa,快进)或 “Alexa, stop”(Alexa,停止)。

注意,PlaybackController接口包括在configurations对象内指定的operations数组的列表。允许的operations包括PlayPauseStopStartOverNextPreviousRewindFastForward

示例:

{
  "type": "AlexaInterface",
  "interface": "Alexa.PlaybackController",
  "version": "3",
  "configurations": {
    "operations": [                
        "Pause",
        "Play",
        "Stop",
        "Resume",
        "Next",
        "Previous",
        "FastForward",
        "Rewind",
        "StartOver"
        ]
  }
}

仅限应用的集成还不支持其他接口(如Alexa.SeekController接口Alexa.ChannelController接口Alexa.KeypadController接口)。

另外要注意,即使支持Alexa.ChannelController接口,也建议通过Android电视输入框架集成电视直播信息提要,而不是实现该接口,如线性电视简介中所述。

SeekController功能

Alexa.SeekController作为一个功能纳入表明您的技能可以支持来自Alexa.SeekController接口的指令,该接口用于允许用户导航到媒体时间线上的特定位置。

例如,“Alexa, fast-forward 60 seconds”(Alexa快进60秒)或 “Alexa, skip back 5 minutes”(Alexa,后退5分钟),而不是“Alexa, fast-forward”(Alexa,快进)或 “Alexa, rewind”(Alexa,倒回)。(如果您的应用只能快进或倒回媒体项目,而不能搜索到时间线上的另一个点,请改为实现PlaybackController接口。)

示例:

{
  "type": "AlexaInterface",
  "interface": "Alexa.SeekController",
  "version": "3",
  "configurations": {
    "operations": [
      "AdjustSeekPosition"
    ]
  }
}

ChannelController功能

Alexa.ChannelController作为功能纳入,表明您的应用可以支持来自Alexa.ChannelController接口的指令,该接口用于更改或增加娱乐设备的频道。例如,“Alexa, change the channel to PBS”(Alexa,将频道更改为PBS)。

示例:

{
  "type": "AlexaInterface",
  "interface": "Alexa.ChannelController",
  "version": "3",
  "configurations": {
    "operations": [
      "ChangeChannel"
    ]
  }
}

Alexa.KeypadController功能

纳入Alexa.KeypadController表明您的应用可以支持来自Alexa.KeypadController接口的指令,该接口用于向右或向左、向上或向下滚动,或选择聚焦的小组件。

例如 "Alexa, scroll right"(Alexa向右滚动)。 按照上面的代码示例列出您的视频技能支持的keyskey值包括以下值: UPDOWNLEFTRIGHTSELECTPAGE_UPPAGE_DOWNPAGE_LEFTPAGE_RIGHTINFOMORE

示例:

{
  "type": "AlexaInterface",
  "interface": "Alexa.KeypadController",
  "version": "3",
  "configurations": {
    "operations": [
      "SendKeystroke"
    ]
  }
}

Alexa.KeypadController接口是包含keys属性的唯一接口。

默认情况下,Fire TV提供应用内滚动和选择,如应用内语音滚动和选择中所述。如果您没有在Alexa.Discovery响应中指明支持KeypadController接口功能,VSK会回退到默认的应用内语音滚动和选择功能。

但是,如果您明确指明支持KeypadController接口功能,则默认的应用内语音滚动和选择功能将关闭。滚动和选择只会通过您对应用收到的KeyStroke指令的响应而发生。

当您声明支持KeypadController时,您需要列出您的视频技能支持的keysUPDOWNLEFTRIGHTSELECTPAGE_UPPAGE_DOWNPAGE_LEFTPAGE_RIGHTINFOMORE。如果您声明支持任何key命令,Alexa会假设您正在管理所有key命令的操作。简而言之,您不能声明支持某些key命令,但不支持其他此类命令。例如,如果您不声明UP,Alexa仍会发送带有UP值的keystroke有效负载。默认的应用内语音滚动和选择不会启动以补偿不支持的UP功能。


Last updated: 2020年10月29日