仅限应用的集成支持的功能 (VSK Fire TV)
下面列出了仅限应用的集成支持的功能。
- 受支持的功能概览
- RemoteVideoPlayer功能
- PlaybackController功能
- SeekController功能
- ChannelController功能
- Alexa.KeypadController功能
受支持的功能概览
当您报告应用的功能时(在步骤5: 报告应用的静态功能或步骤6: 报告应用的动态功能中),您需要在Android项目中存储在res/raw
里的文本文件内描述JSON对象中的功能。这些功能在清单(用于静态功能)或DynamicCapabilityReporter
类(用于动态功能)中通过代码引用。
在您的功能文本文件中,功能
数组可以有一个对象列表,每个对象都包含一个interface
、type
、version
和supportOperations
属性。以下各部分提供了有关支持的接口的更多详细信息。
RemoteVideoPlayer功能
将Alexa.RemoteVideoPlayer
作为一种功能纳入,表明您的应用可以支持来自RemoteVideoPlayer
接口的指令,其中包括两种可能的操作: SearchAndPlay
和SearchAndDisplayResults
。这些操作允许用户搜索和播放视频内容。例如,用户可以说 “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
的值是一个数组,包含带有以下两个属性的对象:type
和sourceId
。值如下:
字段 | 描述 | 数据类型 |
---|---|---|
catalogs 可选 |
指定应用的目录。该数组包含的每个对象有以下两个属性:type 和sourceId 。
|
数组 |
type 可选 |
将值设置为VIDEO_INGESTION_IDENTIFIER 。
|
字符串 |
sourceID 可选 |
将值设置为您的合作伙伴ID。合作伙伴ID是您CDF文件中的Partner(合作伙伴)字段,该字段由您在目录集成期间自定义。
示例: |
字符串 |
目前,Fire TV通过后端进程获取您的目录映射,该进程将您的ASIN与您的目录进行映射(因此涉及到步骤提交至动态应用测试(LAT))。然而,未来Fire TV将通过您在此处提供的合作伙伴ID值获取您的目录。
PlaybackController功能
PlaybackController
。媒体会话提供了相同的功能,延迟更少、客户体验更一致。有关详细信息,请参阅步骤2: 与MediaSession集成。将Alexa.PlaybackController
作为一种功能纳入表明您的应用可以支持来自Alexa.PlaybackController
接口的指令,这些指令用于音频或视频内容的播放、停止和导航播放。例如 “Alexa, fast forward”(Alexa,快进)或 “Alexa, stop”(Alexa,停止)。
注意,PlaybackController
接口包括在configurations
对象内指定的operations
数组的列表。允许的operations
包括Play
、Pause
、Stop
、StartOver
、Next
、Previous
、Rewind
、FastForward
。
示例:
{
"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功能
SeekController
。媒体会话提供了相同的功能,延迟更少、客户体验更一致。有关详细信息,请参阅步骤2: 与MediaSession集成。将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功能
ChannelController
接口。电视直播集成具有更多益处,例如在Fire TV的 “Live”(直播)选项卡和频道指南上进行集成。电视直播集成是建议Fire TV合作伙伴使用的方法。将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向右滚动)。 按照上面的代码示例列出您的视频技能支持的keys
,key
值包括以下值: UP
、DOWN
、LEFT
、RIGHT
、SELECT
、PAGE_UP
、PAGE_DOWN
、PAGE_LEFT
、PAGE_RIGHT
、INFO
、MORE
。
示例:
{
"type": "AlexaInterface",
"interface": "Alexa.KeypadController",
"version": "3",
"configurations": {
"operations": [
"SendKeystroke"
]
}
}
Alexa.KeypadController
接口是包含keys
属性的唯一接口。
默认情况下,Fire TV提供应用内滚动和选择,如应用内语音滚动和选择中所述。如果您没有在Alexa.Discovery
响应中指明支持KeypadController
接口功能,VSK会回退到默认的应用内语音滚动和选择功能。
但是,如果您明确指明支持KeypadController
接口功能,则默认的应用内语音滚动和选择功能将关闭。滚动和选择只会通过您对应用收到的KeyStroke
指令的响应而发生。
当您声明支持KeypadController
时,您需要列出您的视频技能支持的keys
: UP
、DOWN
、LEFT
、RIGHT
、SELECT
、PAGE_UP
、PAGE_DOWN
、PAGE_LEFT
、PAGE_RIGHT
、INFO
、MORE
。如果您声明支持任何key
命令,Alexa会假设您正在管理所有key
命令的操作。简而言之,您不能声明支持某些key
命令,但不支持其他此类命令。例如,如果您不声明UP
,Alexa仍会发送带有UP
值的keystroke
有效负载。默认的应用内语音滚动和选择不会启动以补偿不支持的UP
功能。
Last updated: 2020年10月29日