适用于Fire TV的视频技能工具包 (VSK) 让客户可以更加方便地在应用内发现、搜寻内容并与之互动,而无需使用遥控器。将您的应用与VSK集成的先决条件是首先引入您的目录,然后与Fire TV的通用搜索和浏览集成。目录集成目前仅适用于特定开发者。VSK与目录集成配合使用,可在Fire TV上以多种方式显示您的内容。
VSK让您可以用语音启用应用中的体验。客户可以说“Alexa, watch Batman”(Alexa,观看蝙蝠侠)(SearchAndPlay),或者说“Alexa, find Batman”(Alexa,搜寻蝙蝠侠)(SearchAndDisplayResults),然后Alexa会向您的应用发送指令,让它为客户播放内容或显示搜索结果。客户可以不使用动词,直接说“Batman”(蝙蝠侠),此时Alexa会将其视为搜索请求。Alexa还支持更模糊的请求,如按演员搜寻电影,可以说“Alexa, find Tom Hanks movies”(Alexa,搜寻汤姆·汉克斯的电影),或在按流派搜索时说“Alexa, find comedies”(Alexa,搜寻喜剧)。
VSK如何在Fire TV上工作?
借助VSK的仅限应用的实现,Alexa Video Skill API在Fire TV设备上直接向您的应用发送指令。Fire TV有一个名为VSK Agent的服务,该服务接收Alexa指令并将其作为意图广播,然后您的应用通过BroadcastReceiver处理这些指令。整个VSK集成都直接在您的Android代码中完成。如果您已经完成了目录集成,并且您的应用已经具有处理针对搜索和其他查找的文本输入的逻辑,则该集成可以在短时间(几周或更短时间)内完成。
云中的Alexa服务完成解释客户请求、确定意图,然后将其封装为指令的繁重工作,以便您可以使用自己的应用逻辑处理请求。发送到您应用的指令包含请求的结构化和解析表示,其中包括视频、演员、流派和媒体类型等实体。如需查看更完整的搜索和播放表述和所发送指令的列表,请参阅SearchAndPlay和SearchAndDisplayResults。
构建卓越搜索体验的最佳实践
以下是使用VSK构建卓越搜索体验的一些最佳实践。
处理SearchAndDisplayResults指令
以下是Alexa为了响应客户的搜索请求“Alexa, find Batman”(Alexa,搜寻蝙蝠侠),而可能发送的SearchAndDisplayResults指令。
EXTRA_DIRECTIVE_NAMESPACE: Alexa.RemoteVideoPlayer
EXTRA_DIRECTIVE_NAME: SearchAndDisplayResults
EXTRA_DIRECTIVE_PAYLOAD_VERSION: 3
EXTRA_DIRECTIVE_PAYLOAD: payload
有效负载包含以下内容:
{
"payload": {
"entities": [
{
"externalIds": {
"ENTITY_ID": "0"
},
"type": "Franchise",
"uri": "entity://avers/franchise/Batman",
"value": "Batman"
}
],
"searchText": [
{
"transcribed": "batman"
}
],
"timeWindow": {
"end": "2016-09-07T23:59:00+00:00",
"start": "2016-09-01T00:00:00+00:00"
}
}
}
使用VSK集成,您可以在应用中创建BroadcastReciever类。VSK Agent将指令封装在一个意图中,该意图会传递到onReceive方法中。有了JSON解析器的支持,您可以在转录的实体对象下检索客户的转录搜索请求,该类对象包含一系列要搜索的实体对象,如Title(标题)、Genre(流派)、Actor(演员)、Franchise(系列片)、Season(季)、Episode(剧集)或MediaType(媒体类型)。在本例中,您应该在应用中显示针对“batman”(蝙蝠侠)的客户搜索结果。
在您的应用成功(或未成功)处理指令之后,您的BroadcastReciever类应以true(表示成功)或false(表示失败)值的形式发送成功意图。
开始使用
通过我们在此处提供的开发者文档,可以了解更多有关集成VSK的信息。您也可以参考大体介绍如何将VSK集成到Fire TV应用中的视频教程(提供中文字幕)。