用于频道导航的GetPlayableItems指令 (VSK Echo Show)
当用户说出要更改频道的表示(例如“Watch PBS”(观看PBS))时,VideoContentProvider API会向您的Lambda发送GetPlayableItems指令,其中包含有关需要播放的频道的信息。
来自您的Lambda的预期响应是GetPlayableItemsResponse,如下图所示。
GetPlayableItems和GetPlayableItemsMetadata指令与您的Lambda代码交互的方式,请参阅步骤3: 了解Alexa指令和Lambda响应。GetPlayableItems(频道导航)的表述
当用户说出以下频道变更表述时,Alexa会向您的Lambda发送GetPlayableItems指令。它与常规的GetPlayableItems指令类似,但具有特定于频道的属性。
| 功能 | 表述示例 | 预期回应 |
|---|---|---|
| 转到频道名称 需要认证 |
Go to fox |
视图切换到频道名称,播放频道中的内容。 |
| 转到频道号 需要认证 |
Go to channel thirteen |
视图切换到频道号,播放频道中的内容。 |
| 转到频道呼叫信号 需要认证 |
Go to channel k. c. p. q. |
视图切换到频道呼号,播放频道中的内容。 |
| 按频道名称观看 需要认证 |
Watch fox |
视图切换到频道名称,播放频道中的内容。 |
| 按频道号观看 需要认证 |
Watch channel thirteen |
视图切换到频道号,播放频道中的内容。 |
| 功能 | 表述示例 | 预期回应 |
|---|---|---|
| 转到频道名称 需要认证 |
Va sur [ChannelName] |
视图切换到频道名称,播放频道中的内容。 |
| 转到频道号 需要认证 |
va sur [ChannelNumber] |
视图切换到频道号,播放频道中的内容。 |
| 转到频道呼叫信号 需要认证 |
cambia canal a t. p. d. |
视图切换到频道呼号,播放频道中的内容。 |
| 按频道名称观看 需要认证 |
mets [ChannelName] joue [ChannelName] |
视图切换到频道名称,播放频道中的内容。 |
| 按频道号观看 需要认证 |
mets la chaîne[ChannelNumber] joue la chaîne[ChannelNumber] |
视图切换到频道号,播放频道中的内容。 |
| 功能 | 表述示例 | 预期回应 |
|---|---|---|
| 转到频道名称 需要认证 |
Va sur [ChannelName] |
视图切换到频道名称,播放频道中的内容。 |
| 转到频道号 需要认证 |
va sur [ChannelNumber] |
视图切换到频道号,播放频道中的内容。 |
| 转到频道呼叫信号 需要认证 |
va sur [channel] |
视图切换到频道呼号,播放频道中的内容。 |
| 按频道名称观看 需要认证 |
mets [ChannelName] joue [ChannelName] |
视图切换到频道名称,播放频道中的内容。 |
| 按频道号观看 需要认证 |
mets la chaîne[ChannelNumber] joue la chaîne[ChannelNumber] |
视图切换到频道号,播放频道中的内容。 |
| 功能 | 表述示例 | 预期回应 |
|---|---|---|
| 转到频道名称 需要认证 |
(schalt auf|geh zu) [ChannelName] schalt kanal [ChannelName] ein (geh|schalt|wechsel|änder) zum kanal [ChannelName] (geh|schalt|wechsel|änder) zu [ChannelName] kanal (wechsel|änder) den kanal zu [ChannelName] (wechsel|änder) den kanal zu [ChannelName] auf [AppName] schalt [ChannelName] auf [AppName] an schalt kanal [ChannelName] auf [AppName] an (geh|schalte|wechsel) zu [ChannelName] auf [AppName] (stell|schalt) [ChannelName] ein auf [AppName] (stell|schalt|wechsel) (um zu|auf) [ChannelName] auf [AppName] schalt kanal [ChannelName] auf [AppName] an mach [ChannelName] auf [AppName] an |
视图切换到频道名称,播放频道中的内容。 |
| 转到频道号 需要认证 |
schalt kanal [ChannelNumber] ein (geh|schalt|wechsel|änder) zum kanal [ChannelNumber] (geh|schalt|wechsel|änder) zu [ChannelNumber] kanal (wechsel|änder) den kanal zu [ChannelNumber] (wechsel|änder) den kanal zu [ChannelNumber] auf [AppName] schalt [ChannelNumber] auf [AppName] an schalt kanal [ChannelNumber] auf [AppName] an (geh|schalte|wechsel) zu [ChannelNumber] auf [AppName] (stell|schalt) [ChannelNumber] ein auf [AppName] (stell|schalt|wechsel) (um zu|auf) [ChannelNumber] auf [AppName] schalt kanal [ChannelNumber] auf [AppName] an mach [ChannelNumber] auf [AppName] an kanal [ChannelNumber] |
视图切换到频道号,播放频道中的内容。 |
| 转到频道呼叫信号 需要认证 |
schalte/änder/geh zu/auf den fernsehsender [ChannelName] geh zum (fernseh)kanal [ChannelName] ändern den (fernseh)kanal zu/auf [ChannelName] |
视图切换到频道呼号,播放频道中的内容。 |
| 按频道名称观看 需要认证 |
[ChannelName] auf [AppName] ansehen spiel den kanal [ChannelName] ab |
视图切换到频道名称,播放频道中的内容。 |
| 按频道号观看 需要认证 |
Zeige Kanal/Sender [channel number] Kanal/Sender [channel number] anschauen |
视图切换到频道号,播放频道中的内容。 |
| 功能 | 表述示例 | 预期回应 |
|---|---|---|
| 转到频道名称 需要认证 |
fox पर/पे जाओ/जाइए/जाना/चलो/चलना |
视图切换到频道名称,播放频道中的内容。 |
| 转到频道号 需要认证 |
channel दस पर/पे जाओ/जाना/जाइए/चलो/चलना |
视图切换到频道号,播放频道中的内容。 |
| 转到频道呼叫信号 需要认证 |
channel sony पर/पे जाओ/जाना/जाइए/चलो/चलना |
视图切换到频道呼号,播放频道中的内容。 |
| 按频道名称观看 需要认证 |
fox देखो/देखिए/देखना/देखें |
视图切换到频道名称,播放频道中的内容。 |
| 按频道号观看 需要认证 |
channel बारह देखो/देखना/देखिए/देखें |
视图切换到频道号,播放频道中的内容。 |
| 功能 | 表述示例 | 预期回应 |
|---|---|---|
| 转到频道名称 需要认证 |
vai su [ChannelName] vai a [ChannelName] |
视图切换到频道名称,播放频道中的内容。 |
| 转到频道号 需要认证 |
vai al [ChannelNumber] vai su [ChannelNumber] |
视图切换到频道号,播放频道中的内容。 |
| 转到频道呼叫信号 需要认证 |
vai su [Channel] vai a [Channel] |
视图切换到频道呼号,播放频道中的内容。 |
| 按频道名称观看 需要认证 |
guarda [ChannelName] fammi vedere [ChannelName] |
视图切换到频道名称,播放频道中的内容。 |
| 按频道号观看 需要认证 |
metti [ChannelNumber] |
视图切换到频道号,播放频道中的内容。 |
| 功能 | 表述示例 | 预期回应 |
|---|---|---|
| 转到频道名称 需要认证 |
[ChannelName]を検索 |
视图切换到频道名称,播放频道中的内容。 |
| 转到频道号 需要认证 |
|
视图切换到频道号,播放频道中的内容。 |
| 转到频道呼叫信号 需要认证 |
|
视图切换到频道呼号,播放频道中的内容。 |
| 按频道名称观看 需要认证 |
[ChannelName]を見せて |
视图切换到频道名称,播放频道中的内容。 |
| 按频道号观看 需要认证 |
チャンネル[ChannelNumber]を見せて |
视图切换到频道号,播放频道中的内容。 |
| 功能 | 表述示例 | 预期回应 |
|---|---|---|
| 转到频道名称 需要认证 |
vá/vai/ir para o canal [ChannelName] |
视图切换到频道名称,播放频道中的内容。 |
| 转到频道号 需要认证 |
|
视图切换到频道号,播放频道中的内容。 |
| 转到频道呼叫信号 需要认证 |
vá para o canal [CallSign] |
视图切换到频道呼号,播放频道中的内容。 |
| 按频道名称观看 需要认证 |
assistir/assiste/assista [ChannelName]Assistir/assiste/assistao [ChannelName] |
视图切换到频道名称,播放频道中的内容。 |
| 按频道号观看 需要认证 |
assitir canal [ChannelNumber] |
视图切换到频道号,播放频道中的内容。 |
| 功能 | 表述示例 | 预期回应 |
|---|---|---|
| 转到频道名称 需要认证 |
cambia a antena tres |
视图切换到频道名称,播放频道中的内容。 |
| 转到频道号 需要认证 |
cambia el canal a la dos |
视图切换到频道号,播放频道中的内容。 |
| 转到频道呼叫信号 需要认证 |
cambia canal a t. p. d. |
视图切换到频道呼号,播放频道中的内容。 |
| 按频道名称观看 需要认证 |
ver la sexta pon la sexta |
视图切换到频道名称,播放频道中的内容。 |
| 按频道号观看 需要认证 |
pon canal dos |
视图切换到频道号,播放频道中的内容。 |
请注意,在频道方面,这里的多模式设备实现与Fire TV应用不同。对于Fire TV应用,有单独的频道导航指令 (ChangeChannel),而多模式实现则使用GetPlayableItems来处理播放表述和频道导航表述,但具有不同的属性。
GetPlayableItems示例(频道导航)
以下是特定频道的GetPlayableItems指令的示例。payload具有频道场景独有的字段。
{
"directive": {
"header": {
"correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
"messageId": "9f4803ec-4c94-4fdf-89c2-d502d5e52bb4",
"name": "GetPlayableItems",
"namespace": "Alexa.VideoContentProvider",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "access-token-from-skill"
},
"endpointId": "videoDevice-001",
"cookie": {
}
},
"payload": {
"entities": [
{
"type": "Channel",
"value": "PBS",
"externalIds": {
"imdb": "tt4574334"
},
"entityMetadata": {
"channelCallSign": "KBTC",
"channelNumber": "123"
}
}
],
"contentType": "RECORDING",
"locale": "en-US",
"minResultLimit": 8,
"maxResultLimit": 25,
"timeWindow": {
"start": "2016-09-01T00:00:00+00:00",
"end": "2016-09-07T23:59:00+00:00"
}
}
}
}
请注意,entities(具有"type": "Channel")包含电视频道的信息。
有效负载描述
下面的表格描述了GetPlayableItems指令的payload。
| 字段 | 描述 | 数据类型 |
|---|---|---|
entities必需 |
要搜索的实体对象的列表。不同实体类型之间的关系通常应解释为AND运算。例如,如果请求包含 但是,如果请求包含多个相同类型的实体,例如 假设您还有另一个请求,其中包含 Alexa现在不对实体进行排名,因为当有多个匹配的实体时,Alexa无法知道用户想要播放的是什么。
{
"type": "Channel",
"value": "PBS",
"externalIds": {
"imdb": "tt4574334"
},
"entityMetadata": {
"channelCallSign": "KBTC",
"channelNumber": "123"
}
}
|
列表 |
type必需 |
视频内容的实体类型。有关视频内容实体类型的列表,请参阅实体类型。 示例: |
字符串 |
value必需 |
实体的值。对于频道,为频道的名称。 示例: |
字符串 |
externalIds可选 |
此实体的外部标识符映射;key是提供方,value是id。
示例: |
对象 |
minResultLimit必需 |
此调用中要返回的最小结果数,对于此调用已接受 要考虑使用 示例: |
整数 |
maxResultLimit必需 |
对要返回的最大结果数的限制。有关更多详细信息,请参阅 示例: |
整数 |
timeWindow可选 |
提供请求应采用的开始和结束时间。这通常仅用于直播TV或录像,不用于点播内容。通常,如果时间窗口可用并且可以用来筛选结果,就应当使用它。 对于仅搜索点播内容的提供方,时间窗口字段通常设置为空且可以忽略。 对于直播TV或录像,如果用户指定时间窗口,例如“Search for TV shows between 4 and 5 pm”(搜索下午4点到5点之间的电视节目)或“Find TV shows recorded last week”(查找上周录制的电视节目),则应根据开始和结束时间(如果有)筛选结果。 根据功能的不同,可以同时存在 |
包含start和end时间的对象。 |
start可选 |
时间窗口的开始时间。 示例: |
ISO 8601格式的字符串。 |
end可选 |
时间窗口的结束时间。 示例: |
ISO 8601格式的字符串。 |
contentType必需 |
示例: |
枚举 |
locale必需 |
用户的区域设置,应当用于获取搜索结果的可显示信息。格式与网络工作组当前最佳实践47(BCP-47) 中为语言指定的格式相同的区域设置。如果您收到无法识别的区域设置,则默认设置为 示例: |
字符串 |
imdb可选 |
外部IMDB标识符。 示例: |
字符串 |
entityMetadata可选 |
与频道相关的元数据映射。 |
对象 |
channelCallSign(channel)可选 |
频道的呼叫信号。 示例: |
字符串 |
channelNumber(channel)可选 |
频道号。 示例: |
整数 |
实体类型
entities对象由一个对象列表组成,每个对象都包含一个type和一个值,以及其他可能的数据,例如外部ID。type值可能包括以下值: Actor、App、Channel、Character、Director、Episode、Event、Franchise、Genre、League、MediaType、ProductionCompany、Season、Sport、SportsTeam、Video、Popularity、Recency和VideoResolution。以下各部分提供了有关每种实体类型的有效负载的详细信息。
Actor
Actor代表视频媒体内容中的演员;例如,Casey Affleck可能包含以下项:
| Actor有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
externalIds |
该实体的外部标识符映射。键是提供方,值是ID。 | 对象 | — |
└─ ASIN |
该实体的外部ASIN | 字符串 | B01LTHZVKG |
└─ imdb |
演员的IMDB标识符。 | 字符串 | tt4034228 |
uri |
映射到演员/女演员的URI | URI | entity://provider/actor/caseyaffleck |
value |
演员的姓名 | 字符串 | Casey Affleck |
应用
App代表用户在口头上指定的明确应用名称;例如,“Manchester by the Sea on Prime”(Prime上的Manchester by the Sea)可能包含以下项:
| App有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
externalIds |
该实体的外部标识符映射。键是提供方,值是ID。 | 对象 | — |
└─ ENTITY_ID |
应用列表中的应用标识符。 | 字符串 | amzn1.alexa-ask-target.app.72095 |
value |
应用程序的名称 | 字符串 | Prime Video |
频道
Channel代表电视频道的识别数据;例如,“PBS”可能包含以下项:
| Channel有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
externalIds |
该实体的外部标识符映射。键是提供方,值是ID。 | 对象 | — |
└─ imdb |
外部IMDB标识符 | 字符串 | tt4034228 |
entityMetadata |
与频道相关的元数据映射 | 对象 | — |
└─ channelNumber |
频道号 | 整数 | 1234 |
└─ channelCallSign |
频道的呼号 | 字符串 | KBTC |
uri |
频道的URI | URI | entity://provider/channel/1234 |
value |
频道的名称。 | 字符串 | PBS |
Character
视频媒体内容中代表的Character。
| Character有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
externalIds |
该实体的外部标识符映射。键是提供方,值是ID。 | 对象 | — |
└─ ASIN |
此实体的亚马逊标准识别码 (ASIN) | 字符串 | B00DT55P3K |
└─ imdb |
角色的IMDB标识符。 | 字符串 | character id |
uri |
映射到角色的URI | URI | entity://provider/character/snowwhite |
value |
角色的名称 | 字符串 | Snow White |
Director
Director代表视频媒体内容的导演姓名;例如,“Kenneth Lonergan”可能包含以下项:
| Director有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
externalIds |
该实体的外部标识符映射。键是提供方,值是ID。 | 对象 | — |
└─ imdb |
外部IMDB标识符 | 字符串 | tt4034228 |
uri |
映射到导演的URI | URI | entity://provider/director/kennethlonergan |
value |
导演的姓名 | 字符串 | Kenneth Lonergan |
Episode
Episode代表电视节目等连续内容的剧集编号;例如,Transparent的第八集的剧集编号为8。
| Episode有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
value |
剧集编号 | 整数 | 8 |
Event
Event是指一种事件;示例包括体育运动、音乐或其他类型的事件。例如,搜索“Football games”(橄榄球比赛)将搜索game事件实体和football体育运动实体。
| Event有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
externalIds |
该实体的外部标识符映射。键是提供方,值是ID。 | 对象 | — |
└─ imdb |
事件的IMDB标识符。 | 字符串 | tt4034228 |
uri |
映射到事件的URI | URI | entity://amazon/events/games |
value |
事件类型的名称 | 字符串 | Games |
Franchise
Franchise是一个视频实体,可以代表许多视频实体,例如电影或电视节目。例如,以虚构系列片“Intergalactic Wars”为例,它代表了电影三部曲以及动画和真人电视节目的集合。引入这种实体类型是为了考虑客户的请求,例如“Find Intergalactic Wars movies”(查找Intergalactic Wars电影),它将搜索MediaType的MOVIE值的所有“Intergalactic Wars”节目,而不是尝试与单个标题进行匹配。
| Franchise有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
externalIds |
该实体的外部标识符映射。键是提供方,值是ID。 | 对象 | — |
└─ imdb |
外部IMDB标识符 | 字符串 | tt4034228 |
uri |
映射到系列片的URI | 映射到事件的URI | entity://amazon/franchise/intergalacticwars |
value |
类型的名称 | 字符串 | Intergalactic Wars |
Genre
Genre代表视频媒体内容的类型,例如动作、戏剧或喜剧。例如,Action类型可能包含以下项:
| Genre有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
externalIds |
该实体的外部标识符映射。键是提供方,值是ID。 | 对象 | — |
└─ imdb |
外部IMDB标识符 | 字符串 | tt4034228 |
uri |
映射到类型的URI | URI | entity://provider/genre/action |
value |
类型的名称 | 字符串 | Action |
League
League代表体育运动联赛的分类信息;例如,NCAA是一个可能包含以下项的联赛:
| League有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
externalIds |
该实体的外部标识符映射。键是提供方,值是ID。 | 对象 | — |
└─ imdb |
联赛的IMDB标识符 | 字符串 | tt4034228 |
uri |
映射到联赛的URI | URI | entity://amazon/league/ncaa |
value |
联赛的名称 | 字符串 | NCAA |
MediaType
MediaType代表特定内容片段的媒体类型类别;例如,“Manchester by the Sea”的MediaType应为MOVIE。
| MediaType有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
value |
媒体类型;可能的值为MOVIE、VIDEO、TV_SHOW |
枚举 | MOVIE |
ProductionCompany
ProductionCompany代表视频媒体内容的制作公司名称;例如Marvels、Disney。
| ProductionCompany有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
value |
制作公司名称 | 字符串 | Marvel |
Season
Season代表电视节目等系列内容的季编号;例如,“Transparent”第二季的季编号应为2。
| Season有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
value |
季编号 | 整数 | 2 |
Sport
Sport代表一项体育运动的分类信息;例如,橄榄球是一项可能包含以下项的体育运动:
| Sport有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
externalIds |
该实体的外部标识符映射。键是提供方,值是ID。 | 对象 | — |
└─ imdb |
体育运动的IMDB标识符 | 字符串 | tt4034228 |
uri |
映射到体育运动的URI | URI | entity://amazon/sport/football |
value |
体育运动的名称 | 字符串 | Football |
SportsTeam
SportsTeam代表职业运动队的分类信息;例如,“University of Washington Huskies”是一支可能包含以下项的运动队:
| SportsTeam有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
externalIds |
该实体的外部标识符映射。键是提供方,值是ID。 | 对象 | — |
└─ imdb |
该运动队的IMDB标识符。 | 字符串 | tt4034228 |
uri |
映射到运动队的URI | URI | entity://amazon/sportsteam/huskies |
value |
运动队的名称 | 字符串 | University of Washington Huskies |
Video
Video代表视频内容片段的识别数据;例如,“Manchester by the Sea”可能包含以下项:
| Video有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
externalIds |
该实体的外部标识符映射。键是提供方,值是ID。 | 对象 | — |
ASIN |
该实体的外部ASIN | 字符串 | B01LTHZVKG |
└─ imdb |
IMDB标识符 | 字符串 | tt4034228 |
userConfirmations |
包含有关商品的用户确认信息的对象 | 对象 | |
└─ entitlementVoiceActivation |
通知合作伙伴观看期限或权利的语音启用是否成功的标记。可能的值 - CONFIRMED(可选)。 |
枚举;默认策略 - 忽略无法识别的值 | CONFIRMED |
uri |
映射到视频的URI | URI | entity://provider/movie/manchesterbythesea |
value |
视频的名称 | 字符串 | Manchester by the Sea |
Popularity
Popularity表示用户是否要求提供热门内容。
| Popularity有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
value |
向提供方指明用户搜索热门内容 | 字符串 | TRUE |
Recency
Recency的解析值表示用户要求的是新内容还是旧内容。
| Recency有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
value |
指明用户搜索的是新内容还是旧内容;可能的值为NEW、OLD |
枚举 | NEW |
VideoResolution
VideoResolution代表以下标准之一中要求的视频分辨率:
- SD (480p)
- HD (720p-1080p)
- 4k (2160p)
- 8k (4320p)
| VideoResolution有效负载字段 | 描述 | 类型 | 示例 |
|---|---|---|---|
value |
视频分辨率;可能的值为SD、HD、4k、8k |
枚举 | HD |
请注意,多模式设备还有以下其他实体类型: LISTTYPE、SORTTYPE。
当用户想要浏览其播放列表或库时,则填写LISTTYPE。例如,诸如“Show me my Watchlist”(显示我的播放列表)或“Show me my Video Library”(显示我的视频库)之类的表述。 LISTTYPE可以有以下枚举值:
WATCHLIST: 针对“Show me my Watchlist”(显示我的播放列表)- 用于显示用户添加到播放列表中的视频。LIBRARY: 针对“Show me my Video Library”(显示我的视频库)- 用于显示用户库中的视频。通常,这些是用户购买的视频。
SORTTYPE用于提供有关搜索期间应使用的请求以及需要如何对结果进行排序的更多信息。例如,对于“Show me recommended movies”(显示推荐的电影),Alexa需要内容提供方的推荐。SORTTYPE可以有以下枚举值:
RECOMMENDED: 此值是为诸如“Show me recommended movies”(显示推荐的电影)或“Show me recommended action movies”(显示推荐的动作电影)等表述填充的。
体验类型
使用experience对象根据用于执行搜索的设备优化搜索结果的显示。例如,如果客户通过Fire TV遥控器进行搜索,则experience对象会显示大量的搜索结果,客户可以使用遥控器浏览这些结果。但是,如果搜索请求来自与Fire TV配对的Echo,则experience对象会限制显示的结果数量及其显示方式,从而让客户可以无需使用遥控器即可查看结果。
experience对象由一个mode对象组成,后者决定如何显示搜索结果。mode对象采用两个值: VOICE_OPTIMIZED and DEFAULT.
-
VOICE_OPTIMIZED: 针对纯语音设备的搜索结果优化的显示。提供结果列表,客户无需遥控器即可通过语音浏览这些结果。 -
DEFAULT: 所有搜索结果列表格式的默认显示,无论使用哪种设备进行搜索。
为确保向前兼容性,如果在mode中收到未知值,可回退到DEFAULT,而不是遭遇失败。
Lambda响应
收到GetPlayableItems指令后,您的Lambda必须返回一个遵循此处结构的GetPlayableItemsResponse响应。本例中的响应结构类似于为GetDisplayableItems指令返回的响应。
请在响应中遵循以下指导准则:
-
请记住,
GetPlayableItems指令的目标是获得一个可以为指令播放的项目。 -
如果只有一个项目可以播放,您可以仅返回该项目,Alexa将播放该项目。
-
如果不清楚该播放哪个项目,您可以选择在响应中返回多个项目。Alexa会要求用户选择要播放的项目。例如,如果用户说“Play Star Wars”(播放Star Wars),则响应中可能会返回Star Wars系列片中的多部电影,或者多部与Star Wars相关的电影和电视节目。如果您返回多个结果,Alexa会发送
GetDisplayableItemsMetadata指令来获取元数据并显示搜索结果。请注意,第一次调用中返回的结果数不应超过指令中指定的resultLimit参数。 -
如果由于用户无权播放作品或需要订阅而导致所找到的唯一结果无法播放,则可以返回该项目。一旦Alexa发现此项目不可播放,Alexa会获取元数据并显示购买、租借或订阅提示。之后,用户可以触发购买工作流程来购买/租借作品,然后再播放它。
-
如果发现多个无法播放的结果,您可以选择返回所有结果,Alexa要么通过用户消除要播放哪个项目的歧义,要么显示购买、租借或订阅项目的提示。
-
如果找到多个结果,其中一些可以播放,而有些则不能播放,那么您应该选择可播放的结果并返回可播放的结果,这样就可以在设备上播放相应项目。
响应示例(频道导航)
以下是与频道变更场景相关的GetPlayableItemsResponse示例。
{
"event": {
"header": {
"correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
"messageId": "5f0a0546-caad-416f-a617-80cf083a05cd",
"name": "GetPlayableItemsResponse",
"namespace": "Alexa.VideoContentProvider",
"payloadVersion": "3"
},
"payload": {
"nextToken": "fvkjbr20dvjbkwOpqStr",
"mediaItems": [
{
"mediaIdentifier": {
"id": "channelId://provider1.dvr.rp.1234-2345-63434-asdf"
}
}
]
}
}
}
有效负载描述
下面的表格描述了GetPlayableItemsResponse中的payload字段。
| 字段 | 描述 | 数据类型 |
|---|---|---|
nextToken可选 |
用于获取下一组结果的令牌。提供方发送的不透明字符串,该字符串在后续搜索请求中传回。 |
字符串 |
mediaItems必需 |
屏幕上显示为搜索结果的视频的 |
列表 |
mediaIdentifier必需 |
|
对象 |
id必需 |
视频项目的标识符,用于在后续调用 |
字符串 |
Last updated: 2020年11月2日

